zabbix自定义监控

zabbix自定义监控


1、自定义监控进程

//监控httpd的进程,首先yum安装httpd服务
[root@zabbix ~]# yum -y install httpd

//在客户端更改配置文件
[root@zabbix ~]# vim /usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=check_process[*],/bin/bash /scripts/check_process.sh $1//在文件最后添加改内容

//重启服务,生效配置
[root@zabbix ~]# pkill zabbix
[root@zabbix ~]# zabbix_agentd 
[root@zabbix ~]# ss -anlt|grep 10050
LISTEN 0      128          0.0.0.0:10050      0.0.0.0:*  

//客户端编写脚本文件
[root@zabbix ~]# mkdir /scripts
[root@zabbix ~]# cd /scripts/
[root@zabbix scripts]# vim check_process.sh 
[root@zabbix scripts]# cat check_process.sh 
#!/bin/bash
  
count=$(ps -ef | grep -Ev "grep|$0" | grep $1|wc -l)
if [ $count -eq 0 ];then
    echo '1'
else
    echo '0'
fi
[root@zabbix scripts]# chmod +x check_httpd.sh 

//服务端检查key是否可用
[root@zabbix ~]# zabbix_get -s 192.168.174.170 -k check_process[httpd]
0
[root@zabbix ~]# zabbix_get -s 192.168.174.170 -k check_process[mysql]
1

添加监控项
1
2
3
4
添加触发器
5
6
7
8
关闭httpd服务,手动触发报警

[root@zabbix ~]# systemctl stop httpd

发送邮件
9
查看邮件
10

2、自定义监控日志

日志脚本连接:https://github.com/chendao2015/pyscripts/blob/master/log.py
编写脚本

//由于是python脚本,还需按照python环境
[root@zabbix ~]# dnf -y install python36
[root@zabbix ~]# vim /scripts/log.py
[root@zabbix ~]# chmod +x /scripts/log.py 

这里使用的还是httpd的错误日志来监控

//在客户端更改agentd配置文件
[root@zabbix ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_logs[*],/scripts/log.py $1 $2 $3

//重启服务,使配置文件生效
[root@zabbix ~]# pkill zabbix
[root@zabbix ~]# zabbix_agentd 

//因为/var/log/httpd目录没有执行权限,我们需要给他添加权限
[root@zabbix ~]# ll -d /var/log/httpd/
drwx------ 2 root root 41 Sep  6 16:54 /var/log/httpd/
[root@zabbix ~]# chmod 755 /var/log/httpd/
[root@zabbix ~]# ll /var/log/httpd/
total 4
-rw-r--r-- 1 root root   0 Sep  6 16:54 access_log
-rw-r--r-- 1 root root 827 Sep  6 17:53 error_log

//给httpd的error日志,添加一个错误信息
[root@zabbix ~]# echo "Error123456" >> /var/log/httpd/error_log

//在服务端检测key是否可用
[root@zabbix ~]# zabbix_get -s 192.168.174.170 -k check_logs[/var/log/httpd/error_log]
0
[root@zabbix ~]# zabbix_get -s 192.168.174.170 -k check_logs[/var/log/httpd/error_log]
1

添加监控项
11
12
13
14
添加触发器
15
16
17
18
手动添加错误日志,触发报警

[root@zabbix ~]# echo "Error" >> /var/log/httpd/error_log

发送邮件
19
查看邮件信息
20

3.自定义监控MySQL主从状态

首先配置mysql主从,这里我已经配置好了
主从同步完成

[root@zabbix ~]# mysql -uroot -p20021020 -e " show slave status\G"
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
                   Master_Host: 192.168.174.168
                   Master_User: repl
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mysql_bin.000001
           Read_Master_Log_Pos: 328
                Relay_Log_File: myrelay.000002
                 Relay_Log_Pos: 555
         Relay_Master_Log_File: mysql_bin.000001
              Slave_IO_Running: Yes    
             Slave_SQL_Running: Yes

我们需要监控的就是I/O和SQL线程
配置监控脚本

//在被监控端,也就是从库,首先修改配置文件
[root@zabbix ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysql_status,/bin/bash /scripts/mysql_status.sh

//重启服务生效配置
[root@zabbix ~]# pkill zabbix_agentd 
[root@zabbix ~]# zabbix_agentd 

//编写脚本
[root@zabbix ~]# vim /scripts/mysql_status.sh
[root@zabbix ~]# cat /scripts/mysql_status.sh 
#!/bin/bash
yes=$(mysql -uroot -p20021020 -e " show slave status\G" 2> /dev/null |grep "Running:"|grep -c "Yes")
if [ $yes == 2  ]; then
        echo "0"
else    
        echo "1"
fi 

//在服务端检查key是否可用
[root@zabbix ~]# zabbix_get -s 192.168.174.170 -k check_mysql_status
0

添加监控项
21
22
23
24
添加触发器
25
26
27
28
手动触发报警

[root@master ~]# mysql -uroot -p20021020 -e "stop slave;"

29
30

4.自定义监控MySQL延迟

配置监控脚本
监控延迟,我们需要关注 Seconds_Behind_Master这一项

//在被监控端,也就是从库,首先修改配置文件
[root@zabbix ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysqlyc,/bin/bash /scripts/mysqlyc.sh

//重启服务生效配置
[root@zabbix ~]# pkill zabbix_agentd 
[root@zabbix ~]# zabbix_agentd 

//编写脚本
[root@zabbix ~]# vim /scripts/mysqlyc.sh
[root@zabbix ~]# cat /scripts/mysqlyc.sh 
#!/bin/bash

yc=$(mysql -uroot -p20021020 -e "show slave status\G" 2> /dev/null |awk '/Seconds_Behind_Master/ {print $2}')

echo $yc

[root@zabbix ~]# chmod +x /scripts/mysqlyc.sh 

//去服务端检查key是否可用
[root@zabbix ~]# zabbix_get -s 192.168.174.170 -k check_mysqlyc
0

添加监控项
31
32
33
34
添加触发器
35
36
37
38
触发报警
39
存中…(img-Y4YBcdAD-1662564765078)]
[外链图片转存中…(img-hQH3uJs8-1662564765078)]
[外链图片转存中…(img-58RuyjBB-1662564765079)]
[外链图片转存中…(img-DrzQ0J7h-1662564765079)]
触发报警
[外链图片转存中…(img-D5ZKhjql-1662564765079)]
40

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值