Zabbix学习(3)-Zabbix监控入门

Zabbix学习(1)-监控服务与Zabbix介绍

Zabbix学习(2)-Zabbix安装和基础使用

使用 Zabbix 监控 Linux 系统

在需要监控的 Linux 系统安装 zabbix agent,之后从 web 界面添加该主机,然后进行监控。

安装 zabbix agent

安装参考文档

Ubuntu
这里注意的是zabbix的server和agent的大版本号需要保持一致
在WEB服务器都需要安装源
机器172.20.32.106和机器172.20.32.107
这里以WEB-1为例

root@WEB-1:~# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
root@WEB-1:~# dpkg -i zabbix-release_4.0-3+bionic_all.deb
root@WEB-1:~# apt update
root@WEB-1:~# apt install zabbix-agent -y 

配置 zabbix agent

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    # 对应的zabbix server地址,即需要接受谁的监控
ListenPort=10050        # agent接受指令监听的端口
ListenIP=0.0.0.0
StartAgents=3           # 默认的启动的实例数(进程数)
ServerActive=127.0.0.1
Hostname=172.20.32.106  # 区分大小写且在zabbix server看来是唯一的值 一般用IP来区分独一无二
Include=/etc/zabbix/zabbix_agentd.d/*.conf

重启 zabbix agent

root@WEB-1:~# systemctl restart zabbix-agent
root@WEB-1:~# 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-1:~# ss -ntl|grep 10050
LISTEN   0         128                 0.0.0.0:10050            0.0.0.0:*       

root@WEB-1:~# tail /var/log/zabbix/zabbix_agentd.log -n15
  2541:20200430:112646.871 Got signal [signal:15(SIGTERM),sender_pid:3039,sender_uid:112,reason:0]. Exiting ...
  2541:20200430:112646.872 Zabbix Agent stopped. Zabbix 4.0.20 (revision 3b651d1b0b).
  3051:20200430:112646.895 Starting Zabbix Agent [172.20.32.106]. Zabbix 4.0.20 (revision 3b651d1b0b).
  3051:20200430:112646.895 **** Enabled features ****
  3051:20200430:112646.895 IPv6 support:          YES
  3051:20200430:112646.895 TLS support:           YES
  3051:20200430:112646.895 **************************
  3051:20200430:112646.895 using configuration file: /etc/zabbix/zabbix_agentd.conf
  3051:20200430:112646.895 agent #0 started [main process]
  3054:20200430:112646.896 agent #2 started [listener #1]
  3055:20200430:112646.898 agent #3 started [listener #2]
  3053:20200430:112646.899 agent #1 started [collector]
  3056:20200430:112646.901 agent #4 started [listener #3]
  3057:20200430:112646.902 agent #5 started [active checks #1]
  3057:20200430:112646.903 active check configuration update from [127.0.0.1:10051]
   started to fail (cannot connect to [[127.0.0.1]:10051]: [111] Connection refused)

root@WEB-1:~# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-04-30 11:26:46 CST; 1min 51s ago
 Main PID: 3051 (zabbix_agentd)
    Tasks: 6 (limit: 1006)
   CGroup: /system.slice/zabbix-agent.service
           ├─3051 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
           ├─3053 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
           ├─3054 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
           ├─3055 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
           ├─3056 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
           └─3057 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

Apr 30 11:26:46 WEB-1 systemd[1]: Stopped Zabbix Agent.
Apr 30 11:26:46 WEB-1 systemd[1]: Starting Zabbix Agent...
Apr 30 11:26:46 WEB-1 systemd[1]: zabbix-agent.service: Can't open PID file 

/run/zabbix/zabbix_agentd.pid (yet?) after start: No such
Apr 30 11:26:46 WEB-1 systemd[1]: Started Zabbix Agent.

添加被监控主机

在 zabbix web 管理界面添加上一步安装了 zabbix agent 的 linux 主机

在这里插入图片描述

在这里插入图片描述
到这里可以添加成功,但是依旧使用不了,是因为还没有添加模板

关联模板

选择符合当前主机监控项目的模板,如对linux系统监控可以关联zabbix 自带的Template OS Linux模板,如下在搜索框输入linux关键字后会自带匹配符合名称的模板,直接点击即可选择:

在这里插入图片描述

选择模板

在这里插入图片描述
在这里插入图片描述
更新之后可以看到配置主机一栏已经成功添加WEB-1端的agent-node端
在这里插入图片描述

验证数据

经过一段时间的数据采集后,验证 zabbix server 是否有刚添加完成主机的监控数据和图形,图形显示如下:

在这里插入图片描述
在这里插入图片描述

验证主机监控数据

经过一段时间的数据采集后,验证zabbix server是否有刚添加完成主机的监控数据和图形,图形显示如下:
在这里插入图片描述

使用 Zabbix 监控 Tomcat

学习如何通过 java gateway 实现对 tomcat 的指标进行数据采集和图形展示,如堆栈内存利用率、当前会话连接数、繁忙线程等。

在这里插入图片描述

准备 JDK 环境

在机器172.20.32.106 WEB1中

root@WEB-1:~# cd /usr/local/src/
root@WEB-1:/usr/local/src# ll
total 189996
drwxr-xr-x  2 root root      4096 Apr 30 13:47 ./
drwxr-xr-x 10 root root      4096 Oct 26  2019 ../
-rw-r--r--  1 root root 194545143 Apr 18 11:51 jdk-8u241-linux-x64.tar.gz

root@WEB-1:/usr/local/src# tar xf jdk-8u241-linux-x64.tar.gz 

root@WEB-1:/usr/local/src# ln -sv /usr/local/src/jdk1.8.0_241/ /usr/local/jdk
'/usr/local/jdk' -> '/usr/local/src/jdk1.8.0_241/'

root@WEB-1:/usr/local/src# vim /etc/profile
...
export JAVA_HOME=/usr/local/jdk
export TOMCAT_HOME=/apps/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
...

root@WEB-1:/usr/local/src# source /etc/profile

root@WEB-1:/usr/local/src# java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

准备 tomcat

安装 tomcat

root@WEB-1:/usr/local/src# rz -E
rz waiting to receive.
root@WEB-1:/usr/local/src# ll
total 200072
drwxr-xr-x  3 root  root       4096 Apr 30 13:51 ./
drwxr-xr-x 10 root  root       4096 Apr 30 13:48 ../
-rw-r--r--  1 root  root   10312541 Apr 18 11:46 apache-tomcat-8.5.54.tar.gz
drwxr-xr-x  7 10143 10143      4096 Dec 11 18:39 jdk1.8.0_241/
-rw-r--r--  1 root  root  194545143 Apr 18 11:51 jdk-8u241-linux-x64.tar.gz

root@WEB-1:/usr/local/src# tar xf apache-tomcat-8.5.54.tar.gz 

root@WEB-1:/usr/local/src# ln -sv /usr/local/src/apache-tomcat-8.5.54 /usr/local/tomcat
'/usr/local/tomcat' -> '/usr/local/src/apache-tomcat-8.5.54'
root@WEB-1:/usr/local/src#

准备 jsp 页面

root@WEB-1:~# cd /usr/local/
root@WEB-1:/usr/local# mkdir tomcat/webapps/myapp -p

root@WEB-1:/usr/local# vim tomcat/webapps/myapp/index.html

root@WEB-1:/usr/local# cat tomcat/webapps/myapp/index.html 
hello  jsp for tomcat test!

启动 tomcat

root@WEB-1:/usr/local# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

访问 tomcat web 页面

在这里插入图片描述

部署 JAVA Gateway 服务器

java gateway 是一个独立于 zabbix server 和 zabbix agent 的组件,也就是java gateway 可以是单独的一台服务器,但是也可以和 zabbix server 或者zabbix agent 公用一台服务器,前提是端口不要配置冲突了。这里复用172.20.32.102 zabbix-proxy(主动)的服务器

JAVA Gateway部署准备

root@Zabbix-proxy-1:~# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3+bionic_all.deb
root@Zabbix-proxy-1:~# dpkg -i zabbix-release_4.0-3+bionic_all.deb
root@Zabbix-proxy-1:~# apt update
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
root@Zabbix-proxy-1:~# rm /var/lib/apt/lists/lock #之前有任务块被占着
root@Zabbix-proxy-1:~# apt update 

root@Zabbix-proxy-1:~# apt-cache madison zabbix-java-gateway
zabbix-java-gateway | 1:4.0.20-1+bionic | http://repo.zabbix.com/zabbix/4.0/ubuntu bionic/main amd64 Packages
zabbix-java-gateway | 1:4.0.20-1+bionic | http://repo.zabbix.com/zabbix/4.0/ubuntu bionic/main i386 Packages
zabbix-java-gateway | 1:3.0.12+dfsg-1 | http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
zabbix-java-gateway | 1:3.0.12+dfsg-1 | http://us.archive.ubuntu.com/ubuntu bionic/universe i386 Packages
    zabbix | 1:4.0.20-1+bionic | http://repo.zabbix.com/zabbix/4.0/ubuntu bionic/main Sources

root@Zabbix-proxy-1:~# apt install zabbix-java-gateway -y

root@Zabbix-proxy-1:~# java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)

JAVA Gateway配置

root@Zabbix-proxy-1:~# vim /etc/zabbix/zabbix_java_gateway.conf 
root@Zabbix-proxy-1:~# grep ^[a-Z] /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0" 
LISTEN_PORT=10052 
PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"
START_POLLERS=10  #同时开启10个JAVA Gateway线程去后端收集数据 根据后端服务器来决定这个值的大小
TIMEOUT=30        #超时时间 

启动JAVA Gateway

root@Zabbix-proxy-1:~# ll /lib/systemd/system/zabbix-java-gateway.service #查看是否有启动进程文件
-rw-r--r-- 1 root root 290 Nov 21 20:16 /lib/systemd/system/zabbix-java-gateway.service
root@Zabbix-proxy-1:~# systemctl start zabbix-java-gateway

root@Zabbix-proxy-1:~# systemctl enable zabbix-java-gateway
Synchronizing state of zabbix-java-gateway.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-java-gateway
root@Zabbix-proxy-1:~# ss -ntl|grep 10052
LISTEN   0         50                        *:10052                  *:*     

配置 zabbix server 调用 java gateway

修改 server 配置文件

在机器172.20.32.101

root@Zabbix-server:~# vim /apps/zabbix_server/etc/zabbix_server.conf
276行
### Option: JavaGateway
#       IP address (or hostname) of Zabbix Java gateway.
#       Only required if Java pollers are started.
#
# Mandatory: no
# Default:
# JavaGateway=
# Default:
# StartAlerters=3

### Option: JavaGateway
#       IP address (or hostname) of Zabbix Java gateway.
#       Only required if Java pollers are started.
#
# Mandatory: no
# Default:
JavaGateway=172.20.32.102  #JavaGateway服务器IP地址

### Option: JavaGatewayPort
#       Port that Zabbix Java gateway listens on.
#
# Mandatory: no
# Range: 1024-32767
# Default:
JavaGatewayPort=10052

### Option: StartJavaPollers
#       Number of pre-forked instances of Java pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
StartJavaPollers=20 #开启的线程个数


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

查看 java gateway 轮询器进程

root@Zabbix-server:~# ps -ef |grep java
zabbix    17076  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #1 [got 0 values in 0.000072 sec, idle 5 sec]
zabbix    17077  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #2 [got 0 values in 0.000043 sec, idle 5 sec]
zabbix    17078  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #3 [got 0 values in 0.000031 sec, idle 5 sec]
zabbix    17079  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #4 [got 0 values in 0.000025 sec, idle 5 sec]
zabbix    17080  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #5 [got 0 values in 0.000027 sec, idle 5 sec]
zabbix    17081  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #6 [got 0 values in 0.000043 sec, idle 5 sec]
zabbix    17082  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #7 [got 0 values in 0.000012 sec, idle 5 sec]
zabbix    17083  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #8 [got 0 values in 0.000006 sec, idle 5 sec]
zabbix    17084  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #9 [got 0 values in 0.000013 sec, idle 5 sec]
zabbix    17085  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #10 [got 0 values in 0.000029 sec, idle 5 sec]
zabbix    17086  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #11 [got 0 values in 0.000006 sec, idle 5 sec]
zabbix    17087  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #12 [got 0 values in 0.000027 sec, idle 5 sec]
zabbix    17088  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #13 [got 0 values in 0.000027 sec, idle 5 sec]
zabbix    17089  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #14 [got 0 values in 0.000006 sec, idle 5 sec]
zabbix    17090  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #15 [got 0 values in 0.000040 sec, idle 5 sec]
zabbix    17091  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #16 [got 0 values in 0.000026 sec, idle 5 sec]
zabbix    17092  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #17 [got 0 values in 0.000006 sec, idle 5 sec]
zabbix    17093  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #18 [got 0 values in 0.000005 sec, idle 5 sec]
zabbix    17094  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #19 [got 0 values in 0.000027 sec, idle 5 sec]
zabbix    17095  17062  0 15:08 ?        00:00:00 /apps/zabbix_server/sbin/zabbix_server: java poller #20 [got 0 values in 0.000006 sec, idle 5 sec]
root      17213  12003  0 15:09 pts/2    00:00:00 grep --color=auto java

root@Zabbix-server:~# ps -ef |grep java|wc -l
21

配置 tomcat 开启 JMX 监控

JMX 在 Java 编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务,通常使用 JMX 来监控 JAVA 系统的运行状态。

什么是JMX?
所谓 JMX,是 Java Management Extensions(Java 管理扩展)的缩写,是一个为应用程序植入管理功能的框架。用户可以在任何 Java 应用程序中使用这些代理和服务实现管理。

修改启动参数

在机器172.20.32.106 WEB-1

root@WEB-1:~# vim /usr/local/tomcat/bin/catalina.sh 
.....
116行
# added catalina_opts
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote                       # 启用远程监控JMX        
-Dcom.sun.management.jmxremote.port=12345            # 默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可 
-Dcom.sun.management.jmxremote.authenticate=false    # 不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false             # 不使用ssl认证    
-Djava.rmi.server.hostname=x.x.x.x"      # tomcat主机自己的IP地址,不要写zabbix服务器的地址     
......

这里的tomcat本机机器为172.20.32.106

root@WEB-1:~# vim /usr/local/tomcat/bin/catalina.sh 

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=172.20.32.106"
root@WEB-1:~# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
root@WEB-1:~# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
root@WEB-1:~# ss -ntl|grep 8080
LISTEN  0        100                          *:8080                   *:*      
root@WEB-1:~# ss -ntl|grep 12345
LISTEN  0        50                           *:12345                  *:*      

通过 jconsole 验证 JMX 数据

Windows 版的 jdk 安装完成之后在安装目录的bin/目录下找到 jconsole.exe

比如 C:\Program Files\Java\jdk1.8.0_241\bin\jconsole.exe,如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
主界面:

在这里插入图片描述
内存:
在这里插入图片描述

线程:
在这里插入图片描述

zabbix server 添加 JMX 监控

在机器172.20.32.101的前端web界面

在这里插入图片描述

zabbix server 关联模板

在这里插入图片描述
在这里插入图片描述
上图中JMX显示一定是要变成绿色的才表示已经添加关联成功。

验证查看JMX监控项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

生产中 JMX 监控模板的使用

生产环境的 JMX 监控模板使用,添加了自定义监控项和阈值的监控模板。

选择 XML 格式的监控模板并导入

在这里插入图片描述

浏览要导入的模板:
在这里插入图片描述
勾选相应选项后导入:
在这里插入图片描述

在这里插入图片描述

关联导入的模板到 tomcat 服务器

将上一步骤导入的模板关联至被监控的 tomcat 服务器,然后取消关联并清理之前的JMX 模板,如下:
在这里插入图片描述
在这里插入图片描述

同时把Template App Generic Java JMX模板取消
在这里插入图片描述

最终主机模板:
在这里插入图片描述

验证是否有监控数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用命令测试 JMX 监控是否有效

这里需要一个cmdline-jmxclient-0.10.3.jar包。

root@Zabbix-server:~# java -jar cmdline-jmxclient-0.10.3.jar - 172.20.32.106:12345 'Catalina:name="http-nio-8080",type=ThreadPool' currentThreadCount
04/30/2020 17:04:56 +0800 org.archive.jmx.Client currentThreadCount: 10

root@Zabbix-server:~# java -jar cmdline-jmxclient-0.10.3.jar - 172.20.32.106:12345 'Catalina:name="http-nio-8080",type=ThreadPool' maxThreads
04/30/2020 17:05:51 +0800 org.archive.jmx.Client maxThreads: 200

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界面查看是否有数据:
在这里插入图片描述

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值