zabbix工作模式以及proxy

一、工作模式

1、被动模式
由zabbix server向zabbix agent发出指令获取数据,即zabbix agent被动的去获取数据并返回给zabbix server,zabbix server周期性的向agent 索取数据,这种模式的最大问题就是会加大zabbix server的工作量,在数百台服务器的环境下zabbix server不能及时获取到最新数据,但这也是默认的工作方式。
2、主动模式
zabbix agent主动采集数据并返回给zabbix server,不再需要zabbix serve进行干预,因此主动模式在一定程度上可减轻zabbix server的压力。

创建一个主动模式的模板

(1)创建新模板


创建新模板

克隆基础模板

生成新模板

(2)修改配置


修改为主动模式

批量更新

修改模式以及间隔时间

自动发现规则修改

修改模式

二、proxy

zabbix是一个分布式的监控系统,支持通过代理服务器zabbix proxy收集zabbix agent的数据,然后把收集保存在本地数据库并发送给zabbixserver进行统一存储和展示。


proxy与server对比

代理架构

部署主动模式proxy

1、部署proxy端
(1)修改yum源

wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3%2Bfocal_all.deb
dpkg -i zabbix-release_4.0-3+focal_all.deb
apt update

(2)安装zabbix-proxy

apt install zabbix-proxy-mysql

(3)数据库初始化(主动模式)

create database zabbix_proxy_active character set utf8 collate utf8_bin;
create user zabbix_proxy_active@"192.168.43.%" identified by '123456';
grant all privileges on zabbix_proxy_active.* to zabbix_proxy_active@"192.168.43.%";

(4)数据库导入数据

zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix_proxy_active -h192.168.43.108 -p zabbix_proxy_active

(5)修改proxy配置文件

vim /etc/zabbix/zabbix_proxy.conf

ProxyMode=0  #主动模式为0,被动模式为1,默认为0
Server=192.168.43.108  #zabbix-server的IP地址
ServerPort=10051  #zabbix-server监听的端口
Hostname=zabbix_proxy_active  #本机的hostname,需要与web端的相同
ListenPort=10051  #监听端口
LogType=file
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0  #日志文件最大大小,0为关闭
EnableRemoteCommands=1  #允许远程主机在本机执行命令
LogRemoteCommands=0  #远程主机执行命令是否记录日志
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBHost=192.168.43.108  #数据库的地址
DBName=zabbix_proxy_active
DBUser=zabbix_proxy_active
DBPassword=123456
ProxyLocalBuffer=720  #数据传输给server还保存的时间,单位为小时,建议设置720
ProxyOfflineBuffer=720  #连接不上server,数据在proxy保存的时间,单位为小时,建议设置720
HeartbeatFrequency=120  #与server的心跳检测时间,单位为秒
ConfigFrequency=60  #从server端抓取配置文件的时间间隔,单位为秒,可以设置为5分钟
DataSenderFrequency=60  #给server端发送数据的间隔时间,单位为秒,可以设置为5分钟
StartPollers=20  #数据收集开启的线程
JavaGateway=192.168.43.109  
JavaGatewayPort=10052
StartJavaPollers=20
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0
CacheSize=8M  #监控项获取后会放在内存中,尽量大点
StartDBSyncers=10  #预先启动进程给数据库
HistoryCacheSize=16M  #主动采集好的数据会先放到内存中,内存的大小
HistoryIndexCacheSize=4M  #采集好数据的索引
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
AllowRoot=0
User=zabbix

(6)启动程序并设置为开机自启

systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service

2、部署zabbix-agent(centos系统)
(1)安装yum源

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all

(2)安装zabbix-agent

yum install zabbix-agent

(3)修改配置文件

vim /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.43.108,192.168.43.109  #服务端要添加server和proxy,添加server端是因为agent模板是被动模式
ListenPort=10050
ServerActive=192.168.43.109  #proxy端的地址
Hostname=192.168.43.101
Include=/etc/zabbix/zabbix_agentd.d/*.conf

(4)启动程序,并设置为开机自启

systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service

3、web端配置
(1)创建代理程序


创建代理程序

代理程序的名称要与配置文件中的hostname相同


生成代理

(2)添加主机
添加主机

(3)添加模板(模板是上文新建的)
添加模板

添加完成

部署被动模式proxy

1、部署proxy
部署方式和上文相同
(1)数据库初始化(被动模式)

create database zabbix_proxy_passive character set utf8 collate utf8_bin;
create user zabbix_proxy_passive@"192.168.43.%" identified by '123456';
grant all privileges on zabbix_proxy_passive.* to zabbix_proxy_passive@"192.168.43.%";

(2)数据库数据导入

zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix_proxy_passive -h192.168.43.108 -p zabbix_proxy_passive

(3)修改proxy配置文件

vim /etc/zabbix/zabbix_proxy.conf

ProxyMode=1
Server=192.168.43.108
ServerPort=10051
Hostname=zabbix_proxy_passive
ListenPort=10051
LogType=file
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
EnableRemoteCommands=1
LogRemoteCommands=0
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBHost=192.168.43.108
DBName=zabbix_proxy_passive
DBUser=zabbix_proxy_passive
DBPassword=123456
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=120
ConfigFrequency=60
DataSenderFrequency=60
StartPollers=20
JavaGateway=192.168.43.109
JavaGatewayPort=10052
StartJavaPollers=20
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
ListenIP=0.0.0.0
CacheSize=8M
StartDBSyncers=10
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
AllowRoot=0
User=zabbix

(4)启动程序并实现开机自启

systemctl start zabbix-proxy.service
systemctl enable zabbix-proxy.service

2、部署zabbix-agent
部署方式和上文相同
(1)修改配置文件

vim /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.43.108,192.168.43.110
ServerActive=127.0.0.1
Hostname=192.168.43.102
Include=/etc/zabbix/zabbix_agentd.d/*.conf

(2)启动程序并开机自启

systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service

3、web端配置
(1)创建代理程序


创建代理

(2)创建主机


创建主机

绑定模板

你可能感兴趣的:(zabbix工作模式以及proxy)