zabbix-进程,日志,mysql主从监控-03

环境描述

主机 服务 zabbix
vm3 mysql(zabbix) zabbix_server
zabbix_agent
vm2 php,mysql(从) zabbix_agent
vm4 apache,mysql(主) zabbix_agent

脚本信息

[root@vm2 script]# pwd
/script
[root@vm2 script]# ll -d 
drwxr-xr-x+ 2 root root 120 Nov  8 16:25 .
[root@vm2 script]# ll 
total 16
-rwxr-xr-x 1 root root  143 Nov  8 14:06 check_process.sh
-rw-r--r-- 1 root root 1854 Mar 22  2020 log.py
-rwxr-xr-x 1 root root  229 Nov  8 16:23 mysql_ms_delay.sh
-rwxr-xr-x 1 root root  252 Nov  8 16:25 mysql_ms_status.sh
[root@vm2 script]# getfacl /script/
getfacl: Removing leading '/' from absolute path names
# file: script/
# owner: root
# group: root
user::rwx
user:zabbix:r-x
group::r-x
mask::r-x
other::r-x

监控进程

  • 查看进程状态脚本
[root@vm2 script]# vim check_process.sh 
#!/bin/bash

process_num=$(ps -ef | grep -v "grep" | grep -v $0 | grep $1 |wc -l)
if [ $process_num -eq 0 ];then
    echo 1
else
    echo 0
fi

开启自定义监控

  • 创建自定义key
[root@vm2 script]# vim /usr/local/etc/zabbix_agentd.conf
.........................................
UnsafeUserParameters=1

##Format: UserParameter=<key>,<shell command>
UserParameter=check_process_status[*],/bin/bash /script/check_process.sh $1
  • 重启zabbix-agent
[root@vm2 script]# pkill zabbix
[root@vm2 script]# zabbix_agentd 
[root@vm2 script]# ss -antl 
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:9000                     *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128          *:10050                    *:*                  
LISTEN     0      80        [::]:3306                  [::]:*                  
LISTEN     0      128       [::]:22                    [::]:*                  
LISTEN     0      100      [::1]:25                    [::]:*  

在zabbix-server端手动测试zabbix-get

## zabbix_get语法
usage:
  zabbix_get -s host-name-or-IP [-p port-number] [-I IP-address] -k item-key
General options:
  -s --host host-name-or-IP  Specify host name or IP address of a host
  -p --port port-number      Specify port number of agent running on the host(default: 10050)
  -I --source-address IP-address   Specify source IP address
  -k --key item-key          Specify key of the item to retrieve value for
  -h --help                  Display this help message
  -V --version               Display version number

##测试vm2上apache进程状态
[root@vm3 ~]# zabbix_get -s 192.168.225.128 -p 10050 -k check_process_status[apache] 
1
##测试vm2上php进程状态
[root@vm3 ~]# zabbix_get -s 192.168.225.128 -p 10050 -k check_process_status[php]
0
[root@vm2 script]# ss -antl 
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:9000                     *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128          *:10050                    *:*                  
LISTEN     0      80        [::]:3306                  [::]:*                  
LISTEN     0      128       [::]:22                    [::]:*                  
LISTEN     0      100      [::1]:25                    [::]:*  

添加监控主机

添加监控项

添加触发器

配置媒介

  • 配置告警脚本
[root@vm3 ~]# vim /usr/local/share/zabbix/alertscripts/sendmail.sh
#!/bin/bash
messages=$(echo $3 | tr '\r\n' '\n')
subject=$(echo $2 | tr '\r\n' '\n')
echo "${messages}" | /usr/bin/mail -s "${subject}" $1
~                                                      
  • 配置mail.rc
[root@vm3 ~]# vim /etc/mail.rc 
set from=m15927947332@163.com
set smtp=smtp.163.com
set smtp-auth-user=m15927947332@163.com
set smtp-auth-password=DNAFZCZHOYUDFKCH
set smtp-auth=login
set ssl-verify=ignore

配置用户

配置动作

验证

监控日志

  • python脚本log.py
  • 参数说明:<监控日志的路径,日志定位文件路径(默认/tmp/logseek),关键字(默认Error)>

配置自定义监控项

UnsafeUserParameters=1
UserParameter=check_log[*],/usr/bin/python /script/log.py $1 $2 $3

重启zabbix-agent

[root@vm2 script]# pkill zabbix
[root@vm2 script]# zabbix_agentd 
[root@vm2 script]# ss -antl 
State      Recv-Q Send-Q  Local Address:Port                 Peer Address:Port              
LISTEN     0      128                 *:9000                            *:*                  
LISTEN     0      128                 *:22                              *:*                  
LISTEN     0      100         127.0.0.1:25                              *:*                  
LISTEN     0      128                 *:10050                           *:*                  
LISTEN     0      80               [::]:3306                         [::]:*                  
LISTEN     0      128              [::]:22                           [::]:*                  
LISTEN     0      100             [::1]:25                           [::]:*    

zabbix_server端手动测试

[root@vm3 ~]# zabbix_get -s 192.168.225.128 -k check_log[/tmp/zabbix_agentd.log,/tmp/seek,error]
0
[root@vm2 script]# cat /tmp/seek 
59045
[root@vm2 script]# echo error >> /tmp/zabbix_agentd.log
[root@vm3 ~]# zabbix_get -s 192.168.225.128 -k check_log[/tmp/zabbix_agentd.log,/tmp/seek,error]
1
[root@vm2 script]# cat /tmp/seek 
59158

添加监控项

添加触发器

用户配置

媒介配置

配置动作

测试验证

监控mysql主从状态

  • 脚本内容
[root@vm2 script]# vim mysql_ms_status.sh 
#!/bin/bash 
mysql_user=root
mysql_pass=123456
basedir=/usr/local/mysql

num=$(${basedir}/bin/mysql -u${mysql_user} -p${mysql_pass} 2>/dev/null -e 'show slave status\G' | grep "Running:" | grep "Yes" |wc -l)
if [ ${num} -eq 2 ];then
    echo 0
else
    echo 1
fi

配置定义监控项

UserParameter=check_mysql_ms_status[*],/bin/bash mysql_ms_status.sh 

重启zabbix-agent

[root@vm2 script]# pkill zabbix
[root@vm2 script]# zabbix_agentd 
[root@vm2 script]# ss -antl 
State      Recv-Q Send-Q  Local Address:Port                 Peer Address:Port              
LISTEN     0      128                 *:9000                            *:*                  
LISTEN     0      128                 *:22                              *:*                  
LISTEN     0      100         127.0.0.1:25                              *:*                  
LISTEN     0      128                 *:10050                           *:*                  
LISTEN     0      80               [::]:3306                         [::]:*                  
LISTEN     0      128              [::]:22                           [::]:*                  
LISTEN     0      100             [::1]:25                           [::]:*      

zabbix_server端手动测试

[root@vm3 ~]# zabbix_get -s 192.168.225.128 -k check_mysql_ms_status
0
[root@vm4 ~]# service mysqld stop 
Shutting down MySQL............ SUCCESS! 
[root@vm3 ~]# zabbix_get -s 192.168.225.128 -k check_mysql_ms_status
1

添加监控项

配置触发器

配置动作

验证

监控mysql主从延迟

  • 脚本内容
[root@vm2 script]# vim mysql_ms_delay.sh
#!/bin/bash
mysql_user=root
mysql_pass=123456
basedir=/usr/local/mysql

delay_num=$(${basedir}/bin/mysql -u${mysql_user} -p${mysql_pass} 2>/dev/null -e 'show slave status\G' | grep "Behind_Master" |awk -F': ' '{print $2}')
echo ${delay_num}

自定义监控项

UserParameter=check_mysql_ms_delay,/bin/bash /script/mysql_ms_delay.sh

重启服务

[root@vm2 script]# pkill zabbix
[root@vm2 script]# zabbix_agentd 
[root@vm2 script]# ss -antl 
State      Recv-Q Send-Q  Local Address:Port                 Peer Address:Port              
LISTEN     0      128                 *:9000                            *:*                  
LISTEN     0      128                 *:22                              *:*                  
LISTEN     0      100         127.0.0.1:25                              *:*                  
LISTEN     0      128                 *:10050                           *:*                  
LISTEN     0      80               [::]:3306                         [::]:*                  
LISTEN     0      128              [::]:22                           [::]:*                  
LISTEN     0      100             [::1]:25                           [::]:*      

zabbix_server端手动测试

[root@vm3 ~]# zabbix_get -s 192.168.225.128 -k check_mysql_ms_delay
0

配置监控项

配置触发器

配置动作

posted @ 2020-11-09 08:45  小芃总  阅读(153)  评论(0)    收藏  举报