Zabbix Proxy搭建实现分布式部署

0x01 环境介绍

众所周知,proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力。此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。

本实验采用Zabbix 5.0.6 环境进行搭建,拓扑如下

Server [CentOS 7.6 Zabbix:5.06]
ip:172.16.252.100
hostname:zabbix
Proxy [CentOS 7.6 Zabbix:5.06]
ip:172.16.252.119
hostname:lab-node1
Agent [CentOS 7.6]
ip:172.16.252.201
hostname:lab-client-node2

0x02 Server 安装

[b2_insert_post id="6586"]

参照此篇文章,此处不再复述安装步骤

0x03 Proxy 安装配置

1. 安装zabbix官方源余epel源,注意操作前将SElinux与防火墙永久关闭(实验环境,实际生产环境请配置相关端口策略

yum -y install epel-release.noarch
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm  

2. 安装配置Zabbix-proxy相关组件

yum install -y zabbix-proxy zabbix-proxy-mysql mariadb mariadb-server zabbix-agent

3. 数据库操作优化

vim /etc/my.cnf
datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 character-set-server=utf8     #设置字符集为
utf8 innodb_file_per_table=1    #设置innodb的每个表文件单独存储 
log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid    # 开启数据库服务,设为开机启动  
systemctl start mariadb    #设为开机启动  
systemctl enable mariadb    #开启MariaDB数据

4. 数据库配置

MariaDB [(none)]> create database zabbixproxydb character set utf8 collate utf8_bin;
#创建数据库且字符集为utf8,使web界面显示中文不出现乱码
MariaDB [(none)]> grant all privileges on zabbixproxydb.* to root@'localhost' identified by 'passwd1!';
#创建zabbixproxydb数据库,且赋予root用户拥有此数据库全部权限。
MariaDB [(none)]> flush privileges;

5. 导入相关表到数据库

zcat /usr/share/doc/zabbix-proxy-mysql-*/schema.sql.gz | mysql -uroot -p zabbixproxydb
#将模板数据恢复至zabbixproxydb数据
mysql -uroot -ppasswd1! zabbixproxydb -e "show tables" #查看数据是否导入

6. 修改zabbix_proxy.conf配置

vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=0            # 默认即为0,代表 Proxy 处于主动模式,即 Proxy 主动去请求 Zabbix Server 获取监控项;1 代表被动模式
Server=172.16.252.100  #改成service端ip需要向service发送数据
ServerPort=10051         # 默认即为10051,Zabbix Server 监听端口,同上只在 Proxy 为主动模式时生效
Hostname=lab-node1       # Server端添加proxy的时候需要一致,建议采用主机名
LogFile=/var/log/zabbix/zabbix_proxy.log  # Proxy 日志文件位置
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
DBHost=localhost         # 连接数据库的主机
DBName=zabbixproxydb   # 数据库名
DBUser=root        # 连接用户
DBPassword=passwd1!      # 用户密码
ConfigFrequency=60  # proxy主动从server端检索配置更新的频率,单位秒,主动proxy 参数, 被动 proxies忽略此项
DataSenderFrequency=60   # Proxy 向 Zabbix Server 发送监控数据间隔,单位为秒
Timeout=4

7. Proxy agent配置

#修改配置zabbix_agentd.conf配置文件
vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.252.119    #若为纯主动模式需要注释此行
ServerActive=172.16.252.119  #主动模式,数据通过proxy代理向Server传送数据
Hostname=lab-node1      #zabbix server web上添加自身需要用到

#将proxy与agent启动并加入开机启动
systemctl start zabbix-agent.service #启动agent服务
systemctl enable zabbix-agent.service #agent添加到开机启动
systemctl start zabbix-proxy.service #启动proxy服务
systemctl enable zabbix-proxy.service #proxy添加到开机启动

0x04 前台web配置

进入前台web页面,点击管理 --agent代理程序 ---创建代理

输入代理程序名,此处对应zabbix_proxy.conf配置文件中的hostname,与ip地址,选择主动模式

0x05 Client 安装配置

1. 安装agent服务

yum -y install zabbix-agent

2. agent修改配置

vim /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.252.119    #若为纯主动模式需要注释此行
ServerActive=172.16.252.119   #主动模式,数据通过proxy代理向Server传送数据
Hostname=lab-node1      #zabbix server web上添加自身需要用到

#启动并添加到自启动
systemctl start zabbix-agent
systemctl enable zabbix-agent

3. 主机加入监控

web页面点击--配置--主机--创建主机

并链接到对应的系统模板中,此处需要对模板进行修改,点击模板中监控项,全选,批量更新为Zabbix客户端 主动模式

稍等几分钟后即可在配置--主机中看到可用性 状态变绿

相关推荐
python ERROR: Command errored out with exit status 1:
Windows Server 2016 搭建 SMB 共享文件
Windows Server 2019 域环境搭建 SMB 共享文件服务
Parallels Desktop 15.1.3