Zabbix proxy分布式监控配置

文章目录

    • Zabbix proxy
        • 简介
        • 使用场景
    • 实验环境
    • zabbix proxy的部署
        • server3
        • web界面的设置
        • server2
    • zabbix总结

Zabbix proxy

简介
  • zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式、分布式监控。
  • zabbix proxy仅仅需要一条tcp连接到zabbix server,所以防火墙上仅仅需要加上一条规则即可.zabbix proxy数据库必须和server分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。总之记住,数据库分开即可。
  • proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server.这个时间由proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定。
  • zabbix proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警。
    Zabbix proxy分布式监控配置_第1张图片
使用场景
  • 监控远程区域设备
  • 监控本地网络不稳定区域
  • 当zabbix监控上千设备时,使用它来减轻server的压力
  • 简化zabbix的维护

实验环境

主机(IP) 服务
server1(172.25.24.1) zabbix server
server2(172.25.24.2) zabbix agent
server3(172.25.24.3) zabbix proxy

zabbix proxy的部署

server3
  • 关闭并将zabbix agent服务设置开机不启动
[root@server3 ~]# systemctl stop zabbix-agent.service 
[root@server3 ~]# systemctl disable zabbix-agent.service 
[root@server3 ~]# systemctl status zabbix-agent.service 
  • 安装zabbix proxy,并修改主机名方便我们实验,修改三台主机的解析
[root@server3 ~]# yum install zabbix-proxy-mysql.x86_64 -y
[root@server3 ~]# hostnamectl set-hostname proxy
[root@server3 ~]# hostname

server1 2 3同时加入解析:
[root@proxy ~]# vim /etc/hosts
172.25.24.3     server3   proxy
  • 下载mariadb,并安全初始化,新建数据库zabbix_proxy,并授权,导入数据库。
[root@proxy ~]# yum install mariadb-server -y
[root@proxy ~]# systemctl start mariadb
[root@proxy ~]# systemctl enable mariadb.service

[root@proxy ~]# mysql_secure_installation 

MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'westos';

[root@proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql-4.0.5/schema.sql.gz | mysql -p zabbix_proxy

Zabbix proxy分布式监控配置_第2张图片

  • 修改配置文件的4处。
[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf

30 Server=172.25.24.1    #zabbix server 的ip
39 ServerPort=10051   #打开端口
49 Hostname=proxy   #主机名
196 DBPassword=westos   #zabbix proxy数据库密码
web界面的设置
  • web界面删除server3 ,添加代理 然后再开启服务zabbix proxy。
    Zabbix proxy分布式监控配置_第3张图片
    Zabbix proxy分布式监控配置_第4张图片
  • 创建代理
    Zabbix proxy分布式监控配置_第5张图片
  • 代理地址为server proxy的ip。
    Zabbix proxy分布式监控配置_第6张图片
    Zabbix proxy分布式监控配置_第7张图片
  • 开启服务,并查看日志。
[root@proxy ~]# systemctl start zabbix-proxy
[root@proxy ~]# systemctl enable zabbix-proxy
[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log

Zabbix proxy分布式监控配置_第8张图片

  • 在server1主机查看日志,发现配置数据已发送成功。
[root@server1 bin]# cat /var/log/zabbix/zabbix_server.log

Zabbix proxy分布式监控配置_第9张图片

server2
  • 修改server2为由agent代理监测。
    Zabbix proxy分布式监控配置_第10张图片Zabbix proxy分布式监控配置_第11张图片
  • 修改配置文件,并查看server2的日志。
[root@server2 bin]# vim /etc/zabbix/zabbix_agentd.conf 
[root@server2 bin]# systemctl restart zabbix-agent
 98 Server=172.25.24.3     #将主动模式和被动模式采集到的数据都发给server3代理。
139 ServerActive=172.25.24.3
[root@server2 bin]# cat /var/log/zabbix/zabbix_agentd.log

Zabbix proxy分布式监控配置_第12张图片

  • server2的日志如上,我们需要在server1主机重载配置缓存。
[root@server1 bin]# zabbix_server -R config_cache_reload
[root@server1 bin]# cat /var/log/zabbix/zabbix_server.log

在这里插入图片描述

  • server3 重启服务,继续查看日志。
[root@proxy ~]# systemctl restart zabbix-proxy
[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log

Zabbix proxy分布式监控配置_第13张图片

  • web图形界面查看,zabbix proxy配置成功。
    在这里插入图片描述
  • 但是此时JMX监控tomcat又不可用了,这是因为在zabbix server主机(server1)配置了zabbix javagateay,所以我们需要在zabbix proxy主机上也作相应的配置。设置完成查看日志。
[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
329 JavaGateway=172.25.24.1    
337 JavaGatewayPort=10052
345 StartJavaPollers=5
[root@proxy ~]# systemctl restart zabbix-proxy
[root@proxy ~]# cat /var/log/zabbix/zabbix_proxy.log 

Zabbix proxy分布式监控配置_第14张图片

  • 在web界面查看。Zabbix proxy分布式监控配置_第15张图片

zabbix总结

  • 报警的过程:
    zabbix采集方式 (4种,ZBX,SNMP,JMX,IPMI) —> pollers 进程 —> items 监控项 —> triggers 触发器 —> events —> actions 由触发器决定相应的要采取的动作。 —> alter 第三方的媒介。

  • 监控的流程:数据采集(agent) --> 数据存储 (db server) --> 数据展示(UI界面)

  • agent默认支持主被动模式:server 被动 server-active 主动。

  • 从数据库的层面,当agent增加的时候,db数据库(存储)的压力会增大,解决办法就是固态硬盘或者分布式的数据库(tidb 替换mariadb,分库分表所以tidb会提供原生地mysql数据库引擎的支持,端口为4000)。

  • proxy:扩展架构,简化了监控结构,将监控架构变为分布式的,proxy在这里重当了server的角色。proxy的db信息时从server端复制过去的,是为了存储数据,定义监控项。

  • zabbix的特点:原生的分布式监控平台。
    数据采集 :一般为c/s结构。周期性的调用采集。
    有4种主流的采集方式:数据采集–>通过轮询器(pollers进程)来调用监控项(items),监控项去采集后端的主机(监控项(items)会通过模板(template)主机可以自动连接模板)–>tiggers(触发器,有时需要自己设置定义),触发之后生成事件(events)事件是执行action动作的依据,执行的话会发报警alter,报警回调用媒介(第三方 eg:云告警)

  • 模板中不只有监控项还有图形,触发器等。把共同的东西放入模板中。主机可以加入主机群组中。

  • 注意:主机有维护中的状态,比如:换硬盘的时候,会误报警,所以要设置维护状态。

你可能感兴趣的:(Zabbix)