此服务是由上一篇博客基础上,搭建监控tomcat服务。
一、agent采集监控数据方式(键值对)
agent采集数据是以键值对的方式进行采集,一个键对应一个值。
二、通过jmx协议监控java程序
JMX 全称是Java Management Extensions,即Java管理扩展。Java程序会开放一些端口,用来获取运行状况。
从Zabbix2.0开始,内置了监控JMX的功能,叫做"Zabbix Java Gateway ",在Zabbix Serve上会启动名为"Zabbix Java Gateway "的进程,当需要获取JMX数据时,Zabbix Server会"问 "JMX Gateway,然后JMX Gateway 根据JMX管理API去查询需要的数据。在使用时,Java程序不需要在代码中新增任何东西,只需要在启动时加上一些JVM参数,使得它可以支持使用监控端口监控JMX。
数据采集过程:
zabbix server --------->zabbix java gatetway------------>java app
zabbix使用JMX监控tomcat
1.配置server2(agent客户端),安装tomcat和jdk,并开启tomcat
tomcat的官方文档
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm #下载kdk插件
[root@server2 ~]# tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/ #解压tomcat到指定位置
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ls
apache-tomcat-8.5.24 etc include lib64 nginx share
bin games lib libexec sbin src
[root@server2 local]# ln -s apache-tomcat-8.5.24/ tomcat ##将解压的包做个软连接方便用
[root@server2 ~]# vim /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS='-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8888 ##指定端口
-Dcom.sun.management.jmxremote.ssl=false ##是否对连接开启ssl加密,默认开启
-Dcom.sun.management.jmxremote.authenticate=false' ##是否开启用户验证
[root@server2 ~]# cd /usr/local/tomcat/bin/
[root@server2 bin]# ./startup.sh #tomcat启动
[root@server2 bin]# systemctl restart zabbix-agent
[root@server2 bin]# netstat -antlp
tcp6 0 0 :::8888 :::* LISTEN 2867/java
tcp6 0 0 :::10050 :::* LISTEN 2920/zabbix_agentd
2.zabbix-server端
[root@server1 zabbix]# yum install -y zabbix-java-gateway.x86_64 ##安装JMX插件
[root@server1 zabbix]# cd /etc/zabbix/
[root@server1 zabbix]# vim zabbix_java_gateway.conf #修改配置文件
9 LISTEN_IP="0.0.0.0"
17 LISTEN_PORT=10052
35 START_POLLERS=5
[root@server1 zabbix]# systemctl start zabbix-java-gateway
[root@server1 zabbix]# systemctl enable zabbix-java-gateway
[root@server1 zabbix]# netstat -ntlp | grep 10052
tcp6 0 0 :::10052 :::* LISTEN 856/java
[root@server1 zabbix]# vim zabbix_server.conf
288 JavaGateway=172.25.25.1
296 JavaGatewayPort=10052
304 StartJavaPollers=5
[root@server1 zabbix]# systemctl restart zabbix-server
配置->主机(server2)->JMX添加
server2添加模版:
配置->主机(server2)-模版
如果JXM图表还是灰色,就检查以上两个配置文件后重启服务
三、通过SNMP协议采集数据
即通过SNMP的查询和陷入进行监控数据的采集。适合对网络设备,如防火墙、交换机、路由器等的监控数据的采集。目前Zabbix系统支持SNMP v1 SNMP v2c和SNMP v3版本的协议。通过SNMP协议采集数据不需要在被监控设备上安装任何第三方软件,但是需要配置和开启SNMP服务,并允许监控服务器查询。这个是我们目前使用比较多的数据采集方法。缺点是,其通信协议走的UDP协议,传输为不可靠传输,所以存在丢数据的现象。同时,MIB库一般是跟被监控设备有关,不适合监控自定义的项目。
四、通过IPMI代理采集数据
智能平台管理接口(IPMI,Intelligent Platform Management Interface),是管理基于Intel架构的企业系统中所使用的外围设备所采用的一种工业标准。通过这种方法采集数据的优点是:它可以采集到其它方法无法采集到的硬件状态信息,例如CPU温度、风扇转数等等。缺点是,需要被监控硬件能够支持。而这个一般在购买服务器(这种方法一般只适用于服务器)时是需要单独购买控制卡的。