zabbix自定义监控
一、自定义监控进程
hostname | ip | 安装的应用 | |
---|---|---|---|
服务端 | zabbix.server.com | 192.168.200.39 | lamp架构,zabbix server,zabbix agent |
客户端 | node01.domain.example.com | 192.168.200.22 | zabbix agent |
部署流程:
1.配置监控端配置文件,配置监控脚本
监控端配置文件,自定义监控
[root@node01 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.200.39
ServerActive=192.168.200.39
Hostname=22linux
UnsafeUserParameters=1
UserParameter=show_process[*],/bin/bash /script/showprocess.sh $1
# UserParameter格式如下
# UserParameter=<key>,<shell command>
# show_process[*] 对应 <key>
# /bin/bash /script/showprocess.sh 对应 <shell command>
# $1 对应 web界面配置监控项 配key时[]中的内容,服务名 如:show_process[‘postfix’]
重启zabbix—agent服务
[root@node01 ~]# systemctl restart zabbix_agentd
编写脚本,功能:判断进程
[root@node01 ~]# vim /script/showprocess.sh
[root@node01 ~]# cat /script/showprocess.sh
#!/bin/bash
process=$(ps -ef|grep "$1" |grep -Ev "grep|$0" | wc -l)
# 过滤服务,过滤脚本本身输入的服务名,统计行
# $process 取到 1 时服务未启动 相反0在。 -eq 相等
if [ $process -eq 0 ];then
echo "1"
else
echo "0"
fi
[root@node01 ~]# chmod +x /script/showprocess.sh
在服务端验证新建的监控项
[root@zabbix ~]# zabbix_get -s 192.168.200.22 -k show_process['postfix']
1
# 返回值1 postfix服务未启动
[root@zabbix ~]# zabbix_get -s 192.168.200.22 -k show_process['zabbix_agent']
0
# 返回值0 zabbix_agent服务未启动
二、创建监控主机/主机组
访问https://blog.csdn.net/m0_74337295/article/details/133311462?spm=1001.2014.3001.5501
三、创建自定义监控项
四、创建触发器
五、创建媒介、报警通知(邮件)
访问https://blog.csdn.net/m0_74337295/article/details/133323083?spm=1001.2014.3001.5501
六、查看监控数据
二、自定义监控日志
hostname | ip | 安装的应用 | |
---|---|---|---|
服务端 | zabbix.server.com | 192.168.200.39 | lamp架构,zabbix server,zabbix agent |
客户端 | node01.domain.example.com | 192.168.200.22 | zabbix agent |
部署流程:
1.配置监控端配置文件,配置监控脚本
监控端配置文件,自定义监控打开
[root@node01 ~]# yum -y install python3
[root@RedHat8-2 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.200.39
ServerActive=192.168.200.39
Hostname=22linux
UnsafeUserParameters=1
UserParameter=check_logs[*],python3 /script/log.py $1 $2 $3
# UserParameter格式如下
# UserParameter=<key>,<shell command>
# show_process[*] 对应 <key>
# /bin/bash /script/showprocess.sh 对应 <shell command>
# $1 对应 web界面配置监控项 配key时[]中的内容为日志文件名
# $2 对应 seek position文件
# $3 对应 搜索关键字,默认为 Error
重启zabbix_agentd服务
[root@node01 ~]# systemctl restart zabbix_agentd
文件放在 /script/ 下 给运行权限
[root@node01 script]# chmod +x log.py
[root@node01 script]# ls
log.py
在服务端验证新建的监控项
[root@node01 ~]# vim /tmp/test.log
[root@node01 ~]# cat /tmp/test.log
hello world
Error
[root@zabbix ~]# zabbix_get -s 192.168.200.22 -k check_logs['/tmp/test.log']
1
二、创建监控主机/主机组
访问https://blog.csdn.net/m0_74337295/article/details/133311462?spm=1001.2014.3001.5501
三、创建自定义监控项
四、创建触发器
五、创建媒介、报警通知(邮件)
访问https://blog.csdn.net/m0_74337295/article/details/133323083?spm=1001.2014.3001.5501
六、查看监控数据
三、自定义监控MySQL主从状态
hostname | ip | 安装的应用 | |
---|---|---|---|
服务端 | zabbix.server.com | 192.168.200.39 | lamp架构,zabbix server,zabbix agent |
node02.domain.example.com | 192.168.200.31 | Mariadb(主) | |
客户端 | node01.domain.example.com | 192.168.200.22 | zabbix agent,Mariadb(从) |
部署流程:
一、设置mysql主从(主库)
#在主数据库里创建一个同步账号授权给从数据库使用
MariaDB [(none)]> create user 'abc'@'192.168.200.22' identified by 'abc123';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> grant replication slave on *.* to 'abc'@'192.168.200.22';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)
#配置主数据库
[root@node02 ~]# vi /etc/my.cnf.d/mariadb-server.cnf
//在[mysqld]这段的后面加上如下内容
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=mysql-bin //启用binlog日志
server-id=2 //数据库服务器唯一标识符,主库的server-id值必须比从库的大
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#重启mysql服务
[root@node02 ~]# systemctl restart mariadb
#查看主库状态
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 328 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.000 sec)
二、设置mysql主从(从库)
#配置从数据库
[root@node01 ~]# vi /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server-id=1 //设置从库的唯一标识符,从库的server-id值必须小于主库的该值
relay-log=mysql-relay-bin //启用中继日志relay-log
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#重启从库的mysql服务
[root@node01 ~]# systemctl restart mariadb
#配置并启动主从复制
MariaDB [(none)]> CHANGE MASTER TO
-> MASTER_HOST='192.168.200.31',
-> MASTER_USER='abc',
-> MASTER_PASSWORD='abc123',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=328;
Query OK, 0 rows affected (0.020 sec)
MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.002 sec)
#查看从服务器状态
MariaDB [(none)]> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.200.31
Master_User: abc
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 328
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 555
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes //查看从服务器状态
Slave_SQL_Running: Yes //查看从服务器状态
三、(MySQL从库端)zabbix配置文件、脚本
[root@node01 ~]# vim /usr/local/etc/zabbix_agentd.conf
[root@node01 script]# vim mysql_status.sh
[root@node01 script]# cat mysql_status.sh
#!/bin/bash
count=$(mysql -uroot -p12345678 -e 'show slave status\G' | grep -i 'running:' | grep -c 'Yes')
if [ $count -ne 2 ];then
echo '1'
else
echo '0'
fi
[root@node01 script]# chmod +x mysql_status.sh
[root@node01 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.200.39
ServerActive=192.168.200.39
Hostname=22linux
UnsafeUserParameters=1
UserParameter=check_mysql_status,/bin/bash /script/mysql_status.sh
[root@node01 ~]# systemctl restart zabbix_agentd
在服务端验证新建的监控项
[root@zabbix ~]# zabbix_get -s 192.168.200.22 -k check_mysql_status
0
四、创建监控主机/主机组
访问https://blog.csdn.net/m0_74337295/article/details/133311462?spm=1001.2014.3001.5501
五、创建自定义监控项
六、创建触发器
七、创建媒介、报警通知(邮件)
访问https://blog.csdn.net/m0_74337295/article/details/133323083?spm=1001.2014.3001.5501
八、查看监控数据
#闭关服务器
MariaDB [(none)]> stop slave;
Query OK, 0 rows affected (0.003 sec)
#查看状态
MariaDB [(none)]> show slave status \G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.200.31
Master_User: abc
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 371
Relay_Log_File: mysql-relay-bin.000004
Relay_Log_Pos: 670
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: No
Slave_SQL_Running: No
发生报警
四. 自定义监控MySQL主从延迟
hostname | ip | 安装的应用 | |
---|---|---|---|
服务端 | zabbix.server.com | 192.168.200.39 | lamp架构,zabbix server,zabbix agent |
node02.domain.example.com | 192.168.200.31 | Mariadb(主) | |
客户端 | node01.domain.example.com | 192.168.200.22 | zabbix agent,Mariadb(从) |
部署流程:
一、配置监控端配置文件,配置监控脚本
(MySQL从库端)zabbix配置文件、脚本
[root@node01 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=192[root@node01 ~]# systemctl restart zabbix_agentd.168.200.39
ServerActive=192.168.200.39
Hostname=22linux
UnsafeUserParameters=1
UserParameter=check_mysql_delay,/bin/bash /script/mysql_delay.sh
[root@node01 ~]# systemctl restart zabbix_agentd
编写脚本:取延迟值
[root@node01 script]# vim mysql_delay.sh
[root@node01 script]# cat mysql_delay.sh
#!/bin/bash
mysql -uroot -p12345678 -e 'show slave status\G' | grep 'Seconds_Behind_Master' | awk '{print $NF}'
[root@node01 script]# chmod +x mysql_delay.sh
在服务端验证新建的监控项:
[root@zabbix ~]# zabbix_get -s 192.168.200.22 -k check_mysql_delay
0
四、创建监控主机/主机组
访问https://blog.csdn.net/m0_74337295/article/details/133311462?spm=1001.2014.3001.5501
五、创建自定义监控项
六、创建触发器
七、创建媒介、报警通知(邮件)
访问https://blog.csdn.net/m0_74337295/article/details/133323083?spm=1001.2014.3001.5501