监控服务zabbix数据库监控配置详解
程序员文章站
2022-06-22 19:05:54
环境:主机名IP服务服务端node1192.168.207.129zabbix_server,zabbix_agentd客户端node2192.168.207.130zabbix_agent,mariadb客户端node3192.168.207.131zabbix_agent,mariadb开始下面的操作前,需要你的zabbix服务端和客户端已经配置完成,并且能够访问web界面,如果还没有配置可以参照文章《监控服务Zabbix介绍与部署》配置...
环境:
主机名 | IP | 服务 | |
---|---|---|---|
服务端 | node1 | 192.168.207.129 | zabbix_server,zabbix_agentd |
客户端 | node2 | 192.168.207.130 | zabbix_agent,mariadb |
客户端 | node3 | 192.168.207.131 | zabbix_agent,mariadb |
开始下面的操作前,需要你的zabbix服务端和客户端已经配置完成,并且能够访问web界面,如果还没有配置可以参照文章《监控服务Zabbix介绍与部署》
配置监控数据库主从
1. 客户端安装并配置主从
//node2为主库,node3为从库
[root@node2 ~]# yum -y install mariadb*
[root@node3 ~]# yum -y install mariadb*
[root@node2 ~]# systemctl enable --now mariadb
[root@node3 ~]# systemctl enable --now mariadb
//在主库中创建一个同步账号给从库使用
[root@node2 ~]# mysql
MariaDB [(none)]> grant replication slave on *.* to 'repl'@'192.168.207.131' identified by 'repl123';
MariaDB [(none)]> flush privileges;
//配置主数据库
[root@node2 ~]# vim /etc/my.cnf[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
//添加下面两行内容
server-id = 10 //数据库服务器唯一标识符,主库的server-id值必须比从库的小
log-bin = mysql_bin //启用binlog日志
[root@node2 ~]# systemctl restart mariadb
//查看主库状态
[root@node2 ~]# mysql
MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql_bin.000001 | 245 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
MariaDB [(none)]> exit
Bye
配置从数据库
[root@node3 ~]# vim /etc/my.cnf
[root@node3 ~]# systemctl restart mariadb
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
//添加下面两行内容
server-id = 20 //数据库服务器唯一标识符
relay-log = myrelay_bin //启用中继日志relay-log
//配置并启动主从复制
[root@node3 ~]# mysql -uroot -p123
MariaDB [(none)]> change master to
-> master_host='192.168.207.130',
-> master_user='repl',
-> master_password='repl123',
-> master_log_file='mysql_bin.000001',
-> master_log_pos=245;
Query OK, 0 rows affected (0.02 sec)
MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.207.130
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql_bin.000002
Read_Master_Log_Pos: 245
Relay_Log_File: myrelay_bin.000003
Relay_Log_Pos: 529
Relay_Master_Log_File: mysql_bin.000002
Slave_IO_Running: Yes //此行和下面一行必须是yes
Slave_SQL_Running: Yes
2. 在从库编写脚本,取出需要监控资源的状态值
[root@node3 ~]# cd /scripts/
[root@node3 scripts]# vim MS.sh
#!/bin/bash
status=$(mysql -e 'show slave status\G' 2>/dev/null |grep 'Slave.*Running' |grep -c Yes)
if [ $status -ne 2 ];then
echo '1'
else
echo '0'
fi
[root@node3 scripts]# chmod +x MS.sh
3. 编辑配置文件
[root@node3 ~]# vim /usr/local/etc/zabbix_agentd.conf
...
# Default:
UnsafeUserParameters=1 //将此行取消注释,并将0改为1
...
# Default:
UserParameter=check_mysql,/bin/bash /scripts/MS.sh //添加此行
[root@node3 ~]# pkill zabbix
[root@node3 ~]# zabbix_agentd
4. 在web界面配置监控项
5. 添加触发器
邮件告警我这里已经配过了,所以我们这里可以直接触发验证,看能否收到邮件,关于邮件告警的配置步骤可以参照文章《监控服务zabbix邮箱告警的三种配置方式》
6. 触发验证
//关闭主库
[root@node2 ~]# systemctl stop mariadb
查看邮箱
配置监控主从延迟
第一步配置主从和上面是一样的这里就不做演示了
1. 在从库编写脚本,取出需要监控资源的状态值
[root@node3 ~]# vim /scripts/delay.sh
#!/bin/bash
status=$(mysql -e 'show slave status\G' 2>/dev/null |grep 'Seconds_Behind_Master' |awk -F'[: ]+' '{print $3}')
echo $status
[root@node3 ~]# chmod +x /scripts/delay.sh
2. 编辑配置文件
[root@node3 ~]# vim /usr/local/etc/zabbix_agentd.conf
...
# Default:
UnsafeUserParameters=1 //将此行取消注释,并将0改为1
...
# Default:
UserParameter=check_delay,/bin/bash /scripts/delay.sh //添加此行
[root@node3 ~]# pkill zabbix
[root@node3 ~]# zabbix_agentd
3. 在web界面配置监控项
4. 添加触发器
5. 触发验证
查看邮箱
本文地址:https://blog.csdn.net/qq_45948194/article/details/107480415
上一篇: Maven打包跳过测试的实现方法
下一篇: Metasploit渗透学习日记四
推荐阅读