阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Zabbix Proxy 分布式监控

458次阅读
没有评论

共计 9104 个字符,预计需要花费 23 分钟才能阅读完成。

简介:

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 (传送门:http://www.linuxidc.com/Linux/2016-03/129645.htm)

2、安装 Zabbix Proxy

# 需要安装 MySQL (传送门:http://www.linuxidc.com/Linux/2016-03/129643.htm)

下载地址:http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz

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

shell > wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%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 http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%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

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 > 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=node1_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

shell > iptables -A INPUT -p tcp –dport 10050 -j ACCEPT # 由于 Agent 使用被动模式,所以要开启 TCP 10050 端口等待 Server 或 Proxy 连接
shell > service iptables save

 

## 以上部分就对 Zabbix Proxy , Zabbix Agent 全部做完了,剩下的部分在 Zabbix Server 的 Web 界面完成!

> Administration -> Proxies -> Create proxy

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

> Update                                # 直接 Update 就可以了,如果主机已经事先添加好了,这里可以将对应的主机加入 Proxy hosts!其实都一样

> Configuration -> Hosts -> Create host

Host name : node1_agent  # 这里写的是 Zabbix Agent 配置文件中的 Hostname,必须写对
Visible name :                    # 可写可不写,就是个显示的名称
Groups In groups :            # 将该主机放入哪个分组,可以通过下面的 New group 自定义一个分组
New group : Proxy              # 自定义的分组
Agent interfaces : 192.168.214.20 # Agent 主机 IP,监控哪台主机,写哪台主机的地址
Monitored by proxy : my_proxy      # 选择之前创建的代理

> Templates                                # 第二个选项卡,选择一个模板链接到主机
> Update

## 这样就添加好了一个主机,并且使用了 my_proxy 代理模式

## 现在就可以去经过 Proxy 代理的 Agent 状态了!一切正常

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

Zabbix Server -> Zabbix Proxy -> Zabbix Agent

## 这次做的是 Proxy 的被动模式,所以是 Zabbix Server 主动向 Proxy 发送监控项,Proxy 被动接收数据,由于 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 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

 

## 由于是被动模式,所以不需要知道 Zabbix Server 的 IP

2、Zabbix Agent 还使用原来的配置文件即可

3、Zabbix Server 中 Web 界面添加 Proxy 时需要注意

> Administration -> Proxies -> Create proxy

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 配置文件

shell > grep -vP ‘^$|#’ /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=172.16.0.10              # Zabbix Proxy 主机 IP (这里是内网 IP,因为 Agent 是访问不到外网的)
Hostname=node1_agent

3、Zabbix Server 中 Web 界面的配置

关于主机添加:

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

关于 Proxy:

Proxy mode : Active                  # 主动模式,配置文件中定义 (如果使用被动模式,下面写的 IP 就是 Proxy 的公网 IP)

一些 Zabbix 相关教程集合

Ubuntu 14.04 下 Zabbix2.4.5 源码编译安装  http://www.linuxidc.com/Linux/2015-05/117657.htm

安装部署分布式监控系统 Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm

《安装部署分布式监控系统 Zabbix 2.06》http://www.linuxidc.com/Linux/2013-07/86942.htm

CentOS 6.3 下 Zabbix 安装部署 http://www.linuxidc.com/Linux/2013-05/83786.htm

Zabbix 分布式监控系统实践 http://www.linuxidc.com/Linux/2013-06/85758.htm

CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm

CentOS 6.3 下 Zabbix 监控 MySQL 数据库参数 http://www.linuxidc.com/Linux/2013-05/84800.htm

64 位 CentOS 6.2 下安装 Zabbix 2.0.6   http://www.linuxidc.com/Linux/2014-11/109541.htm

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-03/129650.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计9104字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960745
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...