Zabbix 分布式构建
0x01 环境介绍
众所周知,proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力。此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
本实验采用Zabbix 5.0.6 环境进行搭建,拓扑如下
Server
- ip:172.16.252.100
- hostname:zabbix
Proxy
- ip:172.16.252.119
- hostname:lab-node1
Client
- ip:172.16.252.201
- hostname:lab-client-node2
0x02 Server 安装
参照之前文章,此处不再复述安装步骤
0x03 Proxy 安装配置
安装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
安装配置Zabbix-proxy相关组件
yum install -y zabbix-proxy zabbix-proxy-mysql mariadb mariadb-server zabbix-agent
数据库操作优化
vim /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 character-set-server=utf8 #设置字符集为utf8 innodb_file_per_table=1 #设置innodb的每个表文件单独存储 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # 开启数据库服务,设为开机启动 systemctl start mariadb #设为开机启动 systemctl enable mariadb #开启MariaDB数据
数据库配置
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;
导入相关表到数据库
zcat /usr/share/doc/zabbix-proxy-mysql-*/schema.sql.gz | mysql -uroot -p zabbixproxydb #将模板数据恢复至zabbixproxydb数据 mysql -uroot -ppasswd1! zabbixproxydb -e "show tables" #查看数据是否导入
修改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
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 安装配置
安装agent服务
yum -y install zabbix-agent
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
主机加入监控
web页面点击–配置–主机–创建主机
并链接到对应的系统模板中
稍等几分钟后即可在配置–主机中看到可用性
状态变绿
这时,监控状态已经正常,可查看当前监控项的最新数据。