Monitoreo de Zabbix combinado con dibujo de Grafana

Introducción a Zabbix

Zabbix fue creado por Alexei Vladishev y actualmente es desarrollado, actualizado y mantenido activamente por la empresa que fundó, Zabbix SIA , y proporciona servicios de soporte técnico a los usuarios.
Zabbix es una solución de monitoreo de código abierto distribuida a nivel empresarial. El software
Zabbix puede monitorear Numerosos parámetros de red y estado del servidor Grado, integridad. Zabbix utiliza un mecanismo de alerta flexible que permite a los usuarios configurar alertas basadas en correo electrónico para casi cualquier evento. Esto permite a los usuarios responder rápidamente a los problemas del servidor. Zabbix proporciona excelentes capacidades de visualización de datos e informes basadas en datos almacenados. Estas características hacen de Zabbix una opción ideal para la planificación de capacidad.
Zabbix admite sondeo activo ( polling ) y captura pasiva ( trapping ). Se puede acceder a todos los informes, estadísticas y parámetros de configuración de Zabbix a través de la página de inicio basada en web . La página de inicio basada en web garantiza que se pueda acceder al estado de la red monitoreada y al estado del servidor desde cualquier lugar. Cuando se configura correctamente, Zabbix puede desempeñar un papel importante en el monitoreo de la infraestructura de TI . Esto se aplica igualmente a una pequeña organización con unos pocos servidores o a una gran empresa con una gran cantidad de servidores.
Zabbix es gratis. Zabbix está escrito y publicado bajo la versión 2 de la Licencia Pública General GPL . Esto significa que el código fuente del producto se publica gratuitamente y está disponible para uso público.

1. Rendimiento del sistema

Uso de memoria, carga de CPU, E/S de red y disco, varios estados de conexión de Tcp

2. Solicitud

Primero, supervise si la aplicación se está ejecutando normalmente (proceso de puerto) y supervise el rendimiento de la aplicación.

Software de monitoreo de uso común para operación y mantenimiento: nagios , cactus , ganglia , promethues , zabbix , open-halcon software de monitoreo
zabbix : es una arquitectura C/S o una arquitectura B/S . La interfaz del software zabbix está escrita por un página php

Hay dos modos de recopilación de datos de zabbix:
Modo activo: el extremo monitoreado envía activamente los datos recopilados al extremo monitoreado
Modo pasivo: modo predeterminado de zabbix El extremo monitoreado obtiene periódicamente datos del extremo monitoreado.

Principio de seguimiento de zabbix

imagen

Agentd está instalado en el host monitoreado. El agente es responsable de recopilar periódicamente datos locales en el cliente y enviarlos al servidor Zabbix . El servidor Zabbix recibe los datos y los almacena en la base de datos. Los usuarios pueden ver los datos en el front-end según Zabbix WEB Mostrar imágenes. Cuando Zabbix monitorea un proyecto específico, el proyecto estándar establecerá un umbral de activación. Cuando el indicador monitoreado excede el umbral establecido por el activador, se tomarán algunas acciones necesarias. Las acciones incluyen: enviar información (correo electrónico, WeChat, SMS), enviar comandos ( comando SHELL , reiniciar , reiniciar , instalar , etc.)

Hay tres formas comunes para que el sistema de monitoreo distribuido Zabbix monitoree a los clientes : Agente , SNMP e IPMI.

Agente Zabbix puede monitorear el estado del sistema operativo basándose en su propio complemento de cliente zabbix_agent , como CPU , memoria, disco duro, tarjeta de red, archivos, etc.
SNMP Zabbix monitorea dispositivos de red o hosts de Windows a través del Protocolo simple de administración de red . Los datos de monitoreo relevantes se transmiten al servidor configurando los parámetros SNMP. Los dispositivos de red como conmutadores y firewalls generalmente admiten el protocolo SNMP.
IPMI La interfaz de gestión de plataforma inteligente ( IPM I) se aplica principalmente a las características físicas del dispositivo, que incluyen: temperatura, voltaje, estado de funcionamiento del ventilador, fuente de alimentación, intrusión en el chasis, etc. La mayor ventaja de IP PMI es que no importa si el sistema operativo está encendido o apagado, el servidor se puede monitorear siempre que esté encendido.
El cliente de monitoreo Zabbix se divide en monitoreo activo y monitoreo pasivo. Los modos activo y pasivo se basan en el cliente. El cliente de monitoreo Zabbix está predeterminado en el modo pasivo y se puede modificar al modo activo. Solo necesita agregar StartAgents = 0 en la configuración del cliente. archivo.
Modo activo Zabbix El agente solicita activamente al servidor que obtenga la lista de elementos de monitoreo activos y envía activamente los datos que deben detectarse en los elementos de monitoreo al servidor/proxy . El agente zabbix primero solicita la IP configurada por ServerActive para obtener elementos activos , obtiene y envía los datos de los elementos activos al servidor/proxy.
Modo pasivo Zabbix El servidor solicita al agente que obtenga los datos del elemento de monitoreo, el agente devuelve los datos, el servidor abre una conexión TCP , el servidor envía la solicitud agent.ping , el agente recibe la solicitud y responde, y el servidor procesa la información recibida. datos.
Componentes comunes de Zabbix
Servidor Zabbix El componente central que recibe los datos recopilados por el Agente ; todas las estadísticas y operaciones de configuración las realiza él.
Base de datos Zabbix Proporciona función de almacenamiento de datos, dedicada a almacenar información de configuración y datos recopilados.
Zabbix Web GUI Proporciona interfaz web
Proxy Zabbix Cuando hay muchos nodos monitoreados, los componentes utilizados para reducir la presión del servidor también se utilizan en los sistemas de monitoreo distribuido. Los datos son recibidos por el Proxy y enviados al Servidor de manera uniforme.
Agente Zabbix Implementado en el host monitoreado para recopilar datos locales
Concepto de monitoreo del sistema de monitoreo Zabbix
anfitrión El dispositivo de red monitoreado puede escribir IP o DNS
grupo anfitrión Los grupos de hosts se utilizan para administrar hosts y pueden establecer permisos en lotes
Elementos de seguimiento Elementos de seguimiento específicos, los valores de los elementos se identifican mediante claves independientes.
desencadenar Establezca un activador para un determinado elemento . Cuando se alcance el activador, se ejecutará la acción .
evento Por ejemplo, cuando se alcanza un determinado desencadenante, se denomina evento.
acción Para métodos de procesamiento predefinidos para eventos específicos, se pueden enviar mensajes y comandos de forma predeterminada.
Escalada de alarma Planes personalizados para envío de alertas o ejecución de comandos remotos, como enviar una alerta cada 5 minutos, enviarla un total de 5 veces, etc.
medios de comunicación El método de envío de notificaciones puede admitir correo , SMS , scripts , etc.
notificación Información sobre un evento enviada a los usuarios a través de medios establecidos.
comando remoto Cuando se alcanza el disparador, el comando se puede ejecutar en el extremo monitoreado
plantilla Puede monitorear rápidamente el extremo monitoreado. Los módulos incluyen: elemento , disparador , gráfico , pantalla , aplicación
escenario web (escenario web) Se utiliza para detectar la disponibilidad del sitio web y monitorear las palabras clave HTTP .
interfaz web (interfaz) Interfaz web de Zabbix _
grafico Imágenes de vigilancia
pantallas visualización de la pantalla
diapositivas diapositivas

Introducción a Grafana

Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库

Grafana支持许多不同的数据源。每个数据源都有一个特定的查询编辑器,该编辑器定制的特性和功能是公开的特定数据来源。 官方支持以下数据源:GraphiteElasticsearchInfluxDBPrometheusCloudwatchMySQLOpenTSDBZabbix

所需环境

系统 IP 名称 角色
CentOS 7.4 192.168.2.14 zabbix LAMP、zabbix、grafana(版本8.0)
CentOS 7.4 192.168.2.13 agent agent(FTP,Web)

一、安装zabbix server服务端

[root@zabbix ~]# echo '
192.168.2.14 zabbix
192.168.2.13 agent
192.168.2.14 agent
' >> /etc/hosts    
 安装 LAMP 使用本地yum
 
[root@zabbix ~]# yum -y install net-snmp net-snmp-devel libxml2 libxml2-devel libcurl-devel libevent libevent libevent-devel curl curl-devel mysql-devel snmp perl-DBI php-xml php-bcmath php-mbstring php-ldap php-xmlrpc httpd php php-mysql php-common php-gd php-odbc php-pear gcc* net-snmp libssh2 libssh2-devel mariadb-server mariadb mariadb-devel ntpdate                                       

添加一个网卡连接外网

[root@zabbix ~]# systemctl restart network              
[root@zabbix ~]# yum -y install wget                      
 
[root@zabbix ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo                             
因本地yum安装 有部分安装包没有需要网络yum源       安装 LAMP
 
[root@zabbix ~]# yum -y install net-snmp net-snmp-devel libxml2 libxml2-devel libcurl-devel libevent libevent libevent-devel curl curl-devel mysql-devel snmp perl-DBI php-xml php-bcmath php-mbstring php-ldap php-xmlrpc httpd php php-mysql php-common php-gd php-odbc php-pear gcc* net-snmp libssh2 libssh2-devel mariadb-server mariadb mariadb-devel ntpdate                                    
 
[root@zabbix ~]# yum -y install libevent-devel           
[root@zabbix ~]# yum install *bcmath* --skip-broken               
[root@zabbix ~]# yum install php-mbstring                 
同步时间
 
[root@zabbix ~]# yum -y install ntpdate                      
....
[root@zabbix ~]# ntpdate ntp1.aliyun.com             
27 Dec 16:10:33 ntpdate[44367]: adjust time server 120.25.115.20 offset 0.003932 sec
启动myslq
 
[root@zabbix ~]# systemctl start mariadb                
[root@zabbix ~]# systemctl enable mariadb            
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
 
[root@zabbix ~]# mysqladmin -u root password 123.com            
启动httpd
 
[root@zabbix ~]# systemctl start httpd                 
[root@zabbix ~]# systemctl enable httpd            
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

下载 [Zabbix](https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX Latest Stable/4.4.7/zabbix-4.4.7.tar.gz)

如果没有提示下载可以使用下面的方式进行下载

imagen

 
[root@zabbix ~]# tar zxvf zabbix-4.4.7.tar.gz                     
[root@zabbix ~]# cd zabbix-4.4.7                     
 
[root@zabbix zabbix-4.4.7]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2                                        
...................
.........
  LDAP support:          no
  IPv6 support:          yes
 
***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************
 
[root@zabbix zabbix-4.4.7]# make &&make install               
...........
.....
..
 
[root@zabbix ~]# mysql -uroot -p123.com                    
 
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;                                 
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> use zabbix;                                
Database changed
 
MariaDB [(none)]> source /root/zabbix-4.4.7/database/mysql/schema.sql;                 
..................
...........
.....
Query OK, 0 rows affected (0.00 sec)               
Records: 0  Duplicates: 0  Warnings: 0
 
MariaDB [zabbix]> source /root/zabbix-4.4.7/database/mysql/images.sql;                                   
........
....
.
 
Query OK, 1 row affected (0.00 sec)
 
Query OK, 1 row affected (0.00 sec)
 
MariaDB [zabbix]> source /root/zabbix-4.4.7/database/mysql/data.sql;                                    
...............                   
........
..
 
Query OK, 1 row affected (0.00 sec)
 
Query OK, 0 rows affected (0.01 sec)
 
MariaDB [zabbix]> grant all on zabbix.* to zabbix@'192.168.2.14' identified by 'zabbix';                                          
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [zabbix]> flush privileges;                                              
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [zabbix]> quit        
Bye
 
[root@zabbix ~]# groupadd zabbix                    
[root@zabbix ~]# useradd -r -g zabbix zabbix                    
[root@zabbix ~]# mkdir /usr/local/zabbix/logs                   
[root@zabbix ~]# chown zabbix:zabbix /usr/local/zabbix/ -R               
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf                   
 
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=192.168.2.14
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
Timeout=4                                   #与AGNET/SNMP 设备和其他外部通信超时设置,单位:秒s
LogSlowQueries=3000                         #用于服务端数据库慢查询功能,单位:毫秒
StatsAllowedIP=127.0.0.1,192.168.2.0/24     #来源IP访问控制限制
 
————————————
:%g/^#/d     删除以#开头的内容    :%g/^$/d    删除空行
 
保存
 
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf             
 
PidFile=/tmp/zabbix_agentd.pid                             #运行的PID 文件
Server=127.0.0.1,192.168.2.14                              #zabbix的主机IP
ServerActive=192.168.2.14                                  #agent主机采集到的数据发送到server端
Hostname=zabbix                                            #本机的主机名称
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log           #指定日志文件
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf  #开启附加配置文件目录
 
 
:%g/^#/d     删除以#开头的内容    :%g/^$/d    删除空行
 
保存
 
[root@zabbix ~]# /usr/local/zabbix/sbin/zabbix_server                
[root@zabbix ~]# netstat -utpln|grep 10051                
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      16176/zabbix_server 
tcp6       0      0 :::10051                :::*                    LISTEN      16176/zabbix_server 
[root@zabbix ~]# /usr/local/zabbix/sbin/zabbix_agentd             
[root@zabbix ~]# netstat -utpln|grep 10050           
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      17469/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      17469/zabbix_agentd 
[root@zabbix ~]# mkdir /var/www/html/zabbix                
[root@zabbix ~]# mv /root/zabbix-4.4.7/frontends/php/* /var/www/html/zabbix               
[root@zabbix ~]# vim /etc/php.ini                 
....
 384 max_execution_time = 300             #单位秒,通过 POST、GET 以及 PUT 方式接收数据时间进行限制
.....
 394 max_input_time = 300                 #php 程序上传文件解析数据时的时间限制
....
 405 memory_limit = 128M                  #设置 php 程序的内存限制
....
 672 post_max_size = 32M                  #POST 方式请求数据所允许的最大大小
.....
 853 extension=bcmath.so                  #加载 zabbix 程序需要加载的扩展模块 bcmath.so
..... 
 878 date.timezone = Asia/Shanghai        #时区
 
保存
 [root@zabbix ~]# systemctl restart httpd             
[root@zabbix ~]# cd /var/www/html/zabbix/conf          
[root@zabbix conf]# vim  zabbix.conf.php.example                      
 
<?php
// Zabbix GUI configuration file.
global $DB, $HISTORY;
 
$DB['TYPE']                     = 'MYSQL';
$DB['SERVER']                   = 'localhost';
$DB['PORT']                     = '0';
$DB['DATABASE']                 = 'zabbix';
$DB['USER']                     = 'zabbix';
$DB['PASSWORD']                 = 'zabbix';               #mysql授权的用户密码
// Schema name. Used for IBM DB2 and PostgreSQL.
                                                           
......
保存

二、配置zabbix服务的web页面做优化

访问安装:http://192.168.2.14/zabbix/

imagen

查看是否全部ok;下一步

imagen

填写相关信息

imagen

填写信息

imagen

检查输入内容

imagen

点击连接下载配置文件

imagen

下载的配置文件如下

imagen

把配置文件上传到 /var/www/html/zabbix/conf/

[root@zabbix ~]# cd /var/www/html/zabbix/conf/
[root@zabbix conf]# ls
maintenance.inc.php  zabbix.conf.php  zabbix.conf.php.example

上传后直接下一步

imagen

注意:用户名Admin A是大写

imagen

imagen

安装完成;设置字体为中文

imagen

imagen

imagen

解决zabbix显示图像下边文字乱码问题

上传simkai.ttf 文件
 
[root@zabbix ~]# cd /var/www/html/zabbix/assets/fonts/          
[root@zabbix fonts]# ls          
DejaVuSans.ttf  simkai.ttf
 
[root@zabbix fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak           
[root@zabbix fonts]# mv simkai.ttf DejaVuSans.ttf        
[root@zabbix fonts]# ls         
DejaVuSans.ttf  DejaVuSans.ttf.bak

三、监控zabbix端的OS、MySQL、Httpd

(一)、 创建主机zabbix服务

imagen

imagen

选择两个监控模板即可:**Template App HTTP Service***、***Template DB MySQL******

imagen

imagen

imagen

imagen

imagen

imagen

imagen

查看监控主机状态

imagen

发现关于MySQL数据库的所有监控项没有图形

imagen

解决方法

设置监控失效的键值

 
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf               
 
PidFile=/tmp/zabbix_agentd.pid   
Server=127.0.0.1,192.168.2.14
ServerActive=192.168.2.14
Hostname=zabbix
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
 
UserParameter=mysql.ping[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], HOME=/etc/zabbix mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"    
 
 
保存
——————————————————————————————————————————————————————————————————————
 
 ############    解释:
 
PidFile=/tmp/zabbix_agentd.pid
Server=127.0.0.1,192.168.2.14                                        #指定 zabbix 服务器的地址
ServerActive=192.168.2.14                                            #指定 agent 采集到数据之后发送给 server 端
Hostname=zabbix                                                      #指定 agent 端的主机名、server 端必须需要解析,注意:在 web 界面添加被监控主机时,必须写此主机名
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UserParameter=mysql.ping[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping    #自定义监控项
             =定义名称,key值

验证:打开 zabbix 的 web 界面,查看 mysql 服务器的监控界面

注意:刚查看是没有数据的需要耐心的等待

imagen

imagen

(二)、安装及配置agent代理端FTP服务器

[root@agent ~]# echo '
192.168.2.14 zabbix
192.168.2.13 agent
' >> /etc/hosts             
[root@agent ~]# yum -y install wget                    
.....
[root@agent ~]# systemctl restart network                       
[root@agent ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo                    
....
[root@agent ~]# yum -y install ntpdate                     
...
[root@agent ~]# ntpdate ntp1.aliyun.com                  
29 Dec 20:53:08 ntpdate[971]: adjust time server 120.25.115.20 offset -0.004758 sec
 
[root@agent ~]# yum -y install vsftpd                  
.....
[root@agent ~]# systemctl start vsftpd            
...
[root@agent ~]# yum -y install libxml2-devel libcurl-devel pcre-devel              
 ....
[root@agent ~]# tar zxvf zabbix-4.4.7.tar.gz                       
[root@agent ~]# cd zabbix-4.4.7                       
[root@agent zabbix-4.4.7]# ./configure --prefix=/usr/local/zabbix --enable-agent --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2                            
...........
....
..
[root@agent zabbix-4.4.7]# make && make install                              
...........
.....
 
[root@agent ~]# groupadd zabbix                    
[root@agent ~]# useradd -r -g zabbix zabbix                                
[root@agent ~]# chown zabbix:zabbix /usr/local/zabbix -R           
[root@agent ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf             
 
Server=192.168.2.14           
ServerActive=192.168.2.14                   
Hostname=agent                     
LogFile=/tmp/zabbix_agentd.log                  
 
:%g/^#/d     删除以#开头的内容    :%g/^$/d    删除空行
保存
 
[root@agent zabbix-4.4.7]# /usr/local/zabbix/sbin/zabbix_agentd                 
[root@agent zabbix-4.4.7]# netstat -utpln|grep zabbix                    
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      69639/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      69639/zabbix_agentd 

1、登录zabbix的web界面,进行添加agent主机

imagen

imagen

imagen

imagen

2、 添加agent主机完成,手动添加ftp服务图形显示

imagen

imagen

imagen

imagen

imagen

3、 添加模块CPU

imagen

imagen

imagen

4、 把web添加进来

[root@agent ~]# yum -y install httpd           
[root@agent ~]# systemctl start httpd                
[root@agent ~]# echo '            
<h1>Zabbix 监控服务<h1/>
' > /var/www/html/index.html             
 
保存

imagen

右上角点击>>创建web场景

imagen

imagen

点击添加

在 监控 >> web 监控 中可以查看(*前提先访问*)

imagen

5、自定义监控项,创建项目,触发器,图形,验证监控效果

以上关联的 Template OS Linux by Zabbix agent 模板基本涵盖了所有系统层面的监控,包括了我们最关注的几项:ping、load、cpu 使用率、memory、disk、网卡流量等等,当然有些触发器的阀值可能需要根据服务器的自身情况进行修改

也可以添加自定义服务器内存使用检测项,在此配置一个监控项为:内存使用 70M 进行警告
提醒

在agent上进行操作
[root@agent ~]# yum -y install psmisc                
....
.
[root@agent ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf                
..........
.....
UserParameter=memory_usage,free -m|grep Mem|awk '{print $3}'                 
 
 
保存
 
加入到最后一行
——————————————————————————————————————————
            说明
语法:UserParameter=key,shell command
监控 key 值:memory_usage,key 值可以随意编写,但是一会需要在 web 页面创建监控项时指定 key 值;
 
Shell 命令或脚本:free -m|grep Mem|awk '{print $3}'
 
注意:在 zabbix_server 端可以使用 | zabbix_get -s agent 端 ip 地址 -p 10050 -k key名 |可以通过此命令可以查看 agent 端 key 的监控值;
——————————————————————————————————————————
 
[root@agent ~]# killall -9 zabbix_agentd                
[root@agent ~]# /usr/local/zabbix/sbin/zabbix_agentd          
[root@agent ~]# free -m|grep Mem|awk '{print $3}'              
116
 
————————————————————————————————————————————————————————————
在zabbix上查看监控值
 
[root@zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.2.13 -k memory_usage                   
116

5.1、使用web添加监控项

imagen

imagen

imagen

imagen

5.2、监控项添加完成后,创建触发器(根据条件进行触发某个告警操作)

imagen

imagen

imagen

imagen

imagen

imagen

imagen

imagen

5.3、 创建监控显示图形

imagen

imagen

imagen

5.4、验证

[root@agent ~]# ab -n 5000000 -c 100 -k http://192.168.2.13/    测试

imagen

首页也会显示警告

imagen

也可以监控交换机和用户访问的情况可以编写脚本进行完成

6、实现邮件报警

6.1、配置zabbix端的邮件

 
[root@zabbix ~]# yum -y install mailx dos2unix           
.....
...
[root@zabbix ~]# mailx -V           
12.5 7/5/10
 
——————————————————————————————————————————
在此文件末尾添加,指定接收邮件邮箱地址,指定邮箱服务器地址,指定接收邮件邮箱地址的授权码,并非 qq 邮箱的密码,而是授权码
登陆 qq 邮箱后 >--设置--开启 smtp 和 pop--点击客户端生成授权码--使用此授权码进
行指定到此配置文件
 
接收服务器:pop.qq.com    发送服务器:smtp.qq.com
 
[root@zabbix ~]# vi /etc/mail.rc             
...........(邮箱,授权码需填写自己的这里就写案例)
.....
set from=12345678901@qq.com smtp=smtp.qq.com             
set smtp-auth-user=12345678901@qq.com smtp-auth-password=授权码         
set smtp-auth=login            
 
保存退出

开启后会生成授权码

imagen

测试接收情况

[root@zabbix ~]# echo "测试内容"|mail -s "测试一收到没有" 12345678901@qq.com                 

imagen

配置zabbix_server.conf

 
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf           
........
...
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts               
 
保存退出

编写报警邮件脚本,调整 mail 命令语法位置,使用 dos2unix 命令转换字符,避免收到邮件不显示正常邮件内容而出现 ATT00001.bin 的错误

 
[root@zabbix ~]# vim /usr/local/zabbix/share/zabbix/alertscripts/2.sh         
#!/bin/bash
#export.UTF-8
bt=$2
sjr=$1
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
/usr/bin/dos2unix -k $FILE
/bin/mail -s "$bt" "$sjr" <$FILE        
 
保存退出
 
[root@zabbix ~]# chmod 777 /usr/local/zabbix/share/zabbix/alertscripts/2.sh               
[root@zabbix ~]# chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/2.sh              
[root@zabbix ~]# touch /tmp/mailtmp.txt             
[root@zabbix ~]# chmod 777 /tmp/mailtmp.txt                
[root@zabbix ~]# chown zabbix:zabbix /tmp/mailtmp.txt             
 
注意文件以及报警脚本的归属以及权限,注:脚本文件和存放邮件消息文件归属必须是 zabbix
 [root@zabbix ~]# /usr/local/zabbix/share/zabbix/alertscripts/2.sh 12345678901@qq.com "测试标题 二" "测试内容 二"                   
dos2unix: converting file /tmp/mailtmp.txt to Unix format ...

imagen

6.2、配置监控项邮件报警

配置 zabbix web 网站进行监控项的邮件报警,每一张图片后附带解释和注意事项,大体
步骤为: 监控***>>***创建报警媒介类型***>>***更新用户使用的报警媒介类型***>>***创建动作
(根据触发器
触发)***>>*验证

创建报警媒介类型

imagen

输入创建的报警媒介类型的名称,指定类型为脚本的方式,并且输入 zabbix_server 端
/usr/local/zabbix/share/zabbix/alertscripts 目录下的脚本名称,确保脚本的归属是 zabbix,并且脚本的权限是 777,下边设置脚本参数,也就是发送邮件的语法:脚本 收件人 标题 内容,必须严格按照此标准填写(*注意:有 . 符号不要忘记*

imagen

创建报警媒介类型成功后,进行确认

imagen

配置 zabbix 中的用户所使用的报警媒介类型以及接收邮件的邮箱

imagen

选择报警媒介类型为刚刚创建的类型,并且输入接收邮件的地址,指定报警时间和报警级

imagen

imagen

imagen

创建动作,也就是发送邮件的动作

imagen

输入动作名,动作名最好为英文,可以选择触发这个动作的条件(可以选择触发器=触发器的名称或者选择触发器似触发器名称),作为条件,若不选择触发器的条件,那么任何消息都会提示到邮箱

imagen

添加报警动作,一旦此触发器添加触发,添加报警邮件的标题和内容,默认操作步骤持续
时间(修改持续时间为 1h (一小时发送一次邮件)),添加操作(添加接收邮件的用户);
**默认标题:**故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID :{EVENT.ID}

imagen

添加操作(添加接收邮件的用户),步骤(指定邮件发送的次数),仅送到(选择创建的媒
介类型)

imagen

添加恢复操作(指故障恢复之后发送邮件的动作),具体步骤和添加操作相同

imagen

更新动作创建的完成**(同上)**

imagen

imagen

开始测试邮件报警

测试:,测试邮件报警情况

[root@agent ~]# dd if=/dev/zero of=/opt/1.txt bs=1G count=5          

imagen

7、实现企业微信报警

7.1、先注册企业微信到官方注册省略…

7.2、注册好之后需要创建应用

imagen

imagen

imagen

加入成员

imagen

查看部门ID号

imagen

imagen

imagen

imagen

imagen

**AgentId:**1000003

**Secret :**SiaRe_eMY9zKb4qQ0-LKhAvwgaS7Od_6LC43Kcuiblc

查看企业ID

imagen

准备完成后编写脚本在zabbix服务器上

[root@zabbix ~]# vim /usr/local/zabbix/share/zabbix/alertscripts/1.sh              
 
#!/bin/bash
#set -x
CorpID="........."                   #上面有查看过    我的企业 ==>  企业ID
Secret="........."                   #应用管理中查看  Secret
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
Token=$(/usr/bin/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}')
#echo $Token
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"
 
function body(){
    
    
        local int agentid=1000002             #改为AgentId的ID号 之前查看的信息
        local UserID=$1                       #发送的用户名称 位于$1的字符串
        local PartyID=2                       #之前查看的部门ID
        local Msg=$(echo "$@" | cut -d" " -f3-)
        printf '{\n'
        printf '\t"touser": "'"$UserID"\"",\n"
        printf '\t"toparty": "'"$PartyID"\"",\n"
        printf '\t"msgtype": "text",\n'
        printf '\t"agentid": "'"$agentid"\"",\n"
        printf '\t"text": {\n'
        printf '\t\t"content": "'"$Msg"\""\n"
        printf '\t},\n'
        printf '\t"safe":"0"\n'
        printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
``
保存

测试脚本

 
[root@zabbix ~]# cd /usr/local/zabbix/share/zabbix/alertscripts          
[root@zabbix alertscripts]# chmod 777 1.sh                  
[root@zabbix alertscripts]# ./1.sh admin 测试 这是一条测试信息           
{
    
    "errcode":0,"errmsg":"ok","invaliduser":"admin","msgid":"mrVtVXE39it1tWVvd57npD6jUrq6gFySn7k5BWrwqgsEYHiEHLs42nHRhgOAhr

imagen

配置zabbix_server.conf

 
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf           
........
...
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts               #脚本位置如果已经有了就无需添加
 
保存退出

开始配置zabbix

imagen

imagen

imagen

选择报警媒介类型为刚刚创建的类型,并且输入接收邮件的地址,指定报警时间和报警级

imagen

imagen

imagen

创建动作

imagen

imagen

**默认标题:**故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID :{EVENT.ID}

imagen

**默认标题:**恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}恢复!
消息内容:
恢复主机:{HOSTNAME1}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}
恢复项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID :{EVENT.ID}

测试

[root@agent ~]# ab -n 5000000 -c 100 -k http://192.168.2.13/

imagen

Ctrl+c 结束命令

imagen

测试完成企业微信报警完成了哈哈!!!!

8、自动发现主机

imagen

imagen

imagen

Nombre visible: puede elegir el nombre de host, el nombre DNS y la dirección IP.

imagen

Las direcciones IP se pueden separar por comas

imagen

imagen

Implementar agente2 para verificación

[root@agent2 ~]# vim /etc/hosts
......
192.168.2.12 zabbix
192.168.2.13 agent
192.168.2.14 agent2
 
保存
 

Agregue una tarjeta de red usando la fuente yum de red

[root@agent2 ~]# systemctl restart network                     
[root@agent2 ~]# yum -y install wget             
...........
....
[root@agent2 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo                    
 
[root@agent2 ~]# yum -y install ntpdate              
............
.....
[root@agent2 ~]# ntpdate ntp1.aliyun.com
 9 Jan 21:01:57 ntpdate[22908]: adjust time server 120.25.115.20 offset -0.004508 sec
 
[root@agent2 ~]# yum -y install net-snmp net-snmp-devel libxml2 libxml2-devel libcurl-devel libevent libevent libevent-devel curl curl-devel mysql-devel snmp perl-DBI php-xml php-bcmath php-mbstring php-ldap php-xmlrpc httpd php php-mysql php-common php-gd php-odbc php-pear gcc* net-snmp libssh2 libssh2-devel mariadb-server mariadb mariadb-devel ntpdate                          
............................
................
......
[root@agent2 ~]# tar zxvf zabbix-4.4.7.tar.gz
[root@agent2 ~]# cd zabbix-4.4.7
[root@agent2 zabbix-4.4.7]# ./configure --prefix=/usr/local/zabbix --enable-agent --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2               
................
...........
[root@agent2 zabbix-4.4.7]# make && make install
...........
[root@agent2 zabbix-4.4.7]# groupadd zabbix              
[root@agent2 zabbix-4.4.7]# useradd -r -g zabbix zabbix               
[root@agent2 zabbix-4.4.7]# chown zabbix:zabbix /usr/local/zabbix -R              
[root@agent2 zabbix-4.4.7]# vim /usr/local/zabbix/etc/zabbix_agentd.conf             
 
Server=192.168.2.12   
ServerActive=192.168.2.12
Hostname=agent2
LogFile=/tmp/zabbix_agentd.log             
 
保存  
 
 
[root@agent2 zabbix-4.4.7]# /usr/local/zabbix/sbin/zabbix_agentd           
[root@agent2 zabbix-4.4.7]# netstat -utpln|grep zabbix             
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      42040/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      42040/zabbix_agentd 
 

verificar

Mi empresa WeChat ha recibido información.

imagen

Compruebe que el host se haya unido automáticamente; puede configurar la unión automática al implementar varios servidoresimagen

Si no recibes el mensaje puede ser que el servidor no esté conectado a la red externa, puedes reiniciar la tarjeta de red y lo recibirás.

9. Instalar y configurar Grafana

Al ejecutar el siguiente comando, primero haga ping a Baidu para ver si puede acceder a Internet; si está configurada una tarjeta de red virtual, asegúrese de poder comunicarse.

[root@zabbix ~]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.3-1.x86_64.rpm                 
.....
 
[root@zabbix ~]# yum -y localinstall grafana-enterprise-8.3.3-1.x86_64.rpm               
.......
..
[root@zabbix ~]# grafana-cli plugins install alexanderzobnin-zabbix-app    #安装 zabbix 插件
installing alexanderzobnin-zabbix-app @ 4.0.1
from url: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/4.0.1/download
into: /var/lib/grafana/plugins
 
✔ Installed alexanderzobnin-zabbix-app successfully 
 
Restart grafana after installing plugins . <service grafana-server restart>
 
 
[root@zabbix ~]# mkdir -p /opt/grafana/data/plugins/                  
[root@zabbix ~]# cp -r /var/lib/grafana/plugins/alexanderzobnin-zabbix-app/ /opt/grafana/data/plugins/                    
[root@zabbix ~]# ls /opt/grafana/data/plugins/                
alexanderzobnin-zabbix-app
[root@zabbix ~]# systemctl start grafana-server                
[root@zabbix ~]# netstat -utpln |grep 3000              
tcp6       0      0 :::3000                 :::*                    LISTEN      7875/grafana-server 
 

Prueba de acceso: http://192.168.2.14:3000

imagen

Establece la contraseña aquí 123.com

imagen

7.1 Configurar la interfaz web de Grafana

Habilitar complemento

imagen

imagen

imagen

imagen

Agregar fuente de datos

imagen

imagen

imagen

imagen

Captura de pantalla tomada por separado porque la pantalla es demasiado grande

imagen

Agregar panel

imagen

imagen

Ingrese el nombre de la forma

imagen

Seleccione la fuente de datos y el host y los elementos de monitoreo del host que deben mostrarse en el gráfico.

imagen

imagen

imagen

Una vez creado, guarde este panel e ingrese el nombre del panel.

imagen

imagen

imagen

Agregar gráficos al servicio zabbix existente

imagen

imagen

imagen

imagen

Verifique los gráficos de visualización del tablero final (el tamaño puede ajustarlo usted mismo)

imagen

1. Descripción del problema

Después de instalar el complemento zabbix , habilítelo en Complementos
Insertar descripción de la imagen aquí

Luego, al agregar la fuente de datos, encontrará que no se puede encontrar zabbix.
Insertar descripción de la imagen aquí

2. Solución

Modifique la configuración de grafana y permita la configuración del complemento zabbix.
Busque el elemento " ;allow_loading_unsigned_plugins = ", elimine " ; ", y agregue " alexanderzobnin-zabbix-datasource "

vim /etc/grafana/grafana.ini
allow_loading_unsigned_plugins = alexanderzobnin-zabbix-datasource

Reiniciar el servicio grafana

systemctl restart grafana-server

Vuelva a abrir la página de grafana, agregue la fuente de datos y podrá encontrar la fuente de zabbix.
Insertar descripción de la imagen aquí

Resumen: El proceso experimental general es relativamente simple. Debes prestar atención a la versión al instalar grafana.

Supongo que te gusta

Origin blog.csdn.net/qq_36306519/article/details/130755103
Recomendado
Clasificación