Monitoramento Zabbix combinado com desenho Grafana

Introdução ao Zabbix

Zabbix foi criado por Alexei Vladishev e atualmente é ativamente desenvolvido, atualizado e mantido pela empresa que ele fundou, Zabbix SIA , e fornece serviços de suporte técnico aos usuários.
Zabbix é uma solução de monitoramento de código aberto distribuída de nível empresarial. O software
Zabbix pode monitorar numerosos parâmetros de rede e integridade do servidor.grau, integridade. O Zabbix usa um mecanismo de alerta flexível que permite aos usuários configurar alertas baseados em e-mail para praticamente qualquer evento. Isso permite que os usuários respondam rapidamente aos problemas do servidor. O Zabbix oferece excelentes recursos de relatórios e visualização de dados com base nos dados armazenados. Esses recursos tornam o Zabbix uma escolha ideal para planejamento de capacidade.O
Zabbix suporta polling ativo ( polling ) e trapping passivo ( trapping ). Todos os relatórios, estatísticas e parâmetros de configuração do Zabbix podem ser acessados ​​através da página front-end baseada na web . A página front-end baseada na Web garante que o status da rede monitorada e a integridade do servidor possam ser acessados ​​de qualquer lugar. Quando configurado corretamente, o Zabbix pode desempenhar um papel importante no monitoramento da infraestrutura de TI . Isso se aplica igualmente a uma pequena organização com poucos servidores ou a uma grande empresa com um grande número de servidores.
Zabbix é gratuito. Zabbix foi escrito e lançado sob a versão 2 da Licença Pública Geral GPL . Isso significa que o código-fonte do produto é liberado gratuitamente e está disponível para uso público

1. Desempenho do sistema

Uso de memória, carga de CPU, E/S de rede e disco, vários status de conexão do TCP

2. Aplicação

Primeiro, monitore se o aplicativo está funcionando normalmente (processo de porta) e monitore o desempenho do aplicativo.

Software de monitoramento comumente usado para operação e manutenção: nagios , cacti , ganglia , promethues , zabbix , open-falcon Software de monitoramento
zabbix : é uma arquitetura C/S ou uma arquitetura B/S . O front-end do software zabbix é escrito por um Página PHP

Existem dois modos de coleta de dados do zabbix:
Modo ativo: o terminal monitorado envia ativamente os dados coletados para o terminal de monitoramento.
Modo passivo: modo padrão do zabbix. O terminal de monitoramento obtém regularmente dados do terminal monitorado.

Princípio de monitoramento do zabbix

imagem

O Agentd é instalado no host monitorado. O agente é responsável por coletar regularmente os dados locais no cliente e enviá-los ao Zabbix Server . O Zabbix Server recebe os dados e os armazena no banco de dados. Os usuários podem ver os dados no front-end com base em Zabbix WEB.Mostrar imagens. Quando o Zabbix monitora um projeto específico, o projeto padrão definirá um limite de disparo. Quando o indicador monitorado exceder o limite definido pelo gatilho, algumas ações necessárias serão tomadas. As ações incluem: envio de informações (e-mail, WeChat, SMS), envio comandos ( comando SHELL , Reboot , Restart , Install , etc.)

Existem três maneiras comuns para o sistema de monitoramento distribuído Zabbix monitorar clientes : Agente , SNMP e IPMI

Agente O Zabbix pode monitorar o status do SO com base em seu próprio plug-in cliente zabbix_agent , como CPU , memória, disco rígido, placa de rede, arquivos, etc.
SNMP O Zabbix monitora dispositivos de rede ou hosts Windows através do Simple Network Management Protocol . Dados de monitoramento relevantes são transmitidos ao servidor através da configuração de parâmetros SNMP. Dispositivos de rede, como switches e firewalls, geralmente suportam o protocolo SNMP.
IPMI A Interface de Gerenciamento de Plataforma Inteligente ( IPM I) é aplicada principalmente às características físicas do dispositivo, incluindo: temperatura, tensão, status de funcionamento do ventilador, fonte de alimentação, intrusão no chassi, etc. A maior vantagem do IP PMI é que não importa se o sistema operacional está ligado ou desligado, o servidor pode ser monitorado enquanto a energia estiver ligada.
O cliente de monitoramento Zabbix é dividido em monitoramento ativo e monitoramento passivo. Os modos ativo e passivo são baseados no cliente. O cliente de monitoramento Zabbix é padronizado para o modo passivo e pode ser modificado para o modo ativo. Você só precisa adicionar StartAgents=0 na configuração do cliente arquivo.
Modo ativo do Zabbix O agente solicita ativamente ao servidor para obter a lista de itens de monitoramento ativos e envia ativamente os dados que precisam ser detectados nos itens de monitoramento para o servidor/proxy . O agente zabbix primeiro solicita o IP configurado pelo ServerActive para obter itens ativos , obtém e envia os dados dos itens ativos para o servidor/proxy.
Modo passivo Zabbix O servidor solicita ao agente que obtenha os dados do item de monitoramento, o agente retorna os dados, o servidor abre uma conexão TCP , o servidor envia a solicitação agent.ping , o agente recebe a solicitação e responde, e o servidor processa o recebido dados.
Componentes comuns do Zabbix
Servidor Zabbix O componente principal que recebe dados coletados pelo Agente ; todas as estatísticas e operações de configuração são realizadas por ele.
Banco de dados Zabbix Fornece função de armazenamento de dados, dedicada a armazenar informações de configuração e dados coletados
Interface gráfica do Zabbix Fornece interface web
Proxy Zabbix Quando há muitos nós monitorados, os componentes usados ​​para reduzir a pressão do servidor também são usados ​​em sistemas de monitoramento distribuídos. Os dados são recebidos pelo Proxy e enviados ao Servidor de maneira uniforme.
Agente Zabbix Implantado no host monitorado para coletar dados locais
Conceito de monitoramento do sistema de monitoramento Zabbix
hospedar O dispositivo de rede monitorado pode gravar IP ou DNS
grupo anfitrião Grupos de hosts são usados ​​para gerenciar hosts e podem definir permissões em lotes
Itens de monitoramento Itens de monitoramento específicos, os valores dos itens são identificados por chaves independentes.
acionar Defina um gatilho para um determinado item . Quando o gatilho for atingido, a ação será executada.
evento Por exemplo, quando um determinado gatilho é atingido, ele é chamado de evento.
Ação Para métodos de processamento predefinidos para eventos específicos, mensagens e comandos podem ser enviados por padrão.
Escalação de alarme Planos customizados para envio de alertas ou execução de comandos remotos, como envio de alerta a cada 5 minutos, envio no total 5 vezes, etc.
meios de comunicação O método de envio de notificações pode suportar Mail , SMS , Scripts , etc.
notificação Informações sobre um evento enviadas aos usuários por meio de mídia definida
comando remoto Quando o trigger é atingido, o comando pode ser executado na extremidade monitorada
modelo Você pode monitorar rapidamente o final monitorado. Os módulos incluem: item , gatilho , gráfico , tela , aplicação
cenário web (cenário web) Usado para detectar a disponibilidade do site e monitorar palavras-chave HTTP
front-end da web (front-end) Interface web do Zabbix _
gráfico Imagens de vigilância
telas Tela de exibição
apresentação de slides apresentação de slides

Introdução ao 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)

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

imagem

 
[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/

imagem

查看是否全部ok;下一步

imagem

填写相关信息

imagem

填写信息

imagem

检查输入内容

imagem

点击连接下载配置文件

imagem

下载的配置文件如下

imagem

把配置文件上传到 /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

上传后直接下一步

imagem

注意:用户名Admin A是大写

imagem

imagem

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

imagem

imagem

imagem

解决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服务

imagem

imagem

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

imagem

imagem

imagem

imagem

imagem

imagem

imagem

查看监控主机状态

imagem

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

imagem

解决方法

设置监控失效的键值

 
[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 服务器的监控界面

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

imagem

imagem

(二)、安装及配置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主机

imagem

imagem

imagem

imagem

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

imagem

imagem

imagem

imagem

imagem

3、 添加模块CPU

imagem

imagem

imagem

4、 把web添加进来

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

imagem

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

imagem

imagem

点击添加

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

imagem

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添加监控项

imagem

imagem

imagem

imagem

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

imagem

imagem

imagem

imagem

imagem

imagem

imagem

imagem

5.3、 创建监控显示图形

imagem

imagem

imagem

5.4、验证

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

imagem

首页也会显示警告

imagem

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

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            
 
保存退出

开启后会生成授权码

imagem

测试接收情况

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

imagem

配置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 ...

imagem

6.2、配置监控项邮件报警

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

创建报警媒介类型

imagem

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

imagem

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

imagem

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

imagem

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

imagem

imagem

imagem

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

imagem

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

imagem

添加报警动作,一旦此触发器添加触发,添加报警邮件的标题和内容,默认操作步骤持续
时间(修改持续时间为 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}

imagem

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

imagem

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

imagem

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

imagem

imagem

开始测试邮件报警

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

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

imagem

7、实现企业微信报警

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

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

imagem

imagem

imagem

加入成员

imagem

查看部门ID号

imagem

imagem

imagem

imagem

imagem

**AgentId:**1000003

**Secret :**SiaRe_eMY9zKb4qQ0-LKhAvwgaS7Od_6LC43Kcuiblc

查看企业ID

imagem

准备完成后编写脚本在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

imagem

配置zabbix_server.conf

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

开始配置zabbix

imagem

imagem

imagem

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

imagem

imagem

imagem

创建动作

imagem

imagem

**默认标题:**故障{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}

imagem

**默认标题:**恢复{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/

imagem

Ctrl+c 结束命令

imagem

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

8、自动发现主机

imagem

imagem

imagem

Nome visível: você pode escolher o nome do host, nome DNS, endereço IP

imagem

Endereços IP podem ser separados por vírgulas

imagem

imagem

Implante o agente2 para verificação

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

Adicionar placa de rede usando rede yum source

[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

Meu negócio WeChat recebeu informações

imagem

Verifique se o host foi ingressado automaticamente; você pode definir a adesão automática ao implantar vários servidoresimagem

Caso não receba a mensagem, pode ser que o servidor não esteja conectado à rede externa, você pode reiniciar a placa de rede e receberá.

9. Instale e configure o Grafana

Ao executar o comando a seguir, primeiro execute ping no Baidu para ver se você consegue acessar a Internet; se uma placa de rede virtual estiver configurada, certifique-se de que você pode se comunicar.

[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 
 

Teste de acesso: http://192.168.2.14:3000

imagem

Defina a senha aqui 123.com

imagem

7.1. Configure a interface web do Grafana

Habilitar plug-in

imagem

imagem

imagem

imagem

Adicionar fonte de dados

imagem

imagem

imagem

imagem

Captura de tela tirada separadamente porque a tela é muito grande

imagem

Adicionar painel

imagem

imagem

Insira o nome da forma

imagem

Selecione a fonte de dados e os itens de host e monitoramento de host que precisam ser exibidos no gráfico.

imagem

imagem

imagem

Depois de criado, salve este painel e insira o nome do painel.

imagem

imagem

imagem

Adicione gráficos ao serviço zabbix existente

imagem

imagem

imagem

imagem

Verifique os gráficos finais de exibição do painel (o tamanho pode ser ajustado por você)

imagem

1. Descrição do problema

Após instalar o plug-in do zabbix , habilite-o em Plugins
Insira a descrição da imagem aqui

Então, ao adicionar a fonte de dados, você descobrirá que o zabbix não pode ser encontrado
Insira a descrição da imagem aqui

2. Solução

Modifique a configuração do grafana e permita a configuração do plug-in zabbix.
Encontre o item " ;allow_loading_unsigned_plugins = ", exclua " ; ", e adicione " alexanderzobnin-zabbix-datasource "

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

Reinicie o serviço grafana

systemctl restart grafana-server

Reabra a página do grafana, adicione a fonte de dados e você poderá encontrar a fonte do zabbix.
Insira a descrição da imagem aqui

Resumo: O processo experimental geral é relativamente simples. Você deve prestar atenção à versão ao instalar o grafana.

Acho que você gosta

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