前言

Zabbix最简单的监控模式莫过于Zabbix Server -> Zabbix Agent, 默认的监控类型是Zabbix agent(俗称被动模式)。但是在监控服务器数量越来越多,且地理位置分散在全球各个角落的时候,孤零零的Zabbix Server就显得力不从心了,这时候就轮到Zabbix Proxy闪亮登场。

Zabbix Proxy分布式监控安装和配置实践

更新历史

2018年11月02日 - 初稿

阅读原文 - https://wsgzao.github.io/post/zabbix-proxy/

扩展阅读

Zabbix - https://www.zabbix.com/


官方文档

https://www.zabbix.com/documentation/current/manual/concepts/proxy
https://www.zabbix.com/documentation/3.4/zh/manual/concepts/proxy
https://www.zabbix.com/download

Zabbix Proxy介绍

Zabbix Proxy 可以代替 Zabbix Server 检索客户端的数据,然后把数据汇报给 Zabbix Server,
并且在一定程度上分担了 Zabbix Server 的压力。Zabbix Proxy 可以非常简便的实现了集中式、分布式监控。

Zabbix Proxy 使用场景:

  1. 监控远程区域设备
  2. 监控本地网络不稳定区域
  3. 当 Zabbix 监控上千设备时,使用它来减轻 Server 的压力
  4. 简化 Zabbix 的维护

Zabbix Proxy 仅仅需要一条 TCP 连接到 Zabbix Server,所以防火墙上仅仅需要加上一条规则即可。
Zabbix Proxy 数据库必须和 Zabbix Server 分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。
总之记住,数据库分开即可。
Zabbix Proxy 收集到数据之后,首先将数据缓存在本地,然后在一定的时间之后传递给 Zabbix Server。
这个时间由 Zabbix Proxy 配置文件中参数 ProxyLocalBuffer and ProxyOfflineBuffer 决定。

Zabbix Proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。

Zabbix Proxy安装

Zabbix Proxy架构变化其实很简单,通常在每个机房搭建一台,最终把数据汇总到Zabbix Server

  1. Zabbix Server -> Zabbix Proxy -> Zabbix Agent
  2. Items变为Zabbix agent(active),俗称主动模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# zabbix proxy的依赖就只有数据库了,用于存储配置信息
yum install -y mariadb-server mariadb
# 启动 mariadb 服务
systemctl start mariadb.service
systemctl enable mariadb.service
# 初始化 mysql 数据库,并配置 root 用户密码
mysql_secure_installation

# 创建zabbix_proxy数据库
mysql -uroot -p

mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
mysql> quit;

# 部署zabbix_proxy
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum install -y zabbix-proxy-mysql
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix_proxy

# 配置数据库用户及密码
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.56.103
Hostname=zabbix_proxy
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix

# 配置Zabbix Server Proxy
Administration -> Proxies -> Create proxy
Proxy name: zabbix_proxy
Proxy mode: Active
Proxy address: 192.168.56.101

# 启动zabbix_proxy
systemctl restart zabbix-proxy

# 修改zabbix_agent配置指向zabbix_proxy
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.56.101,192.168.56.103
ServerActive=192.168.56.101
Hostname=192.168.56.101

# 设置zabbix_proxy服务
systemctl enable zabbix-proxy

# 在zabbix_server中添加代理主机
Configuration -> Hosts -> Create host
Monitored by proxy: zabbix_proxy


文章目录
  1. 1. 前言
  2. 2. 更新历史
  3. 3. 官方文档
  4. 4. Zabbix Proxy介绍
  5. 5. Zabbix Proxy安装