Zabbix分布式监控
zabbix分布式监控介绍
1)服务器有上万台,一台zabbix-server
2)机房:缅北、老挝、越南、柬埔寨、菲律宾、阿富汗、伊拉克 其中大部分数据丢包
如果出现以上两种状态的其中一种,可以有什么解决方法?
zabbix-server => zabbix-proxy => zabbix-agent
使用zabbix-proxy去管理下方服务器的zabbix-agent,再用zabbix-server去管理zabbix-proxy,如果网络不良可以用server连接到proxy的专线。
专线
交换机打通内网
分布式监控
zabbix-proxy的核心特点
Proxy | |
---|---|
轻量级(Lightweight) | Yes |
图形界面(GUI) | No |
独立工作(Works independently) | Yes |
易于维护(Easy maintenance) | Yes |
自动生成数据库(Automatic DB creation)1 | Yes |
本地管理(Local administration) | No |
准备嵌入式硬件 (Ready for embedded hardware) | Yes |
单向TCP连接(One way TCP connections) | Yes |
集中配置(Centralised configuration) | Yes |
生成通知(Generates notifications) | No |
zabbix-proxy的概述
zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.
此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
zabbix proxy 使用场景:
1.监控远程区域设备
2.监控本地网络不稳定区域
3.当 zabbix 监控上千设备时,使用它来减轻 server 的压力
4.简化分布式监控的维护
zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可。
proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定。
注意:
1.zabbix proxy 数据库必须和 server 分开,否则数据会被破坏。
2.从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于 CacheUpdateFrequency 的原因而无法快速更新。因此,proxy收集发送Zabbix server数据可能会被忽略。
zabbix porxy代理功能
使用 agent active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的 IP 地址。
功能 | proxy支持(yes/no) | |
---|---|---|
项目(items) | ||
Zabbix agent checks | Yes | |
触发器计算(Calculating triggers) | No | |
处理事件(Processing events) | No | |
发送报警(Sending alerts) | No | |
远程命令(Remote commands) | No |
除了以上的no以外其余与zabbix-server无异
环境准备
主机名 | IP | 角色 | 应用 |
---|---|---|---|
Zabbix-server | 172.16.1.71 | Server | zabbix-server、zabbix-agent |
db01 | 172.16.1.51 | 数据库 | MySQL |
lb01 | 172.16.1.5 | zabbix-proxy(缅北) | zabbix-proxy、MySQL |
lb02 | 172.16.1.6 | zabbix-proxy(老挝) | zabbix-proxy、MySQL |
web01 | 172.16.1.7 | zabbix-agent(缅北) | zabbix-agent |
web02 | 172.16.1.8 | zabbix-agent(老挝) | zabbix-agent |
安装proxy
# 安装proxy
[root@lb01 ~]# yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-proxy-mysql-5.0.36-1.el7.x86_64.rpm
[root@lb02 ~]# yum install -y https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-proxy-mysql-5.0.36-1.el7.x86_64.rpm
---------------------db01-------------------------------------
# 创建数据库
mysql> create database mianbei_proxy charset utf8;
mysql> create database laowo_proxy charset utf8;
# 创建用户
mysql> grant all on mianbei_proxy.* to mianbei@'172.16.1.%' identified by '123';
mysql> grant all on laowo_proxy.* to laowo@'172.16.1.%' identified by '123';
-------------------------------------------------
# 安装mysql客户端
[root@lb01 ~]# yum install -y mariadb
[root@lb02 ~]# yum install -y mariadb
# 导入数据
[root@lb01 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.36/schema.sql.gz |mysql -umianbei -p123 -h172.16.1.51 mianbei_proxy
[root@lb02 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.36/schema.sql.gz |mysql -ulaowo -p123 -h172.16.1.51 laowo_proxy
----------------------db01--------------------------
# 检查数据
mysql> show tables from laowo_proxy;
166 rows in set
mysql> show tables from mianbei_proxy;
166 rows in set
----------------------------------------------------
# 修改配置文件
[root@lb01 ~]# vim /etc/zabbix/zabbix_proxy.conf
Server=172.16.1.71
Hostname=mianbei_proxy
DBHost=172.16.1.51
DBName=mianbei_proxy
DBUser=mianbei
DBPassword=123
[root@lb02 ~]# vim /etc/zabbix/zabbix_proxy.conf
Server=172.16.1.71
Hostname=laowo_proxy
DBHost=172.16.1.51
DBName=laowo_proxy
DBUser=laowo
DBPassword=123
# 启动并加入开机自启
[root@lb01 ~]# systemctl start zabbix-proxy
[root@lb01 ~]# systemctl enable zabbix-proxy
[root@lb02 ~]# systemctl start zabbix-proxy
[root@lb02 ~]# systemctl enable zabbix-proxy
安装agent
# 安装缅北agent
[root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.36-1.el7.x86_64.rpm
[root@web02 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.36-1.el7.x86_64.rpm
# 修改配置文件
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.5
ServerActive=172.16.1.5
Hostname=web01
[root@web02 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.6
ServerActive=172.16.1.6
Hostname=web02
# 启动并加入开机自启
[root@web01 ~]# systemctl start zabbix-agent
[root@web01 ~]# systemctl enable zabbix-agent
[root@web02 ~]# systemctl start zabbix-agent
[root@web02 ~]# systemctl enable zabbix-agent
web页面添加代理程序
创建主机
web01
web02
如果ZBX不亮的话,有可能是因为时间不同步
-------------所有需要同步的机器-------------
# 下载时间同步软件
yum install -y chrony
# 启动时间同步
systemctl start chronyd
-----------------------------------------
# 重启server agent proxy
[root@zabbix ~]# systemctl restart zabbix-server
[root@web01 ~]# systemctl restart zabbix-agent
[root@web02 ~]# systemctl restart zabbix-agent
[root@lb01 ~]# systemctl restart zabbix-proxy
[root@lb02 ~]# systemctl restart zabbix-proxy