• 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
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

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

    [root@zabbix ~]# systemctl stop httpd
    
    • 1

    发送邮件
    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 
    
    • 1
    • 2
    • 3
    • 4

    这里使用的还是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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

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

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

    发送邮件
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    我们需要监控的就是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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

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

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

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

  • 相关阅读:
    Linux内存管理(十九):slab 分配器概述和初始化
    内置对象——数值
    OpenAI 官方: 如何构建 Prompt 最佳策略
    10.力扣c++刷题-->罗马数字转整数
    差值结构顺序的稳定性
    ncurses库意外失联引发的思考
    利用eNSP实现telent远程登陆
    【冰糖Python】TensorFlow 占位符 placeholder
    《存储IO路径》-进程、线程和任务的区别
    第九章:最新版零基础学习 PYTHON 教程—Python 元组(第三节 -访问Python元组的前后元素)
  • 原文地址:https://blog.csdn.net/Y_Prodigal/article/details/126756066