关于proxy的使用场景
zabbix的proxy主动模式proxy 可以用在 Proxy 没有公网 IP ,但可以访问公网的情况下
Zabbix Server <-Zabbix Proxy -> Zabbix Agent
Proxy 去请求 Zabbix Server,由于 Zabbix Agent 用的是被动模式,所以也是由 Zabbix Proxy 去请求 Zabbix Agent
- 监控远程区域设备
- 监控本地网络不稳定区域
- 当 zabbix 监控上千设备时,使用它来减轻 server 的压力
- 简化分布式监控的维护
zabbix proxy 需要注意的几个点
zabbix proxy 数据库必须和 server 分开,否则数据会被破坏。
从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于 CacheUpdateFrequency 的原因而无法快速更新。因此,proxy收集发送Zabbix server数据可能会被忽略。
使用 agent active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的 IP 地址。
我的使用场景
zabbix server端部署在腾讯云服务器上,现在想监控公司内网的几台服务器,但是内网的服务器和腾讯云的服务器不在一个局域网内,怎么进行监控呢?
这就用到了zabbix proxy
我的环境
系统 | 服务器ip | 角色 |
---|---|---|
centos 7.3.1611 | 118.25.56.1(公网ip) | zabbix-server |
centos 7.3.1611 | 192.168.2.223(内网) | zabbix-proxy |
centos 7.3.1611 | 192.168.2.224(内网) | zabbix-agent |
我的zabbix-server,zabbix-agent,zabbix-proxy 版本都是3.4的
118.25.56.1
安装zabbix-server 省略
部署zabbix proxy
在192.168.2.223
上安装zabbix-proxy
[root@localhost ~]#rpm -ivh \
https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@localhost ~]#yum install zabbix-proxy-mysql
[root@localhost ~]#systemctl start zabbix-proxy
知识兔proxy需要一个独立的数据库,请勿和server同库
安装mysql 略
[root@localhost ~]# mysql -uroot -p
mysql> create database zabbix_proxy;
mysql> grant all privileges on zabbix_proxy.* to 'zabbix_proxy'@'localhost' identified by 'zabbix';
知识兔导入zabbix-proxy SQL
[root@localhost ~]#cd /usr/share/doc/zabbix-proxy-mysql-3.4.15/
[root@localhost ~]#zcat schema.sql.gz | mysql -uzabbix_proxy -p zabbix_proxy
知识兔proxy配置
[root@localhost ~]#grep -vE '^#|^$' /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 //默认主动模式0,被动模式1
Server=118.25.56.1 //zabbix_server的外网IP
ListenPort=10051
Hostname=zabbix_proxy的主机名
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix
DBSocket=/data/mysql/mysql.sock
LogFile=/var/log/zabbix/zabbix_proxy.log
PidFile=/var/run/zabbix/zabbix_proxy.pid
LogFileSize=0 //不切割日志,默认1M
Timeout=10 //等待agent回应超时时间,默认3s
ConfigFrequency=60 //多久从zabbix-server接受配置
DataSenderFrequency=60 //多久向zabbix-server发送收集数据
ExternalScripts=/usr/lib/zabbix/externalscripts //也需要放一份到代理
知识兔agent安装配置
在192.168.2.224
上安装zabbix-agent
[root@localhost ~]#rpm -ivh \
https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@localhost ~]#yum install zabbix-agent
[root@localhost ~]#grep -vE '^#|^$' /etc/zabbix/zabbix_agent.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/var/run/zabbix/zabbix_agentd.pid
EnableRemoteCommands=1
Server=proxy内网IP(外网IP)
ServerActive=proxy的内网IP:10051
Hostname=agent的主机名
RefreshActiveChecks=120
BufferSize=2048
Timeout=15
UnsafeUserParameters=1
Include=/etc/zabbix/zabbix_agentd.d
知识兔启动
新建代理
在我们的zabbix界面上点击管理
-->agent代理程序
-->创建代理
agent代理程序名称 为 zabbix_proxy的主机名 (建议一致 )
添加主机
只需要填写以下
- 主机名称 为 agent的hostname
- 在...群组里
- IP地址 为 agent的内网IP(不在同个内网写外网IP)
- 由agent代理程序监测 下拉 选择我们刚创建的代理名称 (敲黑板)
- 模板 添加你需要的模板
完成~