Zabbix Proxy 分布式监控(3)

Proxy name : my_proxy      # 这里写的是 Zabbix Proxy 配置文件中的 Hostname,必须要写对
Proxy mode : Passive          # 这里选择被动模式,因为 Zabbix Proxy 的配置文件中定义的是 1 ,被动模式

## 其余的都可以不变,就完成了 Proxy 的被动模式代理

## Proxy 的主、被动模式,跟将要被代理的 Agent 没有关系,Zabbix Server 能不能直接访问到 Agent 都不重要,只要 Proxy 能访问到 Agent ,Server 能访问到 Proxy 就可以 !

三、再来模拟一种情况

Zabbix Server <-> Route <-> Zabbix Proxy -> Zabbix Agent

## 这种情况:Proxy 跟 Agent 处��一个网段,并只有一个 IP ,Zabbix Server 又处于另一个地域的监控
## 这里的 <-> 指 Proxy 的不同模式,可以忽略

例子:Zabbix Server 安装在了公司内部,Proxy 跟 Agent 在外省的某个机房中,并且处于局域网中,它们通过路由连接外网

Zabbix Server:192.168.214.40
Zabbix Proxy :172.16.0.10
Zabbix Agent :172.16.0.20

Route : 192.168.214.30 ( 外 )
 : 172.16.0.50 ( 内 )

1、假定我已经将 Zabbix Server 映射到了公司的公网 IP ( 这个很好实现对吧 ) ,我现在的 Zabbix Server 的 IP 为 192.168.214.40

2、模拟路由

shell > ifconfig eth0:0 172.16.0.50/16 up # 添加一个模拟的内网地址

shell > vim /etc/sysctl.conf # 开启路由转发功能

net.ipv4.ip_forward = 1

shell > sysctl -p # 使改变生效

shell > iptables -t nat -A PREROUTING -d 192.168.214.30 -j DNAT --to 172.16.0.10
shell > iptables -t nat -A POSTROUTING -d 172.16.0.10 -j SNAT --to 172.16.0.50

# 添加两条防火墙规则

## 测试:可以用一个比较笨,但是又很有效的方法来测试,Proxy 上装个 httpd ,然后用 curl 或直接浏览器访问 214.30 看能不能访问到 0.10 上的 httpd ;或用 nmap 扫描端口

3、Zabbix Proxy 配置文件 ( 这里使用被动模式,主动也可以哦 )

shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=1                      # 1 代表被动模式,即:Proxy 被动接收 Zabbix Server 发来的监控项
Hostname=my_proxy
LogFile=/tmp/zabbix_proxy.log
DBHost=localhost
DBName=proxydb
DBUser=proxy
DBPassword=proxypass

4、Zabbix Agent 配置文件

shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=172.16.0.10                # Zabbix Proxy 主机 IP
Hostname=node1_agent

5、Zabbix Server 中 Web 界面的配置

关于主机添加:

Agent interfaces : 172.16.0.20        # 被监控的主机 IP 、端口,其实都跟正常添加一样

关于 Proxy:

Proxy mode : Passive                      # 被动模式
Interface : 192.168.214.30            # Route 的公网 IP ,因为对这个地址的请求已经转到了实际的 Proxy 主机

## OK ,有路由的这种两边局域网的环境也用 Proxy 解决了监控问题了 !

四、没有路由,但是 Proxy 有两个 IP 地址,Zabbix Server 无法直接访问到 Agent

Zabbix Server <-> Zabbix Proxy -> Zabbix Agent

## 来看看这种情况:Proxy 与 Agent 处于同一局域网,同时 Proxy 自身有公网 IP 能与 Zabbix Server 通信,但是 Server 无法直接访问到 Agent

Zabbix Server:192.168.214.40
Zabbix Proxy :192.168.214.10 ( 外 )
172.16.0.10 ( 内 )
Zabbix Agent :172.16.0.20

1、Proxy 主机设置

shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_proxy.conf ( 这里使用主动模式,被动模式也可以哦 )

ProxyMode=0              # 0 代表 Proxy 处于主动模式,即:Proxy 主动去请求 Zabbix Server 获取监控项
Server=192.168.214.40    # Zabbix Server 地址,当 Proxy 处于被动模式时,不需要设置该项 ( 想想也能明白 )
ServerPort=10051          # Zabbix Server 监听端口,同上只在 Proxy 为主动模式时生效
Hostname=my_proxy        # 这个很重要啦,跟 Agent 的 Hostname 一样重要,待会要用
LogFile=/tmp/zabbix_proxy.log # Proxy 日志文件位置
DBHost=localhost              # 连接哪里的数据库
DBName=proxydb                # 数据库名
DBUser=proxy                  # 连接用户
DBPassword=proxypass          # 用户密码
ConfigFrequency=60            # Proxy 向 Zabbix Server 请求监控项间隔,单位为 秒
DataSenderFrequency=60        # Proxy 向 Zabbix Server 发送监控数据间隔,单位为 秒

shell > route add -net 172.16.0.0/16 gw 172.16.0.10 # 添加一条路由,否则会监控失败 ( 注意啦 !)

2、Zabbix Agent 配置文件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/59d4326d9cf93393a4ef2d72f336a209.html