续:
推荐阅读:
Zabbix-(2)-Zabbix安装-yum/apt方式安装
Zabbix 被动监控方式
被动模式
无论是模式还是被动模式,都是站在 zabbix agent 角度来说的工作模式,比如被动模式,是说 zabbix agent 被动的接受 zabbix server 周期性发送过来的数据收集指令,在被动模式之下,zabbix server 会根据主机关联的模板中的监控项和数据采集间隔时间,周期性的打开随机端口并向 zabbix agent 服务器的 10050 发起 tcp 连接,然后发送获取监控项数据的指令,即 zabbix server 发送什么指令那么 zabbix agent 就收集什么数据,zabbix server 什么时候发送 zabbix agent就什么时候采集,zabbix server 不发送 zabbix agent 就一直不响应,所以zabbix agent 也不用关心其监控项和数据采集周期间隔时间。
被动模式的优点就是配置简单,安装后即可使用,因此也成为 zabbix 的默认工作模式,但是被动模式的最大问题就是会加大 zabbix server 的工作量,在数百甚至数千台服务器的环境下会导致 zabbix server 需要以轮询的方式向每个 zabbix agent发送数据采集指令,如果 zabbix server 负载很高还会导致不能及时获取到最新数据,但由于无需其他复杂配置,被设置为了默认的工作方式。
查看被动模式端口状态
root@WEB-1:~# netstat -tanlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3051/zabbix_agentd
tcp 0 0 0.0.0.0:48772 0.0.0.0:* LISTEN 887/rpc.mountd
tcp 0 0 0.0.0.0:56580 0.0.0.0:* LISTEN 887/rpc.mountd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 738/rpcbind
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 840/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1126/sshd
tcp 0 0 0.0.0.0:35030 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 1827/sshd: root@pts
tcp 0 0 0.0.0.0:18494 0.0.0.0:* LISTEN 887/rpc.mountd
tcp 0 0 172.20.32.106:10050 172.20.32.101:29275 TIME_WAIT -
tcp 0 0 172.20.32.106:10050 172.20.32.101:29345 TIME_WAIT -
tcp 0 0 172.20.32.106:10050 172.20.32.101:29283 TIME_WAIT -
tcp 0 404 172.20.32.106:22 172.20.32.1:12526 ESTABLISHED 1827/sshd: root@pts
tcp 0 0 172.20.32.106:10050 172.20.32.101:29417 TIME_WAIT -
tcp 0 0 172.20.32.106:10050 172.20.32.101:29355 TIME_WAIT -
......
# 本机监听的10050, 172.20.32.101为zabbix server,其使用随机端口向本机发起tcp连接
被动模式工作流程

主动模式
主动模式是由 zabbix agent 主动向 zabbix server 的 10051 端口发起 tcp连接请求,因此主动模式下必须在 zabbix agent 配置文件中指定 zabbix server的 IP 或者主机名(必须可以被解析为 IP 地址),在连接到 zabbix server 之前zabbix agent 是不知道自己要采集那些数据以及间隔多久采集一次数据的,然后在连接到 zabbix server 以后获取到自己的监控项和数据采集间隔周期时间,然后再根据监控项采集数据并返回给 zabbix server,在主动模式下不再需要 zabbix serve向 zabbix agent 发起连接请求,因此主动模式在一定程度上可减轻zabbix server 打开的本地随机端口和进程数,在一定程度就减轻zabbix server 的压力。
主动模式工作流程

配置 zabbix agent 为主动模式
在机器172.20.32.106
root@WEB-1:~# vim /etc/zabbix/zabbix_agentd.conf
root@WEB-1:~# grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.20.32.101
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=172.20.32.101 # 主动模式,需要连接的zabbix server地址
Hostname=172.20.32.106
Include=/etc/zabbix/zabbix_agentd.d/*.conf
root@WEB-1:~# systemctl restart zabbix-agent
部署机器172.20.32.107
root@WEB-2:~# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
root@WEB-2:~# dpkg -i zabbix-release_4.0-3+bionic_all.deb
root@WEB-2:~# apt update
root@WEB-2:~# apt install zabbix-agent -y
root@WEB-2:~# vim /etc/zabbix/zabbix_agentd.conf
root@WEB-2:~# grep ^[a-Z] /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.20.32.101
StartAgents=5
ServerActive=172.20.32.101
Hostname=172.20.32.107
Include=/etc/zabbix/zabbix_agentd.d/*.conf
root@WEB-2:~# systemctl restart zabbix-agent
root@WEB-2:~# systemctl enable zabbix-agent
Synchronizing state of zabbix-agent.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-agent
root@WEB-2:~# ss -ntl|grep 10050
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 [::]:10050 [::]:*
在zabbix-server上添加主机

生成主动监控模板




对 Template OS Linux-active-WEB2 模板的监控项进行对应的修改,点击 监控项
点击全选,然后进行批量更新



关联主动监控模板
把做好的主动模板关联到主机172.20.32.107的WEB-2的主机中


最终结果界面:

刷新:

在web2的机器中查看是否有端口连接:
root@WEB-2:~# netstat -tanlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 20699/zabbix_agentd
tcp 0 0 0.0.0.0:52070 0.0.0.0:* LISTEN 18241/rpc.mountd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 17615/rpcbind
tcp 0 0 0.0.0.0:32208 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:10578 0.0.0.0:* LISTEN 18241/rpc.mountd
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 744/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 18443/sshd
tcp 0 0 0.0.0.0:11158 0.0.0.0:* LISTEN 18241/rpc.mountd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 19106/sshd: root@pt
tcp 0 0 172.20.32.107:10050 172.20.32.101:34937 TIME_WAIT -
tcp 0 0 172.20.32.107:10050 172.20.32.101:34849 TIME_WAIT -
tcp 0 0 172.20.32.107:10050 172.20.32.101:34857 TIME_WAIT -
tcp 0 0 172.20.32.107:10050 172.20.32.101:34973 TIME_WAIT -
tcp 0 0 172.20.32.107:10050 172.20.32.101:34793 TIME_WAIT -
tcp 0 0 172.20.32.107:10050 172.20.32.101:35021 TIME_WAIT -
tcp 0 0 172.20.32.107:10050 172.20.32.101:34965 TIME_WAIT -
tcp 0 0 172.20.32.107:10050 172.20.32.101:34905 TIME_WAIT -
tcp 0 0 172.20.32.107:10050 172.20.32.101:35023 TIME_WAIT -
#这里的zabbix-server随机端口访问zabbix-agent服务器是因为探测agent是否存活
在zabbix-server主机中查看web2的机器连接情况:
root@Zabbix-server:~# netstat -tanlp|grep 107
tcp 0 0 172.20.32.101:10051 172.20.32.107:19841 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19839 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19849 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19831 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19833 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19843 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19827 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19837 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19829 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19835 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19847 TIME_WAIT -
tcp 0 0 172.20.32.101:10051 172.20.32.107:19845 TIME_WAIT -
查看验证
在zabbix-server的前端web界面查看是否有数据:




要变成彻底的主动模式就需要把模板里面的所有被动模式都改为主动模式,包括文件系统监控项和触发器都要修改

推荐阅读:
Zabbix-(2)-Zabbix安装-yum/apt方式安装




