一、zabbix客户端概述

<colgroup> <col style="width: 50%" /> <col style="width: 50%" /> </colgroup>
zabbix客户端 应用场景

Zabbix-agent2

(最常用)

适用于几乎所有情况,支持自定义监控,linux,windows, android/ios
SNMP客户端

用于监控网络设备:

Simple Network Management Protocal 简单网络管理协议 监控网络设备

JMX

Java-gateway 监控java app(tomcat),

未来推荐自定义监控(zabbix_agents2 + jmap/jstats)

IPMI 监控硬件(物理服务器,联想(IBM X86架构 ThinkServer) ,华为,浪潮,Dell,IBM,HP) 直接使用自定义监控(ipmitool + megacli )

二、zabbix-agent监控windows/mac

监控的主要流程为:

  • 安装客户端,配置

  • 服务端添加主机,关联模板

  • 调试

2.1 安装客户端

1、客户端

地址链接:https://www.zabbix.com/cn/download_agents?version=6.0+LTS&release=6.0.25&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=MSI&show_legacy=0

2、在windows主机上安装zabbix-agent2,一直点击【Next】即可

填写服务端地址192.168.1.40,并勾选【Add agent location to the PATH】

3、查看客户端

打开任务管理器,查看Zabbix Agent 2服务

右键【Zabbix Agent 2】选择【属性】,观察到安装目录及配置文件C:\Program Files\Zabbix Agent 2

2.2 监控windows

1、添加windows主机

2、查看配置结果

三、网络监控SNMP

snmp: 简单网络管理协议.

流程:

  • 开启网络设备的SNMP功能,设置暗号(社团名字)(v2c) (v3 用户名+密码)

  • WEB添加主机,配置接口,关联模板。

SNMP有多个版本

  • V2c版本使用团体名作为认证

  • v3版本用户名和密码认证

3.1 开启网络设备snmp功能

1、在网络设备上开启snmp功能

配置团体名字

2、在服务端检查网络设备状态

在服务端使用命令行连接测试网络设备

[root@zabbix-server01 zabbix]# yum install -y net-snmp-utils
[root@zabbix-server01 zabbix]# snmpwalk -v 2c -c aaa 192.168.1.1 SysDesc

相关参数说明:

  • -v:指定snmp版本

  • -c:指定团体名

  • SysDesc:获取系统相关信息

3.2 添加主机

添加宏

添加主机

四、监控java应用

4.1 方案选型与原理

方案 监控方案 说明
方案01 开启java jmxremote远程监控功能 zbx中关联对应的模板,安装与开启java工具zbx-java-gateway
方案02 通过java命令,自定义监控获取想要指标 通过在java应用服务器安装zbx_agent和java命令(jmap,jstack),然后自定义监控

方案01 原理图

方案02 原理图(类似于自定义监控)

4.1.1 方案01实战

具体实战流程

  • 部署jdk

  • 部署tomcat

  • 开启远程监控功能

  • zbx服务端部署java gateway 配置

  • 添加主机关联模板

4.1.1.1 部署jdk

1、点击jdk官网下载jdk-8u351-linux-x64.tar.gz(需要登录Oracle官网)

2、上传jdk-8u351-linux-x64.tar.gz到web01主机上

[root@zabbix-client02 ~]# ll jdk-8u351-linux-x64.tar.gz
-rw-r--r-- 1 root root 149697219 Sep 16 02:13 jdk-8u351-linux-x64.tar.g

3、解压安装

[root@zabbix-client02 ~]# mkdir -p /app/tools/
[root@zabbix-client02 ~]# tar xf jdk-8u351-linux-x64.tar.gz -C /app/tools/
#验证查看
[root@zabbix-client02 ~]# ll /app/tools/
total 0
drwxr-xr-x 8 root root 273 Jan 2 10:59 jdk1.8.0_351
#设置软链接
[root@zabbix-client02 ~]# ln -s /app/tools/jdk1.8.0_351/ /app/tools/jdk
[root@zabbix-client02 ~]# ll /app/tools/
total 0
lrwxrwxrwx 1 root root 24 Jan 2 11:00 jdk -> /app/tools/jdk1.8.0_351/
drwxr-xr-x 8 root root 273 Jan 2 10:59 jdk1.8.0_351

4、配置JAVA环境变量,一般是二进制安装需要配置(yum安装或rpm包方式安装就不需要配置)

[root@zabbix-client02 ~]# cat >> /etc/profile << 'EOF'
export JAVA_HOME=/app/tools/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
EOF
#验证查看
[root@zabbix-client02 ~]# tail -3 /etc/profile
export JAVA_HOME=/app/tools/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
#重新生效
[root@zabbix-client02 ~]# source /etc/profile

相关参数说明:

  • export JAVA_HOME=/app/tools/jdk/ #JDK目录

  • export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH #JAVA PATH路径命令路径

  • export CLASSPATH=.\$CLASSPATH:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib/tools.jar #依赖,jar包路径

5、结果验证

[root@zabbix-client02 ~]# java -version
java version "1.8.0_351"
Java(TM) SE Runtime Environment (build 1.8.0_351-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.351-b10, mixed mode)

4.1.1.2 部署tomcat

1、下载apache-tomcat-9.0.52.tar.gz

Tomcat官网:https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/)下载apache-tomcat-9.0.52.tar.gz

2、上传apache-tomcat-9.0.52.tar.gz到web01主机上

[root@zabbix-client02 ~]# ll apache-tomcat-9.0.52.tar.gz
-rw-r--r-- 1 root root 11524133 Aug 24 2021 apache-tomcat-9.0.52.tar.gz

3、解压安装

[root@zabbix-client02 ~]# tar xf apache-tomcat-9.0.52.tar.gz -C /app/tools/
[root@zabbix-client02 ~]# ln -s /app/tools/apache-tomcat-9.0.52/ /app/tools/tomcat

4、结果验证

[root@zabbix-client02 ~]# /app/tools/tomcat/bin/version.sh
Using CATALINA_BASE: /app/tools/tomcat
Using CATALINA_HOME: /app/tools/tomcat
Using CATALINA_TMPDIR: /app/tools/tomcat/temp
Using JRE_HOME: /app/tools/jdk
Using CLASSPATH: /app/tools/tomcat/bin/bootstrap.jar:/app/tools/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/9.0.52
Server built: Jul 31 2021 04:12:17 UTC
Server number: 9.0.52.0
OS Name: Linux
OS Version: 3.10.0-1160.105.1.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_351-b10
JVM Vendor: Oracle Corporation

5、编写systemctl配置文件

[root@zabbix-client02 ~]# vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat
After=network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/app/tools/tomcat/bin/startup.sh
ExecReload=/app/tools/tomcat/bin/shutdown.sh && /app/tools/tomcat/bin/startup.sh
ExecStop=/app/tools/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
#编写环境配置文件
[root@zabbix-client02 ~]# cat /etc/sysconfig/tomcat
JAVA_HOME=/app/tools/jdk
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin/
CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

重新加载systemctl配置

[root@zabbix-client02 ~]# systemctl daemon-reload
[root@zabbix-client02 ~]# systemctl enable tomcat

4.1.1.3 tomcat主机开启远程监控功能

1、修改catalina.sh文件,在第125行处添加如下内容

[root@zabbix-client02 ~]# vim +125 /app/tools/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.16.1.42"
…
…

2、重启tomcat

[root@zabbix-client02 ~]# systemctl restart tomcat

验证结果

[root@zabbix-client02 ~]# ss -lntup|grep 12345
tcp LISTEN 0 50 [::]:12345 [::]:* users:(("java",pid=20501,fd=21))
[root@zabbix-client02 ~]# ss -lntup|grep java
tcp LISTEN 0 50 [::]:44813 [::]:* users:(("java",pid=20501,fd=20))
tcp LISTEN 0 100 [::]:8080 [::]:* users:(("java",pid=20501,fd=62))
tcp LISTEN 0 50 [::]:12345 [::]:* users:(("java",pid=20501,fd=21))
tcp LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:* users:(("java",pid=20501,fd=69))
tcp LISTEN 0 50 [::]:44326 [::]:* users:(("java",pid=20501,fd=23))

4.1.1.4 zabbix服务端部署java gateway配置

1、在zbx服务端上部署zabbix-java-gateway

[root@zabbix-server01 zabbix]# yum install -y zabbix-java-gateway

2、在zbx服务端上部署zabbix_java_gateway.conf配置文件

[root@zabbix-server01 zabbix]# vim +17 /etc/zabbix/zabbix_java_gateway.conf
LISTEN_PORT=10052
…
…

3、在zbx服务端上修改/etc/zabbix/zabbix_java_gateway.conf配置文件

[root@zabbix-server01 zabbix]# egrep -v '^$|^#' /etc/zabbix/zabbix_java_gateway.conf
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java_gateway.pid"

4、在zbx服务端上启动zabbix_java_gateway

[root@zabbix-server01 zabbix]# systemctl enable --now zabbix-java-gateway.service

5、修改zbx服务端配置文件/etc/zabbix/zabbix_server.conf

[root@zabbix-server01 zabbix]# vim /etc/zabbix/zabbix_server.conf
#修改第317行内容
JavaGateway=127.0.0.1
#修改第325行内容
JavaGatewayPort=10052
#修改第325行内容
JavaGatewayPort=10052
#修改第333行内容
StartJavaPollers=5
…
…

修改完成后内容如下:

[root@zabbix-server01 zabbix]# grep -n 'Java.*=' /etc/zabbix/zabbix_server.conf
317:JavaGateway=127.0.0.1
325:JavaGatewayPort=10052
333:StartJavaPollers=5

6、重启zbx服务端

[root@zabbix-server01 zabbix]# systemctl restart zabbix-server.service

7、检查java poller进程

[root@zabbix-server01 zabbix]# ps -ef | grep zabbix_server | grep java
zabbix 5730 5706 0 16:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #1 [got 0 values in 0.000010 sec, idle 5 sec]
zabbix 5731 5706 0 16:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #2 [got 0 values in 0.000010 sec, idle 5 sec]
zabbix 5732 5706 0 16:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #3 [got 0 values in 0.000011 sec, idle 5 sec]
zabbix 5733 5706 0 16:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #4 [got 0 values in 0.000010 sec, idle 5 sec]
zabbix 5734 5706 0 16:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #5 [got 0 values in 0.000017 sec, idle 5 sec]

4.1.1.5 添加主机

1、添加主机

2、查看结果

4.1.1.6 方案01补充-jar包启动的应用如何配置jmxremote

执行java命令时指定参数

java -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.16.1.9 \
-jar xxx.jar

五、监控硬件设备

主要涉及到防火墙

监控方案 步骤
方案01 开启设备的ipmi功能监控,添加接口的时候选择ipmi即可.(进入物理设备的bios系统.LAN局域网访问.)
方案02 通过客户端命令获取指标实现监控硬件:megacli和ipmitool

开启ipmi功能

通过命令自定义监控

命令 说明
megacli 用于获取raid卡状态
ipmitool cpu温度,风扇转速

六、小结

<colgroup> <col style="width: 50%" /> <col style="width: 50%" /> </colgroup>
Zabbix客户端 说明
Zabbix-agent或agent2(最常用) 适用于几乎所有情况,支持自定义监控,linux,windows, android/ios
SNMP客户端

用于监控网络设备:

Simple Network Management Protocal 简单网络管理协议 监控网络设备

JMX Java-gateway 监控java app(tomcat), 未来推荐自定义监控(zabbix_agents2 + jmap/jstats)
IPMI 监控硬件(物理服务器,联想(IBM X86架构 ThinkServer) ,华为,浪潮,Dell,IBM,HP) 直接使用自定义监控(ipmitool + megacli )