Zabbix
zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
1. 系统架构
-
ZABBIX Web:zabbix的GUI,管理zabbix配置和查看相关的监控信息。
-
ZABBIX DB:存储配置信息和Zabbix Server收集到的数据。
-
ZABBIX Server:接收agent发送的报告信息,负责组织配置信息,统计数据,操作数据等。默认端口号10051。
-
ZABBIX Proxy:用于分布式监控环境中,代理Zabbix Server收集部分监控数据并发往Server端。
-
Agent:部署在被监控主机上,负责收集本地数据并将数据发往Server端或Proxy端。默认端口号10050。
2. 监控方式
(1)Agent:监控主机的状态,CPU、内存、硬盘、网卡等。
-
被动模式:Server端主动向agent拉取数据,zabbix默认工作的模式。
-
主动模式:agent将收集的数据主动发往Server端。
(2)SNMP:通过SNMP协议监控路由器、交换机、防火墙等网络设备。
(3)IPMI:通过IPMI硬件接口监控设备的物理特性,电压、温度、风扇状态、电源状态等。
(4)JMX:通过JMX框架监控Java应用程序,需要在Zabbix Server中安装zabbix-java-gateway组件,启动一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway获取数据。
修改zabbix Java配置zabbix_server.conf:
JavaGateway=172.16.10.1
JavaGatewayPort=10052
StartJavaPollers=5
修改Tomcat启动脚本catalina.sh,开启JVM远程监控功能:
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.10.1"
3. 监控内容
(1)硬件:网络设备、电压、温度、风扇状态、电源状态。
(2)系统:CPU负载、内存使用、硬盘使用、网卡流量、TCP连接数、进程数、端口。
(3)应用:应用程序、应用日志、业务数据、API接口、接口响应时间。
4. 监控告警流程
数据采集、数据存储、数据分析、数据展示、监控告警、告警处理。
- host group(主机组)、host(主机)、item(监控项)、trigger(触发器)、action(动作)、media(媒介)。