zabbix自定义监控 四个案例
一. 自定义监控进程
环境:
hostname | ip | 安装的应用 | |
---|---|---|---|
服务端 | RedHat8.example.com | 192.168.226.134 | lamp架构 zabbix server zabbix agent |
客户端 | RedHat8-2.example.com | 192.168.226.138 | zabbix agent |
部署流程:
1.配置监控端配置文件,配置监控脚本
监控端配置文件,自定义监控打开
[root@RedHat8-2 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.226.134
ServerActive=192.168.226.134
Hostname=RedHat8-2
UnsafeUserParameters=1
UserParameter=show_process[*],/bin/bash /script/showprocess.sh $1
# UserParameter格式如下
# UserParameter=<key>,<shell command>
# show_process[*] 对应 <key>
# /bin/bash /script/showprocess.sh 对应 <shell command>
# $1 对应 web界面配置监控项 配key时[]中的内容,服务名 如:show_process[‘postfix’]
重启zabbix_agent
[root@RedHat8-2 ~]# systemctl restart zabbix-agent
编写脚本,功能:判断进程
[root@RedHat8-2 ~]# mkdir /script
[root@RedHat8-2 ~]# vim /script/showprocess.sh
#!/bin/bash
process=$(ps -ef|grep "$1" |grep -Ev "grep|$0" | wc -l)
# 过滤服务,过滤脚本本身输入的服务名,统计行
# $process 取到 1 时服务未启动 相反0在。 -eq 相等
if [ $process -eq 0 ];then
echo "1"
else
echo "0"
fi
[root@RedHat8-2 ~]# chmod +x /script/showprocess.sh
在服务端验证新建的监控项
[root@RedHat8 ~]# zabbix_get -s 192.168.226.138 -k show_process['postfix']
1
# 返回值1 postfix服务未启动
2.创建监控主机/主机组
https://blog.csdn.net/qq_59363371/article/details/133251980?spm=1001.2014.3001.5502
3.创建自定义监控项
#注释:监控postfix服务进程
4.创建触发器
5.创建媒介
6.报警通知(邮件)
#5 #6 通过以下网站指导创建
https://blog.csdn.net/qq_59363371/article/details/133282335?spm=1001.2014.3001.5502
7.查看监控数据
二. 自定义监控日志
环境:
hostname | ip | 安装的应用 | |
---|---|---|---|
服务端 | RedHat8.example.com | 192.168.226.134 | lamp架构 zabbix server zabbix agent |
客户端 | RedHat8-2.example.com | 192.168.226.138 | zabbix agent |
部署流程:
1.配置监控端配置文件,配置监控脚本
监控端配置文件,自定义监控打开
#安装python3
[root@RedHat8-2 ~]# yum -y install python3
#添加以下一句
[root@RedHat8-2 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.226.134
ServerActive=192.168.226.134
Hostname=RedHat8-2
UnsafeUserParameters=1
UserParameter=check_logs[*],python3 /script/log.py $1 $2 $3
# UserParameter格式如下
# UserParameter=<key>,<shell command>
# show_process[*] 对应 <key>
# /bin/bash /script/showprocess.sh 对应 <shell command>
# $1 对应 web界面配置监控项 配key时[]中的内容为日志文件名
# $2 对应 seek position文件
# $3 对应 搜索关键字,默认为 Error
重启zabbix_agent
[root@RedHat8-2 ~]# systemctl restart zabbix-agent
编写脚本:
文件下载位置:
https://github.com/chendao2015/pyscripts/archive/refs/heads/master.zip
文件 log.py
作用:检查日志文件中是否有指定的关键字
第一个参数为日志文件名(必须有,相对路径、绝对路径均可)
第二个参数为seek position文件的路径(可选项,若不设置则默认为/tmp/logseek文件。相对路径、绝对路径均可)
第三个参数为搜索关键字,默认为 Error
文件放在 /script/ 下 给运行权限
[root@RedHat8-2 ~]# chmod +x /script/log.py
在服务端验证新建的监控项
[root@RedHat8-2 ~]# cat /tmp/test.log
hello world
Error
[root@RedHat8 ~]# zabbix_get -s 192.168.226.138 -k check_logs['/tmp/test.log']
1
# 检测到Error 返回值1
2.创建监控主机/主机组
https://blog.csdn.net/qq_59363371/article/details/133251980?spm=1001.2014.3001.5502
3.创建自定义监控项
4.创建触发器
5.创建媒介
6.报警通知(邮件)
#5 #6 通过以下网站指导创建
https://blog.csdn.net/qq_59363371/article/details/133282335?spm=1001.2014.3001.5502
7.查看监控数据
三. 自定义监控MySQL主从状态
环境:
hostname | ip | 安装的应用 | |
---|---|---|---|
服务端 | RedHat8.example.com | 192.168.226.134 | lamp架构 zabbix server zabbix agent |
客户端 | RedHat8-1.example.com | 192.168.226.128 | Mariadb master |
RedHat8-2.example.com | 192.168.226.138 | zabbix agent Mariadb slave |
#注释:MySQL主从配置
https://blog.csdn.net/qq_59363371/article/details/132744024?spm=1001.2014.3001.5502
部署流程:
1.配置监控端配置文件,配置监控脚本
监控MySQL主从时,只需监控MySQL从库主机,监控两个Yes
show slave status \G 用于提供有关从属服务器线程的关键参数的信息
Slave_IO_Running: Yes //此处必须为Yes
Slave_SQL_Running: Yes //此处必须为Yes
监控端(MySQL从库端)zabbix配置文件,自定义监控打开
[root@RedHat8-2 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.226.134
ServerActive=192.168.226.134
Hostname=RedHat8-2
UnsafeUserParameters=1
UserParameter=check_mysql_status,/bin/bash /script/mysql_status.sh
[root@RedHat8-2 script]# systemctl restart zabbix_agentd
监控端(MySQL从库端)脚本文件
[root@RedHat8-2 script]# vim mysql_status.sh
#!/bin/bash
count=$(mysql -uroot -p610000 -e 'show slave status\G' | grep -i 'running:' | grep -c 'Yes')
if [ $count -ne 2 ];then
echo '1'
else
echo '0'
fi
[root@RedHat8-2 ~]# chmod +x mysql_status.sh
在服务端验证新建的监控项
[root@RedHat8 ~]# zabbix_get -s 192.168.226.138 -k check_mysql_status
0
2.创建监控主机/主机组
https://blog.csdn.net/qq_59363371/article/details/133251980?spm=1001.2014.3001.5502
3.创建自定义监控项
4.创建触发器
5.创建媒介
6.报警通知(邮件)
#5 #6 通过以下网站指导创建
https://blog.csdn.net/qq_59363371/article/details/133282335?spm=1001.2014.3001.5502
7.查看监控数据
四. 自定义监控MySQL主从延迟
环境:
hostname | ip | 安装的应用 | |
---|---|---|---|
服务端 | RedHat8.example.com | 192.168.226.134 | lamp架构 zabbix server zabbix agent |
客户端 | RedHat8-1.example.com | 192.168.226.128 | Mariadb master |
RedHat8-2.example.com | 192.168.226.138 | zabbix agent Mariadb slave |
#注释:MySQL主从配置
https://blog.csdn.net/qq_59363371/article/details/132744024?spm=1001.2014.3001.5502
1.配置监控端配置文件,配置监控脚本
监控端(MySQL从库端)zabbix配置文件,自定义监控打开
[root@RedHat8-2 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.226.134
ServerActive=192.168.226.134
Hostname=RedHat8-2
UnsafeUserParameters=1
UserParameter=check_mysql_delay,/bin/bash /script/mysql_delay.sh
[root@RedHat8-2 script]# systemctl restart zabbix_agentd
编写脚本:取延迟值
[root@RedHat8-2 script]# vim mysql_delay.sh
#!/bin/bash
mysql -uroot -p610000 -e 'show slave status\G' | grep 'Seconds_Behind_Master' | awk '{print $NF}'
[root@RedHat8-2 ~]# chmod +x /script/mysql_delay.sh
在服务端验证新建的监控项:
[root@RedHat8 ~]# zabbix_get -s 192.168.226.138 -k check_mysql_delay
0
2.创建监控主机/主机组
https://blog.csdn.net/qq_59363371/article/details/133251980?spm=1001.2014.3001.5502
3.创建自定义监控项
4.创建触发器
测试延迟大于200报警
5.创建媒介
6.报警通知(邮件)
#5 #6 通过以下网站指导创建
https://blog.csdn.net/qq_59363371/article/details/133282335?spm=1001.2014.3001.5502