Zabbix 监控《四》zabbix proxy

一、zabbix proxy

zabbix 作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy 可以代替 zabbix server 收集监控数据,然后把数据汇报给 zabbix server,所以zabbix proxy可以在一定程度上分担了zabbix server 的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。

另外zabbix proxy也区分主动模式和被动模式,通信方式与zabbix server主动模式和被动模式一样,区别是zabbix proxy由于没有zabbix agent的配置,所以zabbix proxy在主动模式下要向zabbix server周期性的向zabbix server申请获取zabbix agent的监控项信息,但是zabbix proxy在被动模式下也是等待zabbix server的连接并接受zabbix server发送的监控项指令,然后再有zabbix proxy向zabbix agent发起请求获取数据。

1.1 编译安装zabbix proxy

root@ubuntu-node1:~# cd /usr/local/src/
#下载源码包
root@ubuntu-node1:/usr/local/src# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.15.tar.gz

#创建zabbix用户
root@ubuntu-node1:/usr/local/src# groupadd -g 1001 zabbix
root@ubuntu-node1:/usr/local/src# useradd -u 1001 -g 1001 zabbix

#解决依赖关系
root@ubuntu-node1:/usr/local/src/zabbix-5.0.15# apt-get install  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors4 libsnmp-base libsnmp30 libsodium23 libssh2-1 libtiff5 libwebp6 libxpm4  snmpd ssl-cert ttf-dejavu-core libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev  libcurl4-openssl-dev

#安装
root@ubuntu-node1:/usr/local/src/zabbix-5.0.15# ./configure --prefix=/apps/zabbix_proxy --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
root@ubuntu-node1:/usr/local/src/zabbix-5.0.15# make install

启动文件

root@ubuntu-node1:~# vim /lib/systemd/system/zabbix-proxy.service
[Unit]
Description=Zabbix Proxy
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/apps/zabbix_proxy/etc/zabbix_proxy.conf"
EnvironmentFile=-/etc/default/zabbix-proxy
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_proxy.pid
KillMode=control-group
ExecStart=/apps/zabbix_proxy/sbin/zabbix_proxy -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=infinity

[Install]
WantedBy=multi-user.target

1.2 zabbix proxy被动配置

创建数据库及账号
这里在zabbix-server的mysql上创建单独的数据库,生产建议单独安装mysql创建数据库

root@mysql-master:~# mysql
mysql> create database zabbix_proxy_pasive character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix_proxy_pasive.* to proxy@'10.10.100.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

导入数据库
数据库文件在源码包的database/mysql/目录下,zabbix-proxy只需要导入schema.sql

root@ubuntu-node1:/usr/local/src/zabbix-5.0.15# pwd
/usr/local/src/zabbix-5.0.15
root@ubuntu-node1:/usr/local/src/zabbix-5.0.15# mysql -uproxy -h10.10.100.103 -p123456 zabbix_proxy_pasive < database/mysql/schema.sql

1.2.1 配置文件修改

root@ubuntu-node1:~# vim /apps/zabbix_proxy/etc/zabbix_proxy.conf
#0为主动,1为被动
ProxyMode=1
#zabbix server服务器的地址或主机名
Server=10.10.100.100
ServerPort=10051
#zabbix proxy配置
Hostname=Zabbix-proxy
ListenPort=10051
LogFile=/tmp/zabbix_proxy.log
#允许zabbix server执行远程命令
EnableRemoteCommands=1
PidFile=/tmp/zabbix_proxy.pid
#数据库配置
DBHost=10.10.100.103
DBName=zabbix_proxy_pasive
DBUser=proxy
DBPassword=123456
DBPort=3306
#已经提交到zabbix server的数据保留时间
ProxyLocalBuffer=720
#未提交到zabbix server的时间保留时间
ProxyOfflineBuffer=720
#心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
HeartbeatFrequency=60
#间隔多少秒从zabbix server获取监控项信息
ConfigFrequency=360
#数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
DataSenderFrequency=5
#启动的数据采集器数量
StartPollers=10
#java gateway配置
JavaGateway=10.10.100.107
JavaGatewayPort=10052
StartJavaPollers=5
#保存监控项而占用的最大内存
CacheSize=1G
#保存监控历史数据占用的最大内存
HistoryCacheSize=1G
#历史索引缓存的大小
HistoryIndexCacheSize=128M
#监控项超时时间,单位为秒
Timeout=30
TrapperTimeout=300
#毫秒,多久的数据库查询会被记录到日志
LogSlowQueries=3000

启动

root@ubuntu-node1:~# systemctl start zabbix-proxy.service
root@ubuntu-node1:~# systemctl enable zabbix-proxy.service

1.2.2 zabbix 添加被动代理

注:agent代理程序名称需要与刚刚配置的Hostname=Zabbix-proxy一样
在这里插入图片描述

1.2.3 zabbix server配置

修改zabbix server向zabbix获取监控数据的频率等参数

root@zabbix-server:~# vim /apps/zabbix_server/etc/zabbix_server.conf
#启用多少子进程与代理端通信,若代理较多可考虑加大此数值,范围是0-250
StartProxyPollers=20
#proxy被动模式下,server多少秒同步配置文件至proxy,该参数仅用于被动模式下的代理,范围是1-3600*24*7
ProxyConfigFrequency=360
#被动模式下,zabbix server间隔多少秒向proxy请求历史数据
ProxyDataFrequency=60

#重启
root@zabbix-server:~# systemctl restart zabbix-server

1.2.4 zabbix agent配置文件

root@web2:~# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.10.100.100,10.10.100.102
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=127.0.0.1
Hostname=10.10.100.106
Include=/etc/zabbix/zabbix_agentd.d/*.conf

#重启
root@web2:~# systemctl restart zabbix-agent.service

1.2.5 zabbix添加主机并配置使用被动代理

在这里插入图片描述
关联被动模板
在这里插入图片描述

1.2.6 验证主机监控数据

在这里插入图片描述

1.3 zabbix proxy 主动配置

这里另外在10.10.100.101使用apt安装部署zabbix-proxy,并单独创建主动模式使用的数据库

1.3.1 apt安装zabbix-proxy

root@ubuntu-node1:~# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb
root@ubuntu-node1:~# dpkg -i zabbix-release_5.0-1+bionic_all.deb
root@ubuntu-node1:~# apt update
root@ubuntu-node1:~# apt install libmysqld-dev libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev curl libcurl4-openssl-dev
root@ubuntu-node1:~# apt install zabbix-proxy-mysql

1.3.2 创建数据库并导入初始化数据

创建数据库

mysql> create database zabbix_proxy_active character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy_active.* to proxy@'10.10.100.%' identified by '123456';

初始化数据库

root@ubuntu-node1:~# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz|mysql -uproxy -h10.10.100.103 -p123456 zabbix_proxy_active

1.3.3 修改zabbix-proxy配置文件

root@ubuntu-node1:~# vim /etc/zabbix/zabbix_proxy.conf
#0为主动,1为被动
ProxyMode=0
Server=10.10.100.100
Hostname=Zabbix-proxy-active
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
EnableRemoteCommands=1
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=10.10.100.103
DBName=zabbix_proxy_active
DBUser=proxy
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=720
ProxyOfflineBuffer=720
HeartbeatFrequency=60
ConfigFrequency=5
DataSenderFrequency=5
StartPollers=5
JavaGateway=10.10.100.107
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=512M
HistoryCacheSize=1G
HistoryIndexCacheSize=128M
Timeout=30
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000

#重启
root@ubuntu-node1:~# systemctl restart zabbix-proxy.service
root@ubuntu-node1:~# systemctl enable zabbix-proxy.service

1.3.4 zabbix web添加主动代理

在这里插入图片描述

1.3.5 修改zabbix agent配置文件

这里在刚刚部署的zabbix proxy被动模式的服务器上部署zabbix agent
需要修改zabbix agent中配置文件ServerActive的值为主动模式zabbix proxy

root@ubuntu-node1:~# vim /apps/zabbix_proxy/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=10.10.100.100,10.10.100.101
ServerActive=10.10.100.101
Hostname=10.10.100.102
Timeout=30

#启动
root@ubuntu-node1:~# systemctl start zabbix-agent.service
root@ubuntu-node1:~# systemctl enable zabbix-agent.service

1.3.6 zabbix web添加主机

在这里插入图片描述

1.3.7 验证监控数据

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zabbix 是一个企业级分布式开源监控解决方案。 Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。 Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。 Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。主要讲解8个主题:1.     通过SNMP防火墙设备的监控2.     通过SNMP交换机设备的监控3.     对Windows的性能、服务、用户登陆监控4.     对Linux的性能、用户登陆情况进行监控5.     生产中常用的服务进行监控,如nginx,httpd,mysql,ceph,bind等6.     Zabbix分布式的部署和监控7.     常见的zabbix三种报警方式8.     使用grafana对zabbix中的数据进行展示

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值