目录

  • 自定义监控进程
  • 服务器信息
  • 配置步骤
  • 自定义监控日志
  • 服务器信息
  • 配置步骤
  • 自定义监控主从状态
  • 服务器信息
  • 配置步骤
  • 自定义监控主从延迟
  • 服务器信息
  • 配置步骤

自定义监控进程

服务器信息

服务器名称

服务器IP

环境

zabbix服务端

192.168.197.138

Zabbix_server

zabbix客户端

192.168.197.133

Zabbix_agent,httpd

配置步骤

1.编写脚本用来输出进程是否启用

[root@localhost zabbix]# cd /scripts/lamp/zabbix/

[root@localhost zabbix]# vim item_progress
#!/bin/bash
sleep 20
count=`ps -ef | grep -Ev "grep| $0" | grep $1 | wc -l`

if [ $count -eq 0 ];then
       echo '1'
else
       echo '0'
fi
  1. 打开agent端自定义选项
[root@localhost ~]# vim /usr/local/etc/zabbix_agentd.conf
......
# Default:
UnsafeUserParameters=1  # 取消注释,并把值改成1,表示开启自定义项

## 新增自定义key和脚本路径以及参数
UserParameter=check_progress[*],/bin/bash /scripts/lamp/zabbix/item_progress $1

## 重启服务
[root@localhost zabbix]# pkill zabbix
[root@localhost zabbix]# zabbix_agentd 

## 服务端验证脚本可行性
[root@localhost ~]# zabbix_get -s 192.168.197.133 -k check_progress[httpd]
0

3.server端新增监控项以及触发器

Zabbix 远程执行脚本命令 zabbix脚本自定义监控_mysql


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_02


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_服务器_03


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_04

4.验证监控项以及邮件

## 关掉客户端的http服务
[root@localhost zabbix]# apachectl stop
[root@localhost zabbix]# ss -antl
State       Recv-Q       Send-Q               Local Address:Port                Peer Address:Port       
LISTEN      0            128                        0.0.0.0:22                       0.0.0.0:*          
LISTEN      0            128                        0.0.0.0:10050                    0.0.0.0:*          
LISTEN      0            128                           [::]:22                          [::]:* ```

Zabbix 远程执行脚本命令 zabbix脚本自定义监控_服务器_05


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_mysql_06

自定义监控日志

服务器信息

服务器名称

服务器IP

环境

zabbix服务端

192.168.197.138

Zabbix_server

zabbix客户端

192.168.197.133

Zabbix_agent,httpd,python

配置步骤

1.确定监控脚本并写入配置文件

# 确认python主执行指令的位置
[root@localhost zabbix]# ls /usr/local/python3.6/bin/python
/usr/local/python3.6/bin/python

# 新增UserParameter
[root@localhost zabbix]# vim /usr/local/etc/zabbix_agentd.conf

......
UserParameter=check_log[*],/usr/local/python3.6/bin/python /scripts/lamp/zabbix/log.py $1 $2

# 增加文件权限控制,为zabbix用户增加rx权限
[root@localhost httpd]# ll -d /etc/httpd/logs/
drwx------ 2 root root 67 Nov  7 09:41 /etc/httpd/logs/

[root@localhost httpd]# setfacl -m u:zabbix:rx logs/
[root@localhost httpd]# getfacl logs/
# file: logs/
# owner: root
# group: root
user::rwx
user:zabbix:r-x  ##查看zabbix权限
group::---
mask::r-x
other::---


# 重启服务
[root@localhost zabbix]# pkill zabbix
[root@localhost zabbix]# zabbix_agentd
 
# 服务端验证脚本
[root@localhost tmp]# zabbix_get -s 192.168.197.133 -k check_log[/etc/httpd/logs/error_log,/tmp/positon,Error]
0


# agent端临时写入一个Error
[root@localhost httpd]# echo 'Error' >> logs/error_log

# 再次查看脚本输出结果
[root@localhost tmp]# zabbix_get -s 192.168.197.133 -k check_log[/etc/httpd/logs/error_log,/tmp/positon,Error]
1

2.web配置监控项以及触发器

Zabbix 远程执行脚本命令 zabbix脚本自定义监控_mysql


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_自定义_08


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_服务器_03


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_服务器_10

3.修改日志文件,验证告警与邮箱

[root@localhost httpd]# echo 'Error' >> logs/error_log

Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_11


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_自定义_12

自定义监控主从状态

服务器信息

角色

服务器IP

环境

zabbix服务端

192.168.197.138

Zabbix_server

zabbix客户端,mysql主库

192.168.197.133

Zabbix_agent,mysqld

zabbix客户端,mysql从库

192.168.197.139

Zabbix_agent,mysqld

配置步骤

  1. 编写脚本用来输出主从状态是否正常
# 首先查看从库的状态
MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
                   Master_Host: 192.168.197.133
                   Master_User: repl
                   Master_Port: 3306
                 Connect_Retry: 60
               Master_Log_File: mysql-bin.000002
           Read_Master_Log_Pos: 342
                Relay_Log_File: myrelay.000005
                 Relay_Log_Pos: 641
         Relay_Master_Log_File: mysql-bin.000002
              Slave_IO_Running: Yes
             Slave_SQL_Running: Yes
......

# 编写脚本
[root@localhost zabbix]# vim mysql_slave_status.sh 
#!/bin/bash
  
count_status=`mysql -e 'show slave status\G' | grep -E 'Slave_IO_Running:|Slave_SQL_Running:' | grep -c 'Yes'`


if [ $count_status -eq 2 ];then
        echo '0'
else
        echo '1'
fi

# 开启自定义功能并新增自定义项
[root@localhost zabbix]# vim /usr/local/etc/zabbix_agentd.conf
......
# Default:
UnsafeUserParameters=1
......
# TLSCipherAll= 
UserParameter=check_slave,/bin/bash /scripts/lamp/zabbix/mysql_slave_status.sh  ## 确定key以及脚本存放位置


# zabbix服务端验证
[root@localhost tmp]# zabbix_get -s 192.168.197.139 -k check_slave
0

[root@localhost httpd]# systemctl stop mariadb    ## mysql主库断开

[root@localhost tmp]# zabbix_get -s 192.168.197.139 -k check_slave    ## 输入为1 表示有问题
1

2.web添加从库主机以及配置item 和 Triggers

Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_13


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_14


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_自定义_15


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_16


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_17

3.停止主库的mariadb,验证告警及邮件

[root@localhost httpd]# systemctl stop mariadb

Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_18


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_19

自定义监控主从延迟

服务器信息

角色

服务器IP

环境

zabbix服务端

192.168.197.138

Zabbix_server

zabbix客户端,mysql主库

192.168.197.133

Zabbix_agent,mysqld

zabbix客户端,mysql从库

192.168.197.139

Zabbix_agent,mysqld

配置步骤

  1. 编写脚本,输出延迟数
[root@localhost ~]# cd /scripts/lamp/zabbix/
[root@localhost zabbix]# vim mysql_slave_delay
#!/bin/bash
  
count=`mysql -e 'show slave status\G'|grep 'Seconds_Behind_Master'|awk '{print $2}'`

echo $count

# 添加执行条件
[root@localhost zabbix]# chmod +x mysql_slave_delay

# 写入agent配置文件
[root@localhost zabbix]# vim /usr/local/etc/zabbix_agentd.conf
......
UserParameter=check_slave_delay,/bin/bash /scripts/lamp/zabbix/mysql_slave_delay.sh


# 重启服务
[root@localhost zabbix]# pkill zabbix
[root@localhost zabbix]# zabbix_agentd

# 服务端验证脚本输出

[root@localhost ~]# zabbix_get -s 192.168.197.139 -k check_slave_delay
0
  1. web页面添加监控项以及触发器

Zabbix 远程执行脚本命令 zabbix脚本自定义监控_Zabbix 远程执行脚本命令_14


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_服务器_21


Zabbix 远程执行脚本命令 zabbix脚本自定义监控_服务器_22