在之前的博客中,已经介绍了zabbix的安装,配置,以及如何用zabbix监控Linux服务器。这篇博客则介绍zabbix监控的其他几种方式(Windows服务器 Java应用 SNMP)。
-------------------- Zabbix 监控 Windows 系统 -------------------
1、下载 Windows 客户端 Zabbix agent 2
https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.13/zabbix_agent2-6.0.13-windows-amd64-openssl.msi
2、安装Windows客户端,配置
- 双击客户端软件包开始安装
- 【Host name】:WIN10-agent01
- 【Zabbix server IP/DNS】:192.168.80.101
- 【Agent listen port】:10050
- 【Server or Proxy for active checks】:192.168.80.101(如果要用proxy就写proxy,不用就直接写server)
- 勾选 【Add agent location to the PATH】
3、在服务端 Web 页面添加主机,关联模板
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 win10-agent01
【可见的名称】输入 win10-agent01-192.168.80.247(window主机IP,不写也可以)
【模板】搜索 windows ,选择 Windows by Zabbix agent
【群组】输入 windows ,选择 windows server(新)
【Interfaces】点击添加 客户端,【IP地址】输入 192.168.80.247(window主机IP),【端口】输入 10050
-------------------- Zabbix 监控 java 应用 --------------------
1、客户端开启 java jmxremote 远程监控功能
上传 tomcat 软件包到 /opt 目录中
cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mv apache-tomcat-9.0.16 /usr/local/tomcat
配置 java jmxremote 远程监控功能(在JAVA应用启动参数中添加 开启JMX端口的参数配置)
vim /usr/local/tomcat/bin/catalina.sh ...... #位置在 cygwin=false 前 CATALINA_OPTS="$CATALINA_OPTS \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=12345 \ #给zabbix收集数据开放的接口 -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -Djava.rmi.server.hostname=192.168.80.30" #tomcat服务器地址 cygwin=false
启动服务,查看端口/usr/local/tomcat/bin/startup.sh netstat -lntp | grep 12345
2、服务端安装 zabbix-java-gateway
在 zabbix server 或 zabbix proxy 安装 zabbix java gateway
yum install -y zabbix-java-gateway systemctl enable --now zabbix-java-gateway.service
netstat -lntp | grep 10052 #zabbix-java-gateway 默认监听 10052 端口
3、修改服务端 zabbix-server 配置
修改zabbix server 或 zabbix proxy的配置,设置java gateway的地址和进程数
vim /etc/zabbix/zabbix_server.conf ...... JavaGateway=127.0.0.1 # 317行,指定 zabbix-java-gateway服务器的IP地址(由于JavaGateway部署在本机与server同一服务器就写本机地址了) StartJavaPollers=5 # 333行,开启用来收集java数据的poller进程的数量,有几个主机开几个进程,上限1000
systemctl restart zabbix-server ps -ef | grep zabbix_server | grep java
4、在服务端 Web 页面添加主机,关联模板
在服务端web管理页面中修改被监控主机配置,添加 JMX 接口监控
- 点击左边菜单栏【配置】中的【主机】,点击 jvm-agent01
- 【模板】搜索 JMX ,选择 Generic Java JMX
- 【Interfaces】点击添加 JMX,【IP地址】输入 192.168.80.30,【端口】输入 12345
- 点击 【更新】
- 等待一段时间后 Zabbix server 的可用性增加了 JXM 监控方式
监控其它 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=192.168.80.30" \ -jar XXX.jar
zabbix收集java应用信息怎么实现?
在java启动过程中添加 暴露jmx端口的配置,在zabbix server配置中设置使用java gateway的参数,web页面中添加主机(关联jmx模版)
注意,Java gateway按在在收集数据的服务器上。
例如使用了zabbix proxy,此时proxy替server收集数据,Java gateway就应该安装在zabbix proxy上。
-------------------- Zabbix 监控 SNMP --------------------
SNMP,简单网络管理协议,常用于监控网络设备,也能监控支持开启SNMP功能的设备(windows、linux、打印机等)。
1.服务端安装 snmp 监控程序
yum install -y net-snmp net-snmp-utils
2.修改 snmp 的配置文件,并启动服务
vim /etc/snmp/snmpd.conf ...... view systemview included .1 #57行,添加此配置
systemctl start snmpd
3.使用 snmpwalk 命令测试
snmpwalk -v 2c -c public 127.0.0.1 sysname SNMPv2-MIB::sysName.0 = STRING: zbx-server
–v 1|2c|3:指定SNMP协议版本,v2c通过团体名作为认证,v3通过用户名和密码认证
–c:指定团体名(设备间的暗号)
sysname:为 snmp 的 key,用于查看系统名称;SysDesc 用于查看系统信息
4.在 Web 页面配置 snmp 方式监控
- 点击左边菜单栏【配置】中的【主机】,点击 Zabbix server
- 【模板】取消链接并清理 现有模板 Linux by Zabbix agent(由于是更改刚刚已经配置完成的server服务器才需要这步)
- 搜索 Generic,选择 Generic by SNMP
- 【群组】搜索 net,选择 net(新)(为了辨识 随意设定)
- 【Interfaces】点击【添加】选择 SNMP ,【IP地址】输入 127.0.0.1,【端口】输入 161
- 【SNMP version】选择 SNMPv2
- 【SNMP community】输入 {$SNMP_COMMUNITY} (变量值,默认已经输入。与下方宏的变量值一致即可)
- 点击上方菜单栏【宏】
- 选择【主机宏】
- 【宏】输入 {$SNMP_COMMUNITY},【值】 输入 public(Linux设备的暗号就是public,要与网络设备设置的团体名一致),【描述】输入 网络设备snmp的团队名
- 点击 【更新】
等待一段时间后 Zabbix server 的可用性就变成了 SNMP 监控方式