暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第十九期:基于三台服务器实现Zabbix分布式监控,并基于企业微信实现微信告警

i运维 2021-06-21
537

一.  Zabbix分布式监控

1.1  环境

服务端:192.168.193.102

代理端:192.168.193.103

客户端:192.168.193.104

1.2  Server配置

#编辑配置文件

[root@node2 ~]#egrep "^[a-Z]" usr/local/zabbix/etc/zabbix_server.conf

LogFile=/tmp/zabbix_server.log

LogFileSize=0

PidFile=/tmp/zabbix_server.pid

SocketDir=/tmp

#指定数据库服务地址,如果是淡季部署,可以写localhost

DBHost=192.168.193.103

#下面三行与数据库授权信息保持一致

DBName=zabbix

DBUser=zabbix

DBPassword=123456

Timeout=4

AlertScriptsPath=/usr/loacl/zabbix/shell/alertscripts

ExternalScripts=/usr/loacl/zabbix/shell/externalscripts

LogSlowQueries=3000

TmpDir=/tmp

SSLCertLocation=/usr/loacl/zabbix/ssl/certs

SSLKeyLocation=/usr/loacl/zabbix/ssl/keys

 

1.3  安装配置proxy

#源码安装proxy

[root@node3opt]#tar -xzvf zabbix-4.0.21.tar.gz

[root@node3 opt]#cd zabbix-4.0.21

[root@node3 zabbix-4.0.21]# ./configure --prefix=/usr/local/zabbix--enable-proxy --with-mysql --with-ssh2

[root@node3 zabbix-4.0.21]# make install

#创建zabbix用户

[root@node3 zabbix]# useradd zabbix -s sbin/nologin –M

#配置启动脚本

[root@node3 ~]# cp/opt/zabbix-4.0.21/misc/init.d/fedora/core/zabbix_server/etc/init.d/zabbix_proxy

#编辑启动脚本

[root@node3 ~]# vim etc/init.d/zabbix_proxy

#创建数据库(zabbix_proxy需要单独创建数据库)

MariaDB [(none)]> create database zabbix_proxy charset utf8;

Query OK, 1 row affected (0.01 sec)

#授权

MariaDB [(none)]> grant all on zabbix_proxy.* to"zabbix_proxy"@"localhost" identified by"123456";

Query OK, 0 rows affected (0.00 sec)

#刷新

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 

#导入数据

[root@node3 mysql]# mysql -uzabbix_proxy -p123456 zabbix_proxy </opt/zabbix-4.0.21/database/mysql/schema.sql

 

#修改配置文件

[root@node3 ~]# egrep "^[a-Z]"/usr/local/zabbix/etc/zabbix_proxy.conf

#proxy默认为主动模式,即proxy收集数据,然后主动把数据推送到Server.在主动模式中,配置检索的时间,心跳,数据发送频率是由每个proxy在配置文件独立定义的(被动模式则不需要,是由server定义)

ProxyMode=0

#监控端的ip

Server=192.168.193.102

#web中配置的proxy代理程序一致

Hostname=Zabbix_proxy-103

ListenPort=10051

LogFile=/tmp/zabbix_proxy.log

LogFileSize=0

PidFile=/tmp/zabbix_proxy.pid

DBHost=localhost

DBName=zabbix_proxy

DBUser=zabbix_proxy

DBPassword=123456

#多久进行一次心跳检测

HeartbeatFrequency=60

#代理多久从server获取一次配置变化

ConfigFrequency=60

#代理收集到数据后,多久向server发送一次

DataSenderFrequency=3

Timeout=4

ExternalScripts=/usr/local/zabbix/externalscripts

LogSlowQueries=3000

TmpDir=/tmp

1.4  Agent配置

#编辑配置文件

[root@node4 ~]#vim usr/local/zabbix/etc/zabbix_agentd.conf

PidFile=/tmp/zabbix_agentd.pid

LogFile=/tmp/zabbix/zabbix_agentd.log

LogFileSize=0

Server=192.168.193.103

Hostname=node4

1.5  启动服务

#服务端

[root@node2 ~]# etc/init.d/zabbix_serverrestart

#代理端

[root@node3 ~]#/etc/init.d/zabbix_proxy restart

#agent

[root@node4 ~]#/etc/init.d/zabbix_agentd restart

1.6  Web端配置

1.6.1  创建proxy

#点击管理-->agent代理程序-->创建代理


1.6.2  添加主机

              #查看

1.7  企业微信报警

Zabbix除了可以使用邮件报警之外,还可以通过多种方式把告警信息发送

到指定人,例如短信报警方式,越来越多的企业开始使用Zabbix结合微信

作为主要的告警方式,因为每个人每天都在使用微信,这样可以及时有效

的把告警信息推送到接收人,方便告警的及时处理。

1.7.1  微信企业号注册

#企业号注册地址:https://qy.weixin.qq.com/ 填写企业注册信息,个人也可以申请,不进行企业认证既可以进行告警测试

 

#企业微信号申请后,可以在通讯录添加部门,以及运维人员,如果是测试,直接给管理员发也可以


1.7.2  创建应用

#点击应用管理-->创建应用,上传logo,填写应用名称,选择可见范围(可以是整个部门,也可以是指定的人员)

 

#创建好应用如下:

1.7.3  微信接口调试

#调试地址:https://work.weixin.qq.com/api/devtools/devtool.php

1.7.4  配置微信脚本

#获取脚本

[root@node4 ~]#cd opt/  

[root@node4opt]# wget http://download.zhsir.org/Zabbix/weixin_linux_amd64

 

#修改名称

[root@node4opt]# mkdir usr/local/zabbix/externalscripts

[root@node4opt]# mv weixin_linux_amd64 usr/local/zabbix/externalscripts/wechat

 

#测试脚本

[root@node4 ~]# /usr/local/zabbix/externalscripts/wechat--corpid=wwd8ec689b2d7cb --corpsecret=shFkZBVpgACIohxpLEOD-pLHY5SAvnRYcXjeE--msg="微信报警test"--user=zhangmaokai --agentid=1002

{"errcode":0,"errmsg":"ok","invaliduser":""}

 

#企业微信收到测试信息

1.8  Web端创建微信报警媒介

#创建微信报警媒介


 #脚本参数(参考自己的企业ID和应用ID

参数

--corpid=xxx

--corpsecret=xxxxxxxxx

--agentid=xxxxx

--user={ALERT.SENDTO}

--msg={ALERT.MESSAGE}

1.9  用户绑定媒介

#点击管理-->用户-->选择用户-->选择报警媒介à添加


1.10  微信报警测试

#触发器,动作与邮件告警一致,只需要将告警方式由邮件改为微信

#选择nginx宕机进行微信报警

#动作设置


              #停止nginx

             

#查看问题,发现微信报警成功


             

 

 

不论你在什么时候开始,重要的是开始之后就不要停止!

--end--












了解更多请关注吧


点个小花花,让他们知道你“在看

文章转载自i运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论