分布式监控:

  • 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:

  1. 点击管理–>agent代理程序—>创建代理

2. 填写代理信息:

4.2.2. 添加监控主机:

  1. 点击配置—>主机–>创建主机
    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分布式应用和微信报警相关推荐

  1. zabbix如何实现微信报警

    关于zabbix如何实现微信报警,这篇博客写的非常详细 [全网首发]zabbix如何实现微信报警 - 铜锣湾 - 51CTO技术博客 http://wuhf2015.blog.51cto.com/82 ...

  2. Zabbix实现企业微信报警

    zabbix实现企业微信报警 1.下载安装手机版企业微信 2.注册账户,并创建一个企业,之后向企业中添加员工 3.找到我的企业->记录企业ID:ww1d1845f4b25a12fb 4.在企业下 ...

  3. zabbix如何配置微信报警

    zabbix支持多种报警机制,比如:邮件.短信.微信等等.下面就介绍如何使用微信报警. 使用微信报警必须得有企业微信账号,个人微信账号不行. 申请企业微信 注册地址:https://work.weix ...

  4. 使用docker部署zabbix,自定义微信报警

    docker部署zabbix #使用的相关镜像:docker pull mysql:5.7docker pull zabbix/zabbix-server-mysql:centos-latest # ...

  5. zabbix监控设置微信报警

    首先申请一个企业号:企业微信 添加部门通讯录: 创建子部门添加成员: 先创建部门再创建应用,创建应用的时候就可以选择部门成员,一定要选部门,选择应用的时候必须要上传头像: 要准备的东西: 1.一个微信 ...

  6. zabbix配置微信报警

    前言:zabbix一般可以通过邮件以及脚本的方式进行告警,zabbix通过微信报警的方式也是通过脚本来实现 企业微信号内配置 自行申请企业号 在企业号内添加新应用 应用创建完之后查看并启用应用,同时会 ...

  7. 记录自己一次搭建Zabbix及微信报警过程

    前言 2020/9/6 周日 接到领导任务,为期五天,大致就是在CentOS7服务器上部署一个Zabbix服务器,用了监控几个IP是否能够ping通,一旦网络异常就回报给监管者. 对于这个了解确实较少 ...

  8. 公司内服务器微信报警怎么做,Zabbix 结合企业微信实现微信报警功能

    Zabbix 结合企业微信实现微信报警功能 一.Zabbix 概述 二.部署 Zabbix 结合企业微信报警 1.注册企业微信 2.配置企业微信 1)创建部门 2)添加成员 3.创建应用 4.配置监控 ...

  9. Zabbix 结合企业微信实现微信报警功能

    Zabbix 结合企业微信实现微信报警功能 一.Zabbix 概述 二.部署 Zabbix 结合企业微信报警 1.注册企业微信 2.配置企业微信 1)创建部门 2)添加成员 3.创建应用 4.配置监控 ...

最新文章

  1. Windows 上看端口 找PID
  2. 服务器之Windows和Linux
  3. ITIL内部培训资料(IT服务持续性管理(IT Service Continuity Management) )
  4. iec60870-5-104通讯协议编程_三菱FX编程口通讯协议1——协议解读
  5. ElementUI以及uvie的图标使用和设置---SpringCloud Alibaba_若依微服务框架改造_ElementUI+uniapp_uview---工作笔记015
  6. php redis 设置,php设置redis扩展,你值得拥有
  7. html字颜色代码,css 字体颜色(css color)
  8. 原谅我曾经是搞化学的《帮助寒门家庭共度难关》
  9. 利用动软代码生成器-------.net链接SQl数据库
  10. Http请求URL长度限制
  11. 数据恢复软件的原理是什么?
  12. html5 街景,html5+webgl 三维街景的渲染
  13. 蓝牙音箱方案选用及设计注意
  14. 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 3小尾巴~
  15. Jaccard 评价指标的简介与图示
  16. 信用社网银服务器无响应,农村信用社网上银行显无法显示网页
  17. 为Synaptics驱动的触摸板安装精确式触摸板
  18. 在c语言中1和0的意思,!1在c语言中是什么意思?
  19. arm linux 关闭防火墙,linux的防火墙及arm与虚拟机共享
  20. Linux rpm 命令 【转】

热门文章

  1. 互联网程序员行话(黑话)合集
  2. SQL中AND和OR同时使用的注意事项
  3. PCB线路板为何板层数越高制作难度也越高?
  4. STC8H8K64U单片机-看门狗配置与讲解
  5. 2021年茶艺师(初级)考试题及茶艺师(初级)模拟考试
  6. 做好这三步,你的小程序离“爆款”就不远了
  7. java final f的区别_Java中final、finally、finalize的简单区别,中等区别,详细区别(Lawliet 修改+注释版)...
  8. 例题6-13 古代象形符号 UVa1103
  9. 统一身份认证和授权--微服务架构
  10. 去中心网络服务器,去IOE 去中心化_浪潮服务器_网络安全-中关村在线