zabbix分布式应用和微信报警
分布式监控:
- zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
注意:本实验是根据上篇文章升级的
1 应用场景:
- 监控远程区域设备
- 监控本地网络不稳定区域
- 当 zabbix 监控上千设备时,使用它来减轻 server 的压力
- 简化分布式监控的维护
注意:zabbix_proxy的数据库必须与zabbix_server的数据库分开。不过可以同时在server端创建zabbix数据库与zabbix_proxy数据库,记得授权即可
2. 实验环境:
监控端:192.168.2.10
被监控端:192.168.2.20
代理端:192.168.2.30
3. 配置zabbix-server端:
[root@localhost ~]# vim /etc/zabbix_server.conf
LogFile=/var/log/zabbixsrv/zabbix_server.log
LogFileSize=0
PidFile=/run/zabbixsrv/zabbix_server.pid
# 指定数据库服务器地址,如果是单机部署,这里也可以直接指定localhost
DBHost=localhost
# 下面三行,与数据库授权信息保持一致
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
Timeout=4
ExternalScripts=/var/lib/zabbixsrv/externalscripts
LogSlowQueries=3000
TmpDir=/var/lib/zabbixsrv/tmp
4. proxy配置主动模式:
注意:主动模式是proxy主动向server汇报数据。
创建zabbix_proxy 数据库:
[root@localhost ~]# yum -y install zabbix40-proxy zabbix40-proxy-mysql.x86_64 zabbix40-dbfiles-mysql.noarch
在2.10数据库上创建zabbix_proxy数据库:
MariaDB [(none)]> create database zabbix_proxy charset utf8;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on zabbix_proxy.* to "zabbix_proxy"@"192.168.2.30" identified by '1234';
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@localhost ~]# mysql -uroot -p1234 zabbix_proxy < /usr/share/zabbix-mysql/schema.sql
修改配置文件:
[root@localhost ~]# vim /etc/zabbix_proxy.conf
修改内容如下:
# proxy默认为主动模式,也就是Proxy收集数据,然后主动把数据推送到Server。在主动模式中,配置检索的时间、心跳、数据发送频率是由每个Proxy在配置文件中独立定义的。
ProxyMode=0 --0代表是主动模式,1代表是被动模式
Server=192.168.2.10 ---这个是指定zabbix-server的IP地址
Hostname=proxy-30
ListenPort=10051 --监听端口
LogFile=/var/log/zabbixsrv/zabbix_proxy.log --日志路径
LogFileSize=0
PidFile=/run/zabbixsrv/zabbix_proxy.pid --pid路径
DBHost=192.168.2.10 ---数据库IP地址本地的可以写local host
DBName=zabbix_proxy --数据库名字
DBUser=zabbix_proxy ---授权的用户
DBPassword=1234 ---数据库密码
#多久进行一次心跳检测
HeartbeatFrequency=60
#代理多久从Server获取一次配置变化
ConfigFrequency=60
#代理收集到数据后,多久向Server发送一次
DataSenderFrequency=3
#重启服务:
[root@localhost ~]# systemctl restart zabbix-proxy
4.1. agent配置:
[root@localhost ~]# systemctl restart zabbix-agent.service
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.2.30
Hostname=2.20
[root@localhost ~]# systemctl restart zabbix-agent.service
4.2. web端配置:
4.2.1. 创建proxy:
- 点击管理–>agent代理程序—>创建代理
2. 填写代理信息:
4.2.2. 添加监控主机:
- 点击配置—>主机–>创建主机
2. 填写监控主机信息:
5. proxy配置被动模式:
被动模式:是Server启用代理轮询进程,周期性的从被动代理获取数据,在被动模式中,配置检索的时间、数据发送频率是由Server来定义的。
# 创建数据库等都不变,主要是需要修改server和proxy的配置文件
### 修改server配置文件:
[root@localhost ~]# vim /etc/zabbix_server.conf
LogFile=/var/log/zabbixsrv/zabbix_server.log
LogFileSize=0
PidFile=/run/zabbixsrv/zabbix_server.pid
SocketDir=/var/lib/zabbixsrv/tmp
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1234
Timeout=4
UnreachablePeriod=600
AlertScriptsPath=/var/lib/zabbixsrv/alertscripts
ExternalScripts=/var/lib/zabbixsrv/externalscripts
LogSlowQueries=3000
TmpDir=/var/lib/zabbixsrv/tmp
#开启代理轮询进程
StartProxyPollers=5
# 配置发送给代理的刷新时间
ProxyConfigFrequency=60
# 从代理收集数据的间隔时间
ProxyDataFrequency=3
#重启服务:
[root@localhost ~]# systemctl restart zabbix-server### 修改proxy的配置文件:
ProxyMode=1
# zabbix-serverIP地址
Server=192.168.2.10
# 与web中配置的proxy代理程序保持一致
Hostname=proxy-30
ListenPort=10051
LogFile=/var/log/zabbixsrv/zabbix_proxy.log
LogFileSize=0
PidFile=/run/zabbixsrv/zabbix_proxy.pid
DBHost=192.168.2.10
DBName=zabbix_proxy
DBUser=zabbix——proxy
DBPassword=1234
ExternalScripts=/var/lib/zabbixsrv/externalscripts
LogSlowQueries=3000
TmpDir=/var/lib/zabbixsrv/tmp
#重启服务:
[root@localhost ~]# systemctl restart zabbix-proxy
5.1. web端配置:
添加主机与主动模式一样,正常选择代理程序即可。(proxy的主动和被动模式中,agent的配置无需修改!)
微信报警:
- Zabbix除了可以使用邮件报警之外,还可以通过多种方式把告警信息发送到指定人,例如短信报警方式,越来越多的企业开始使用Zabbix结合微信作为主要的告警方式,因为每个人每天都在使用微信,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。
1 微信企业号注册:
- 企业号注册地址:https://qy.weixin.qq.com/填写企业注册信息,个人也可以申请,不进行认证即可进行告警测试。企业微信申请好后,可以在通讯录添加部门,以及运维人员,如果是测试,直接给管理员发也是可以的。
2 创建应用:
- 点击应用管理-点击下方创建应用,上传应用logo、输入应用名字、选择可见范围(可以是整个部门,也可以是指定人员),创建好后如下:
3 微信接口调试:
https://work.weixin.qq.com/api/devtools/devtool.php
如果返回OK说明接口可以用了:
4. 配置微信脚本:
#查找脚本路径:
[root@localhost ~]# grep "^[a-Z]" /etc/zabbix_server.conf
LogFile=/var/log/zabbixsrv/zabbix_server.log
LogFileSize=0
PidFile=/run/zabbixsrv/zabbix_server.pid
SocketDir=/var/lib/zabbixsrv/tmp
DBName=zabbix
DBUser=zabbix
Timeout=4
AlertScriptsPath=/var/lib/zabbixsrv/alertscripts
ExternalScripts=/var/lib/zabbixsrv/externalscripts
LogSlowQueries=3000
TmpDir=/var/lib/zabbixsrv/tmp
SSLCertLocation=/var/lib/zabbixsrv/ssl/certs
SSLKeyLocation=/var/lib/zabbixsrv/ssl/keys
[root@localhost ~]# cd /var/lib/zabbixsrv/alertscripts
-bash: cd: /var/lib/zabbixsrv/alertscripts: 没有那个文件或目录
#创建脚本目录:
[root@localhost ~]# mkdir -p /var/lib/zabbixsrv/alertscripts
[root@localhost ~]# cd /var/lib/zabbixsrv/alertscripts
#下载脚本
[root@localhost alertscripts]# wget http://download.zhsir.org/Zabbix/weixin_linux_amd64
#修改脚本名字
[root@localhost alertscripts]# mv weixin_linux_amd64 wechat
#给脚本加执行权限:
[root@localhost alertscripts]# chmod +x wechat
#测试脚本
/var/lib/zabbixsrv/alertscripts/wechat --corpid=wwb8f9398a756e0 --corpsecret=W_4dDliG2FdCzrdk-dYFdqcWkohnINuc0bU_9JENo --msg="告警测试" --user=Yanuang --agentid=100002
#提示:
--corpid= 企业里面的id(点击我的企业,最下面可以看到)
--corpsecret= 企业应用Secret(点击报警应用可以看到)
-msg= 内容
-user=应用可见用户的账号(是唯一标识账号,不是姓名)
--agentid=应用id(点击报警应用可以看到)
5 web端创建报警媒介:
- 脚本参数{参考自己的企业ID和应用ID}
参数 |
---|
–corpid=ww5922d182818 |
–corpsecret=s-UEkOouHz9b-66-FanCoL1Ep2pzb1mDcv_34 |
–agentid=1000002 |
–user={ALERT.SENDTO} |
–msg={ALERT.MESSAGE} |
6 用户绑定媒介:
7. 验证微信报警:
7.1. 创建MySQL主从同步:
环境
- MySQL主服务器:192.168.2.40
- MySQL从服务:192.168.2.20
7.2. 安装MySQL
[root@www ~]# yum -y install mariadb-server.x86_64
7.3修改配置文件:
[root@localhost ~]# vim /etc/my.cnf
#2.40主服务配置如下
在mysqld指令段添加以下内容:
server-id=1
log-bin=ys.bin
#2.20从服务器配置如下:
server-id=2
[root@www ~]# systemctl start mariadb.service
7.4. 授权从库:
MariaDB [(none)]> grant replication slave on *.* to "ys"@"192.168.2.20" identified by "1234";
MariaDB [(none)]> flush privileges; ---刷新权限
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show master status;
+-----------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------+----------+--------------+------------------+-------------------+
| ys.000001 | 306 | | | |
+-----------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
7.5. slave端配置:
mysql> change master to-> master_host="192.168.2.40",-> master_user="ys",-> master_password="1234",-> master_log_file=" ys.000001",-> master_log_pos=306;
mysql> start slave;
# 查看slave状态:
mysql> show slave status\G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.2.40Master_User: sxyMaster_Port: 3306Connect_Retry: 60Master_Log_File: ys.000001Read_Master_Log_Pos: 154Relay_Log_File: www-relay-bin.000001Relay_Log_Pos: 355Relay_Master_Log_File: ys.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 306Relay_Log_Space: 761Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1Master_UUID: 4f2cb611-a2ab-11ea-af22-000c29f12149Master_Info_File: /var/lib/mysql/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version:
1 row in set (0.00 sec)
7.6. 修改agent配置文件:
[root@www ~]# vim /etc/zabbix_agentd.conf
#添加下面内容:
#定义键值和脚本路径
UserParameter=mysql.replication.status,bash /data/sh/mysql_replication_status.sh
#创建脚本:
[root@www ~]# vim /data/sh/mysql_replication_status.sh
mysql -e 'show slave status\G' | grep -c "Yes"
#添加执行权限:
[root@www ~]# chmod +x /data/sh/mysql_replication_status.sh
#给MySQL这条命令授权让普通用户也可以使用:
[root@www ~]# chmod u+s /usr/bin/mysql
[root@www ~]# systemctl restart zabbix-agent.service
7.7. web端配置:
7.7.1. 创建监控项:
7.7.2. 创建触发器:
- 确认之后,可以在主机-触发器中看到刚才创建的触发器。
7.8. 创建动作:
7.9. 验证:
- 把2.40MySQL服务器概关闭掉:
[root@localhost ~]# systemctl stop mariadb.service
提示:可以看的出来微信报警实验已经成功,你们也可以在动作上添加一个远程命令帮忙重启服务,如果服务启动不起来再报警。
zabbix分布式应用和微信报警相关推荐
- zabbix如何实现微信报警
关于zabbix如何实现微信报警,这篇博客写的非常详细 [全网首发]zabbix如何实现微信报警 - 铜锣湾 - 51CTO技术博客 http://wuhf2015.blog.51cto.com/82 ...
- Zabbix实现企业微信报警
zabbix实现企业微信报警 1.下载安装手机版企业微信 2.注册账户,并创建一个企业,之后向企业中添加员工 3.找到我的企业->记录企业ID:ww1d1845f4b25a12fb 4.在企业下 ...
- zabbix如何配置微信报警
zabbix支持多种报警机制,比如:邮件.短信.微信等等.下面就介绍如何使用微信报警. 使用微信报警必须得有企业微信账号,个人微信账号不行. 申请企业微信 注册地址:https://work.weix ...
- 使用docker部署zabbix,自定义微信报警
docker部署zabbix #使用的相关镜像:docker pull mysql:5.7docker pull zabbix/zabbix-server-mysql:centos-latest # ...
- zabbix监控设置微信报警
首先申请一个企业号:企业微信 添加部门通讯录: 创建子部门添加成员: 先创建部门再创建应用,创建应用的时候就可以选择部门成员,一定要选部门,选择应用的时候必须要上传头像: 要准备的东西: 1.一个微信 ...
- zabbix配置微信报警
前言:zabbix一般可以通过邮件以及脚本的方式进行告警,zabbix通过微信报警的方式也是通过脚本来实现 企业微信号内配置 自行申请企业号 在企业号内添加新应用 应用创建完之后查看并启用应用,同时会 ...
- 记录自己一次搭建Zabbix及微信报警过程
前言 2020/9/6 周日 接到领导任务,为期五天,大致就是在CentOS7服务器上部署一个Zabbix服务器,用了监控几个IP是否能够ping通,一旦网络异常就回报给监管者. 对于这个了解确实较少 ...
- 公司内服务器微信报警怎么做,Zabbix 结合企业微信实现微信报警功能
Zabbix 结合企业微信实现微信报警功能 一.Zabbix 概述 二.部署 Zabbix 结合企业微信报警 1.注册企业微信 2.配置企业微信 1)创建部门 2)添加成员 3.创建应用 4.配置监控 ...
- Zabbix 结合企业微信实现微信报警功能
Zabbix 结合企业微信实现微信报警功能 一.Zabbix 概述 二.部署 Zabbix 结合企业微信报警 1.注册企业微信 2.配置企业微信 1)创建部门 2)添加成员 3.创建应用 4.配置监控 ...
最新文章
- Windows 上看端口 找PID
- 服务器之Windows和Linux
- ITIL内部培训资料(IT服务持续性管理(IT Service Continuity Management) )
- iec60870-5-104通讯协议编程_三菱FX编程口通讯协议1——协议解读
- ElementUI以及uvie的图标使用和设置---SpringCloud Alibaba_若依微服务框架改造_ElementUI+uniapp_uview---工作笔记015
- php redis 设置,php设置redis扩展,你值得拥有
- html字颜色代码,css 字体颜色(css color)
- 原谅我曾经是搞化学的《帮助寒门家庭共度难关》
- 利用动软代码生成器-------.net链接SQl数据库
- Http请求URL长度限制
- 数据恢复软件的原理是什么?
- html5 街景,html5+webgl 三维街景的渲染
- 蓝牙音箱方案选用及设计注意
- 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 3小尾巴~
- Jaccard 评价指标的简介与图示
- 信用社网银服务器无响应,农村信用社网上银行显无法显示网页
- 为Synaptics驱动的触摸板安装精确式触摸板
- 在c语言中1和0的意思,!1在c语言中是什么意思?
- arm linux 关闭防火墙,linux的防火墙及arm与虚拟机共享
- Linux rpm 命令 【转】
热门文章
- 互联网程序员行话(黑话)合集
- SQL中AND和OR同时使用的注意事项
- PCB线路板为何板层数越高制作难度也越高?
- STC8H8K64U单片机-看门狗配置与讲解
- 2021年茶艺师(初级)考试题及茶艺师(初级)模拟考试
- 做好这三步,你的小程序离“爆款”就不远了
- java final f的区别_Java中final、finally、finalize的简单区别,中等区别,详细区别(Lawliet 修改+注释版)...
- 例题6-13 古代象形符号 UVa1103
- 统一身份认证和授权--微服务架构
- 去中心网络服务器,去IOE 去中心化_浪潮服务器_网络安全-中关村在线