zabbix分布式 proxy
zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。仅采集数据,监听10051端口
使用场景
- 监控远程区域设备,尤其是多机房和多个云环境时
- 监控网络不稳定区域,避免跨网段监控的告警不及时
- 当需要监控设备众多时,使用它来减轻 Zabbix Server 的压力
- 简化分布式监控的维护,无需独立创建Zabbix Server,统一管理策略
Zabbix Proxy 也分主动模式和被动模式,通信方式与zabbix server主动模式和被动模式一样
- Zabbix Proxy的模式是从Zabbix Proxy 角度来说的
- zabbix proxy在主动模式下要主动地向zabbix server周期性的申请获取zabbix agent的监控项信息,此模式可以大副降低Zabbix Server的压力,生产推荐使用
- abbix Proxy在被动模式下要被动地等待zabbix server的连接,并接受zabbix server发送的监控项指令,然后再由zabbix proxy向zabbix agent发起请求获取数据。
- 注意: Zabbix Proxy的大版本必须要和zabbix server版本相同,否则很可能会导致出现 zabbi server与zabbix proxy不兼容问题
1、部署
2、官方步骤
a. Install Zabbix repository
官方手册https://www.zabbix.com/documentation/5.0/manual/installation/install_from_packages
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all
b. Install Zabbix proxy
# dnf install zabbix-proxy-mysql
c. 创建初始数据库
官方手册https://www.zabbix.com/documentation/5.0/manual/appendix/install/db_scripts
Make sure you have database server up and running.
在数据库主机上运行以下代码。
# mysql -uroot -ppassword
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix_proxy
Disable log_bin_trust_function_creators option after importing database schema.
# mysql -uroot -ppassword
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
d. Configure the database for Zabbix proxy
编辑配置文件 /etc/zabbix/zabbix_proxy.conf
DBPassword=password
e. Start Zabbix proxy process
Start Zabbix proxy process and make it start at system boot.
# systemctl restart zabbix-proxy# systemctl enable zabbix-proxy
3、具体实现
##在proxy上
#准备yum仓库
[root@zabbix-server ~]#scp /etc/yum.repos.d/zabbix.repo 10.0.0.18:/etc/yum.repos.d/zabbix.repo
[root@proxy ~]#sed -i.bak -E 's#(^gpgcheck=).*#\11#' /etc/yum.repos.d/zabbix.repo
[root@proxy ~]#yum clean all
[root@proxy ~]#yum -y install zabbix-proxy-mysql mysql-server zabbix-agent2
[root@proxy ~]#systemctl enable --now mysqld
#准备数据库
[root@proxy ~]#mysql -uroot -ppassword
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by '123456';
mysql> grant all on zabbix_proxy.* to zabbix@localhost;
mysql> exit;
[root@proxy ~]#zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uzabbix -p123456 zabbix_proxy
#配置proxy
[root@proxy ~]#vim /etc/zabbix/zabbix_proxy.conf
#ProxyMode=0 #主动模式为0,被动模式为1,默认为0即主动模式,若zabbix server是公网,则必须使用主动
Server=10.0.0.8 #指向Zabbix Server地址,即主动汇报给谁
Hostname=zabbix-proxy-active #此名称必须和后面zabbix server的Web管理页的agent代理程序名称相同
#DBHost=localhost #MySQL服务器地址,默认是本机
DBName=zabbix_proxy #MySQL 数据库名
DBUser=zabbix #连接MySQL的用户
DBPassword=123456 #连接MySQL的用户密码
[root@proxy ~]#systemctl enable --now zabbix-proxy.service
##在zabbix server上添加proxy
管理-->agent代理程序-->创建-->注意名称和proxy配置相同,主动模式,地址
##在zabbix agent上设置为主动模式
[root@agent ~]#vim /etc/zabbix/zabbix_agent2.conf
Server=10.0.0.18 #指向Zabbix Server(可选)和Zabbix Proxy(必选)
ServerActive=10.0.0.18 #指向Zabbix Proxy
Hostname=10.0.0.17
[root@agent ~]#systemctl restart zabbix-agent.service
##在zabbix server上添加agent,关联主机
配置-->主机-->创建主机-->注意:是选择代理监测,模板关联的主动模式的模板