Zabbix监控结合Grafana绘图

article/2025/9/16 10:01:10

Zabbix简介

ZabbixAlexei Vladishev 创建,目前由其成立的公司 Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务
Zabbix 是一个企业级分布式开源监控解决方案
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使

1、系统的性能

内存使用率、cpu负载、网络以及磁盘I/O、Tcp的各种连接状态

2、应用程序

首先监控应用程序是否正常运行(端口进程)、监控应用程序的性能

运维常用的监控软件:nagioscactigangliapromethueszabbixopen-falcon
zabbix监控软件:它是一个C/S架构,还是一个B/S架构, zabbix软件的前端是由php页面写的

zabbix数据的采集的两个模式
主动模式:被监控端主动将采集到的数据,发送给监控端
被动模式:zabbix默认的模式,监控端定时的向被监控端拿数据

zabbix的监控原理

img

Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,规范项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、RebootRestartInstall等)

Zabbix分布式监控系统监控客户端的方式常见有三种AgentSNMPIPMI

AgentZabbix可以基于自身zabbix_agent客户端插件监控OS的状态,例如CPU、内存、硬盘、网卡、文件等
SNMPZabbix通过简单网络管理协议(Simple Network Management Protocol)监控网络设备或windows主机等。通过设定SNMP的参数将相关监控数据传送至服务端,交换机、防火墙等网络设备一般都支持SNMP协议
IPMI智能平台管理接口(Intelligent Platform Management InterfaceIPMI)即主要应用于设备的物理特性,包括:温度、电压、电扇工作状态,电源供应以及机箱入侵等。IPMI最大的优势在于无论OS的开机还是关机状态下,只要接通电源就可以实现对服务器的监控
Zabbix监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加 StartAgents=0
Zabbix主动模式Agent主动请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxyzabbix agent首先向ServerActive配置的IP请求获取active items,获取并提交active items数据至server/proxy
Zabbix被动模式Serveragent请求获取监控项的数据,agent返回数据,server打开一个TCP连接,Server发送请求agent.pingAgent接收到请求并且响应,Server处理接收到的数据
Zabbix的常用组件
Zabbix Server接收Agent采集数据的核心组件;所有的配置统计数据及操作都由它进行
Zabbix Database提供数据存储功能,专用于存储配置信息,以及采集到的数据
Zabbix Web GUI提供Web界面
Zabbix Proxy当被监控节点较多时,用于减轻Server压力的组件,也用于分布式监控系统。由Proxy接收数据后统一发送至Server
Zabbix Agent部署在被监控主机上,用于采集本地数据
Zabbix监控系统监控概念
主机(host)被监控的网络设备,可以写IP或者DNS
主机组(host group)主机组用于管理主机,可以批量设置权限
监控项(item)具体监控项,items值由独立的keys进行识别
触发器(trigger)为某个items设置触发器,达到触发器会执行action动作
事件(event)例如达到某个触发器,称之为一个事件
动作(action)对于特定事件事先定义的处理方法,默认可以发送信息及发送命令
报警升级(escalation)发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等
媒介(media)发送通知的方式,可以支持MailSMSScripts
通知(notification)通过设置的媒介向用户发送的有关某事件的信息
远程命令达到触发器,可以在被监控端执行命令
模板(template)可以快速监控被监控端,模块包含:itemtriggergraphscreenapplication
web场景(web scennario)用于检测web站点可用性,监控HTTP关键词
web前端(frontend)Zabbixweb接口
图形(graph)监控图像
屏幕(screens)屏幕显示
幻灯(slide show)幻灯显示

Grafana简介

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

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

所需环境

系统IP名称角色
CentOS 7.4192.168.2.14zabbixLAMP、zabbix、grafana(版本8.0)
CentOS 7.4192.168.2.13agentagent(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)

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

img

 
[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:          noIPv6 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 changedMariaDB [(none)]> source /root/zabbix-4.4.7/database/mysql/schema.sql;                 
..................
...........
.....
Query OK, 0 rows affected (0.00 sec)               
Records: 0  Duplicates: 0  Warnings: 0MariaDB [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/

img

查看是否全部ok;下一步

img

填写相关信息

img

填写信息

img

检查输入内容

img

点击连接下载配置文件

img

下载的配置文件如下

img

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

上传后直接下一步

img

注意:用户名Admin A是大写

img

img

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

img

img

img

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

img

img

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

img

img

img

img

img

img

img

查看监控主机状态

img

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

img

解决方法

设置监控失效的键值

 
[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/*.confUserParameter=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 服务器的监控界面

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

img

img

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

img

img

img

img

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

img

img

img

img

img

3、 添加模块CPU

img

img

img

4、 把web添加进来

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

img

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

img

img

点击添加

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

img

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

img

img

img

img

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

img

img

img

img

img

img

img

img

5.3、 创建监控显示图形

img

img

img

5.4、验证

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

img

首页也会显示警告

img

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

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

开启后会生成授权码

img

测试接收情况

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

img

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

img

6.2、配置监控项邮件报警

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

创建报警媒介类型

img

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

img

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

img

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

img

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

img

img

img

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

img

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

img

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

img

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

img

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

img

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

img

img

开始测试邮件报警

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

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

img

7、实现企业微信报警

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

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

img

img

img

加入成员

img

查看部门ID号

img

img

img

img

img

**AgentId:**1000003

**Secret :**SiaRe_eMY9zKb4qQ0-LKhAvwgaS7Od_6LC43Kcuiblc

查看企业ID

img

准备完成后编写脚本在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                       #之前查看的部门IDlocal 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

img

配置zabbix_server.conf

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

开始配置zabbix

img

img

img

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

img

img

img

创建动作

img

img

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

img

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

img

Ctrl+c 结束命令

img

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

8、自动发现主机

img

img

img

可见名称:可以选择主机名称、DNS名称、ip地址

img

IP地址可以使用逗号隔开

img

img

部署agent2进行验证

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

添加网卡使用网络yum源

[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.com9 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 

验证

我的企业微信已经收的了信息

img

查看已经自动加入主机了;在部署多台服务器时可以设置自动加入img

如果没有收到信息可能是服务器没有连接到外网可以重启一下网卡就可以收到了

9、安装配置Grafana

在执行以下命令时先ping一下百度看看是否可以上网;如果设置了虚拟网卡确定可以通信

[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 

访问测试: http://192.168.2.14:3000

img

这里设置密码123.com

img

7.1、配置Grafana的web界面

启用插件

img

img

img

img

添加数据源

img

img

img

img

因画面太大分开截屏

img

添加仪表盘

img

img

输入图形名称

img

选择数据源和图中需要显示的主机和主机的监控项

img

img

img

创建完成,保存此仪表盘,输入仪表盘的名称

img

img

img

在现有的 zabbix服务 中添加图形

img

img

img

img

验证最终的仪表盘显示图形(大小可以自己调节)

img

1、问题描述

安装好zabbix插件后,在Plugins中将其启用
在这里插入图片描述

然后添加数据源时,会发现找不到zabbix
在这里插入图片描述

2、解决方法

修改grafana的配置,将zabbix插件配置允许
找到 “;allow_loading_unsigned_plugins =“ 项,删掉 “;“ ,加上 “alexanderzobnin-zabbix-datasource

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

重启grafana服务

systemctl restart grafana-server

重新打开grafana页面,添加数据源,可以找到zabbix源了
在这里插入图片描述

总结:总体实验过程遇到的都相对来说简单,在安装grafana时侯应注意版本


http://chatgpt.dhexx.cn/article/ijFJPVv9.shtml

相关文章

Zabbix监控系统详解及配置

前言 作为一个运维&#xff0c;需要会使用监控系统查看服务器状态以及网站流量指标&#xff0c;利用监控系统的数据去了解上线发布的结果&#xff0c;和网站的健康状态。利用一个优秀的监控软件&#xff0c;我们可以&#xff1a; 通过一个友好的界面进行浏览整个网站所有的服务…

zabbix监控服务器性能,使用zabbix监控apache性能

文章目录 [隐藏] 原理 开启apache status 创建zabbix模板 原理 监控原理跟之前写的监控nginx差不多&#xff0c;都是利用web服务器自身提供的状态信息页获取运行状态信息。apache的监控状态信息如下&#xff1a; Total Accesses: 252523 Total kBytes: 2154830 CPULoad: 2.7200…

Zabbix 的监控原理

Zabbix 的监控原理 &#xff08;注&#xff1a;右侧为rabbi server、左侧为rabbi agentd Zambia server 会有一个rabbi web GUI (web页面)&#xff0c;然后管理员可以通过web页面来查看并管理它的监控平台&#xff0c;rabbi web GUI&#xff08;web页面&#xff09;的底层是apa…

zabbix监控原理及配置方法

1.zabbix简介 zabbix是一个基于WEB页面的提供分布式系统监控以及网络建时功能的企业级的开源解决方案&#xff0c;zabbix能监视各种网络参数&#xff0c;保证服务器系统的安全运营并提供灵活的的通知机制让管理员快速定位/解决存在的各种问题。zabbix主要由两部分组成zabbix se…

Zabbix监控部署及MySQL监控

Zabbix监控部署及MySQL监控 Zabbix监控软件可以用来做什么&#xff1f;zabbix 是什么&#xff1f;zabbix 监控原理zabbix监控部署在系统中的程序安装 zabbix 5.0需要准备的机器 部署zabbix服务端 zabbix-server 20.0.0.100修改配置文件&#xff0c;安装SCL、数据库等软件修改za…

部署zabbix监控

文章目录 zabbix监控部署zabbix服务端部署zabbix客户端自定义监控模板添加报警媒介 zabbix 自动发现与自动注册zabbix 自动注册&#xff08;对于 agent2 是主动模式&#xff09;部署 zabbix 代理服务器 zabbix监控 作为一个运维&#xff0c;需要会使用监控系统查看服务器状态以…

zabbix 监控

文章目录 1 zabbix 概述1.1 zabbix 监控原理 2 安装 zabbix 5.02.1 部署 zabbix 服务端2.2 部署 zabbix 客户端 3 自定义监控内容4 zabbix自动发现与自动注册4.1 zabbix 自动注册&#xff08;对于agent2是主动模式&#xff09; 5 部署 Zabbix 代理服务器6 配置 agent 使用 prox…

Zabbix实现系统监控原理

简介 Zabbix是一款开源分布式集群监控软件&#xff0c; 能够监控服务器、交换机等各种硬件设备。 Zabbix实现系统监控 采样&#xff1a;周期性的获取某个被监测指标的相关数据。存储&#xff1a;将采集到的数据存储在指定的存储系统中&#xff0c;Zabbix默认是MySQL。展示&a…

Zabbix 监控原理及架构(了解zabbix)

文章目录 什么是Zabbix&#xff1f;监控功能为什么需要对各类系统进行监控&#xff1f;Zabbix是如何实现系统监控的&#xff1f;一个完整的监控系统所需指标&#xff1a;Zabbix支持的数据采集协议&#xff1a;Zabbix的常用组件&#xff1a;Zabbix架构图&#xff1a;Zabbix逻辑组…

Zabbix监控原理及架构

Zabbix监控原理及架构 什么是Zabbix&#xff1f; Zabbix是一个用于网络&#xff0c;操作系统和应用程序的开源监控软件&#xff0c;它旨在监视和跟踪各种网络服务&#xff0c;服务器和其他网络硬件的状态。 为什么需要对各类系统进行监控&#xff1f; 在系统构建时的正常流…

ZABBIX 监控原理及架构

什么是Zabbix&#xff1f; zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。&#xff08;LAMP架构&#xff09; zabbix 能监视各种网络参数&#xff0c;保证服务器系统的安全运营&#xff1b;并提供灵活的通知机制以让系统管理员快速定…

Zabbix监控原理

Zabbix监控完整流程包括&#xff1a;Agentd安装在被监控的主机上&#xff0c;Agent负责定期收集客户端本地各项数据&#xff0c;并发送到Zabbix Server端&#xff0c;Zabbix Server收到数据&#xff0c;将数据存储到数据库中&#xff0c;用户基于Zabbix WEB可以看到数据在前端展…

zabbix详解(二)——zabbix工作原理

今天继续给大家介绍Linux运维相关知识&#xff0c;本文主要内容是zabbix的工作原理。 一、zabbix工作流程 zabbix在进行监控时&#xff0c;zabbix客户端要安装在被监控设备上&#xff0c;负责定期收集数据&#xff0c;并将其发送给zabbix服务端&#xff1b;zabbix服务端要安装…

【Zabbix监控一】zabbix的原理与安装

目录 一、监控介绍 1、监控目的 2、监控方法 3、监控核心 二、zabbix概述 1、zabbix的主要特点 2、Zabbix是什么 3、zabbix监控对象 4、Zabbix架构 4.1 server-client架构 4.2 server-proxy-client架构 4.3 master-node-client架构 4.4 zabbix支持的监控内容 5、…

Zabbix原理

文章目录 1、Zabbix简介&#xff1a;2、为什么需要对各类系统运行进行监控&#xff1f;3、Zabbix是如何实现系统系统监控的4、Zabbix监控工作原理&#xff1a;5、Zabbix支持的数据采集协议&#xff1a;6、Zabbix常用组件&#xff1a;7、常见进程&#xff1a;8、Zabbix逻辑组件&…

态势感知与安全运营平台详细介绍

态势感知与安全运营平台以大数据平台为基础&#xff0c;通过收集多元、 异构的海量日志&#xff0c;利用关联分析、机器学习、威胁情报等技术&#xff0c;帮助 企业持续监测网络安全态势&#xff0c;实现从被动防御向积极防御的进阶&#xff0c;为 安全管理者提供风险评估和应急…

网络安全运营能力建设

一、安全运营能力建设的意义 安全运营成为网络运营者持续不断思考、优化的命题与活动。安全运营是一系列规则、技术和应用的集合&#xff0c;用以保障组织核心业务平稳运行的相关活动&#xff1b;是通过灵活、动态的实施控制以期达到组织和业务需要的整体范围可持续性正常运行。…

安全运营项目的工作方法

安全运营是工作的一部分安全工作的逻辑 安全团队是怎么运作的定义安全运营项目项目运营的要点 计划的计划风险的风险运营方案尽量要评审过程的过程做到有法可依沟通和组织进度的监控明确闭环标准项目集的管理怎么去开会 准备的准备会前会中会后复盘的复盘PPT和WORD帮助别人开会…

第16章 安全运营管理

16.1 应用安全运营概念 16.1.1 知其所需和最小特权 任何安全IT环境需要遵循的两个标准原则分别是知其所需和最小特权原则。 这两个原则通过限制对资产的访问来帮助保护有价值的资产。 知其所需的重点是权限和访问信息的能力&#xff0c;而最小特权原则侧重于特权。 1. 知其…

数据安全运营体系建设

安全运营是由多个独立的工作子集形成&#xff0c;通过建立整体性&#xff08;通用性&#xff09;的工作机制&#xff0c;将独立个体进行有效串联&#xff0c;从而形成整体的、持续性的、可监管性的工作过程。安全运营是保障业务在安全环境下稳定运行的基础。数据安全作为组织整…