一、 环境
二、安装配置mariadb主从(192.168.1.23-24)
见上篇文档:
https://blog.youkuaiyun.com/oToyix/article/details/106511065
三、安装Lnmp+zabbix_server(192.168.1.11)
参考:
https://blog.youkuaiyun.com/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