一、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 ) |