Zabbix分布式监控mariadb主从,实现企业微信报警

一、 环境

在这里插入图片描述

二、安装配置mariadb主从(192.168.1.23-24)

见上篇文档:
https://blog.csdn.net/oToyix/article/details/106511065

三、安装Lnmp+zabbix_server(192.168.1.11)

参考:
https://blog.csdn.net/oToyix/article/details/106853849

四、安装zabbix_proxy(192.168.1.22)

安装阿里zabbix源

[root@localhost ~]# yum install http://repo.zabbix.com/zabbix/4.5/rhel/7/x86_64/zabbix-release-4.5-2.el7.noarch.rpm

安装zabbix_proxy

[root@localhost ~]# yum install zabbix40-proxy zabbix40-proxy-mysql zabbix40-dbfiles-mysql  -y
[root@localhost ~]# rpm -qa|grep zabbix
zabbix40-dbfiles-mysql-4.0.17-1.el7.noarch
zabbix40-proxy-4.0.17-1.el7.noarch
zabbix40-proxy-mysql-4.0.17-1.el7.x86_64
zabbix40-4.0.17-1.el7.x86_64

安装数据库,并导入数据文件,这里就使用yum来安装mariadb

[root@localhost ~]# yum install mariadb mariadb-server mariadb-devel –y
[root@localhost ~]# rpm -qa|grep mariadb
mariadb-5.5.65-1.el7.x86_64
mariadb-server-5.5.65-1.el7.x86_64
mariadb-libs-5.5.65-1.el7.x86_64
mariadb-devel-5.5.65-1.el7.x86_64

启动、创建数据库,授权并导库

[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# ps -ef|grep mariadb
mysql    18043 17881  7 13:33 ?        00:00:01 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root     18085  2482  0 13:33 pts/1    00:00:00 grep --color=auto mariadb
[root@localhost ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create atabases zabbix-proxy charset utf8;
MariaDB [(none)]> grant all on zabbix_proxy.* to "zabbix"@"localhost" identified by "123456";  
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>exit
导库
[root@localhost ~]# mysql -uzabbix -p123456 zabbix_proxy </usr/share/zabbix-mysql/schema.sql 

配置zabbix_proxy.conf

[root@localhost ~]# egrep -v '^#|^$' /etc/zabbix_proxy.conf    
ProxyMode=0
Server=192.168.1.11
Hostname=proxy22
ListenPort=10051
LogFile=/var/log/zabbixsrv/zabbix_proxy.log
LogFileSize=0
PidFile=/run/zabbixsrv/zabbix_proxy.pid
SocketDir=/var/lib/zabbixsrv/tmp
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
HeartbeatFrequency=60
ConfigFrequency=60
DataSenderFrequency=3
Timeout=4
ExternalScripts=/var/lib/zabbixsrv/externalscripts
LogSlowQueries=3000
TmpDir=/var/lib/zabbixsrv/tmp
SSLCertLocation=/var/lib/zabbixsrv/ssl/certs
SSLKeyLocation=/var/lib/zabbixsrv/ssl/keys

配置agent.conf
[root@localhost ~]# vim /etc/zabbix_agentd.conf

[root@localhost ~]# egrep -v '^#|^$' /etc/zabbix_agentd.conf 
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.22
ServerActive=192.168.1.22
Hostname=192.168.1.24
UserParameter=autocheck.Repliofmysql,bash /data/sh/autocheckRepliofmysql.sh

启用代理服务

[root@localhost ~]# systemctl restart zabbix-agent                       
[root@localhost ~]# systemctl start zabbix-proxy
开启防火墙端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=10051/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1393/sendmail: acce 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      2406/zabbix_proxy   
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2318/mysqld         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1378/sshd           
tcp6       0      0 :::10051                :::*                    LISTEN      2406/zabbix_proxy   
tcp6       0      0 :::22                   :::*                    LISTEN      1378/sshd    

添加代理程序

管理-agent代理程序-创建代理
在这里插入图片描述

五、自动注册并监控mysql主从状态

1、从库192.168.1.24中安装zabbix_agent

安装zabbix源

[root@localhost ~]# yum install http://repo.zabbix.com/zabbix/4.5/rhel/7/x86_64/zabbix-release-4.5-2.el7.noarch.rpm

安装zabbix-agent

[root@localhost ~]# yum install zabbix40 zabbix40-agent -y
[root@localhost ~]# rpm -qa|grep zabbix
zabbix40-agent-4.0.17-1.el7.x86_64
zabbix40-4.0.17-1.el7.x86_64
zabbix-release-4.5-2.el7.noarch

开启主动模式

[root@localhost ~]# sed -i "s/ServerActive=127.0.0.1/ServerActive=192.168.1.22/g" /etc/zabbix_agentd.conf  
[root@localhost ~]# sed -i "s/Hostname=Zabbix server/Hostname=192.168.1.24/" /etc/zabbix_agentd.conf  
[root@localhost ~]# sed -i "s/Server=127.0.0.1/Server=192.168.1.22/g" /etc/zabbix_agentd.conf                                      
[root@localhost ~]# egrep -v '^#|^$' /etc/zabbix_agentd.conf                                 
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.22
ServerActive=192.168.1.22
Hostname=192.168.1.24

2、192.168.1.24上编写主从状态检测脚本并添加至agent.conf中

[root@localhost ~]# mkdir -p /data/sh/
[root@localhost ~]# cd /data/sh/
[root@localhost sh]# vim autocheckRepliofmysql.sh
#!/bin/bash
#by toyix
#############
mysql -e "show slave status\G"|grep -c "Yes"
[root@localhost sh]# chmod +x autocheckRepliofmysql.sh 
[root@localhost sh]# chmod u=s /usr/bin/mysql 
[root@localhost sh]# ./autocheckRepliofmysql.sh 
2

[root@localhost sh]# vim /etc/zabbix_agentd.conf

292 UserParameter=autocheckRepliofmysql,bash /data/sh/autocheckRepliofmysql.sh

重启

[root@localhost sh]# systemctl restart zabbix-agent 

3、zabbix自动发现添加从主机并监控主从状态

创建自动注册
配置-动作 -选择自动注册-创建动作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、添加mysql主从状态监控项

在这里插入图片描述
已有数据

六、企业微信告警

1、创建企业微信

注:个人也可以申请,只要不进行认证即可
https://work.weixin.qq.com/?from=qyh_redirect
在这里插入图片描述
在这里插入图片描述

2、创建企业微信应用

应用管理中创建应用
在这里插入图片描述
在这里插入图片描述

3、设置微信调试接口

https://work.weixin.qq.com/api/devtools/devtool.php
在这里插入图片描述

4、配置微信脚本

[root@localhost src]# wget -c wget http://download.zhsir.org/Zabbix/weixin_linux_amd64
[root@localhost src]# mkdir -p /var/lib/zabbixsrv/alertscripts
[root@localhost src]# mv weixin_linux_amd64 /var/lib/zabbixsrv/alertscripts/wechat
[root@localhost src]# chmod +x /var/lib/zabbixsrv/alertscripts/wechat 

测试微信脚本

[root@localhost ~]# /var/lib/zabbixsrv/alertscripts/wechat --corpid=ww0205752181b96170 --corpsecret=NlVARVr6H5-xXFnDwGAiaEPZSsvx6AC_hrVm --msg="告警测试" --user=YueJianYu --agentid=1000002
注:我这里信息有删减,不要照搬
--corpid= 企业里面的id(点击我的企业,最下面可以看到)
--corpsecret= 企业应用Secret(点击报警应用可以看到)
-msg= 内容
-user=应用可见用户的账号(是唯一标识账号,不是姓名)
--agentid=应用id(点击报警应用可以看到)

5、web端添加报警媒介

新建用户
在这里插入图片描述
在这里插入图片描述
然后在用户中设置 微信报警收件人

在这里插入图片描述
在这里插入图片描述

6、设置触发器

在这里插入图片描述
创建动作
在这里插入图片描述
在这里插入图片描述
查看效果

关闭mariadb服务
[root@localhost ~]# systemctl stop mariadb
查看键值信息
[root@localhost ~]# zabbix_get -s 192.168.1.24 -k "autocheck.Repliofmysql"
1

在这里插入图片描述
在这里插入图片描述

---------------------end

猜你喜欢

转载自blog.csdn.net/oToyix/article/details/106922475