一. 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--
了解更多请关注吧

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




