Zabbix Proxy 分布式监控

Zabbix 是一个分布式监控系统,它可以以一个中心点、多个分节点的模式运行,使用 proxy 能降低 Zabbix Server 的压力,当然也带来了成本~

适用范围:跨机房、跨地域的网络监控系统,可以监控拥有不可靠网络连接的区域,简化分布式监控的维护,分担 Zabbix Server 压力

例子:

公司有个项目或多个项目,在不同地域都有大批量的服务器需要被监控,总不能一个地域搭建一个 Zabbix Server 吧,这样即不方便管理、也浪费资源,如果就一台 Zabbix Server 监控所有机器,又需要该机器有很好的性能 ( 机器量大,一台基本不可能实现 )。这时就可以使用 Proxy ,将 Zabbix Server 架设在公司内部或某个地方,每个地域放一台 Proxy 来收集该地域 Agent 的数据,然后传给 Zabbix Server 。这样是不是很方便 ?

一、Zabbix Proxy 主动模式 ( 可以用在 Proxy 没有公网 IP ,但是可以访问公网的情况下 )

Zabbix Server <- Zabbix Proxy -> Zabbix Agent

## 这次做的是 Proxy 的主动模式,所以是 Proxy 去请求 Zabbix Server,由于 Zabbix Agent 用的是被动模式,所以也是由 Zabbix Proxy 去请求 Zabbix Agent

Zabbix Server:192.168.214.40
Zabbix Proxy :192.168.214.10
Zabbix Agent :192.168.214.20

1、安装 Zabbix Server ( 传送门: )

2、安装 Zabbix Proxy

# 需要安装 MySQL ( 传送门: )

下载地址:%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

shell > useradd -r -s /sbin/nologin zabbix # 创建 Zabbix 运行用户

shell > wget %20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

shell > tar zxf zabbix-2.4.5.tar.gz
shell > cd zabbix-2.4.5
shell > ./configure --prefix=/usr/local/zabbix --enable-agent --enable-proxy --with-mysql # --enable-agent 不是必须的 ( 如果不想监控 Proxy 的话 )
shell > make install

shell > cp /usr/local/src/zabbix-2.4.5/misc/init.d/Fedora/core/zabbix_agentd /etc/init.d/ # 复制 Agent 启动脚本
shell > sed -i 's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#' /etc/init.d/zabbix_agentd # 修改 Zabbix 安装路径

shell > mysql

mysql> create database proxydb character set utf8; # 创建数据库
mysql> grant all on proxydb.* to proxy@localhost identified by 'proxypass'; # 创建授权用户
mysql> flush privileges; # 刷新授权表,虽然不需要~
mysql> use proxydb;
mysql> source /usr/local/src/zabbix-2.4.5/database/mysql/schema.sql # 导入数据,只导入这一个就可以了

shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_proxy.conf # 修改完后的配置文件如下 ( 当然还有一些性能方面的参数,这里没有列出 )

ProxyMode=0                    # 0 代表 Proxy 处于主动模式,即:Proxy 主动去请求 Zabbix Server 获取监控项;1 代表被动模式
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 > /usr/local/zabbix/sbin/zabbix_proxy # 启动 zabbix_proxy
shell > echo "/usr/local/zabbix/sbin/zabbix_proxy" >> /etc/rc.local # 加入开机启动

shell > netstat -lnpt | grep zabbix_proxy
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 16073/zabbix_proxy

## 以上部分,Zabbix_proxy 就全部配置完了

shell > grep -vP '^$|#' /usr/local/zabbix/etc/zabbix_agentd.conf # 这是 Zabbix Proxy 上的 Agent 修改完后的配置文件
LogFile=/tmp/zabbix_agentd.log # Agent 日志文件位置
Server=192.168.214.10 # Zabbix Proxy 主机地址 ( 如果不使用 Proxy,就写 Zabbix Server 主机地址 ),这里是被动模式,即:Agent 等待连接
Hostname=proxy_agent  # 同样很重要,标识自己的,一会用到

shell > service zabbix_agentd start # 启动 Agent

shell > netstat -lnpt | grep zabbix_agentd
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 16148/zabbix_agentd

shell > chkconfig --add zabbix_agentd # 加入开机启动
shell > chkconfig --level 35 zabbix_agentd on

## 这上面这段是对 Agent 的配置

3、安装 Zabbix Agent

shell > useradd -r -s /sbin/nologin zabbix # 创建 Zabbix 运行用户

shell > wget %20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

shell > tar zxf zabbix-2.4.5.tar.gz
shell > cd zabbix-2.4.5
shell > ./configure --prefix=/usr/local/zabbix --enable-agent # 安装 Agent
shell > make install

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

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