自定义监控进程
服务器信息
服务器名称 | 服务器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
- 打开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端新增监控项以及触发器
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 [::]:* ```
自定义监控日志
服务器信息
服务器名称 | 服务器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配置监控项以及触发器
3.修改日志文件,验证告警与邮箱
[root@localhost httpd]# echo 'Error' >> logs/error_log
自定义监控主从状态
服务器信息
角色 | 服务器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 |
配置步骤
- 编写脚本用来输出主从状态是否正常
# 首先查看从库的状态
MariaDB [(none)]> show slave statusG
*************************** 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 statusG' | 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
3.停止主库的mariadb,验证告警及邮件
[root@localhost httpd]# systemctl stop mariadb
自定义监控主从延迟
服务器信息
角色 | 服务器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 |
配置步骤
- 编写脚本,输出延迟数
[root@localhost ~]# cd /scripts/lamp/zabbix/
[root@localhost zabbix]# vim mysql_slave_delay
#!/bin/bash
count=`mysql -e 'show slave statusG'|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
- web页面添加监控项以及触发器