利用一个优秀的监控软件,我们可以:
●通过一个友好的界面进行浏览整个网站所有的服务器状态
●可以在 Web 前端方便的查看监控数据
●可以回溯寻找事故发生时系统的问题和报警情况
了解zabbix
zabbix是什么?
●zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
●zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
●zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
●zabbix server 可以通过 zabbix agent,SNMP协议,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在 Linux 等平台上。
●zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。
zabbix监控工作原理
-
zabbix agent 安装在被监控的主机上
-
zabbix agent 负责定期收集客户端的指标数据,并发送至 zabbix server 端
-
zabbix server 收到数据后, 将数据存储到zabbix database中
-
管理员基于 Zabbix Web 在浏览器可以看到数据在前端展现图像。
-
当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值, 当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、 install 等)。
zabbix的工作流程
Zabbix在进行监控时,zabbix客户端要安装在被监控设备上,负责定期收集数据,并将其发送给 zabbix服务端; zabbix服务端要安装在监控设备上,其将zabbix客户端发送的数据存储的数据库中,zabbix web根据数据在前端进行展示和绘图。
zabbix的数据收集分为两种模式
主动模式
zabbix agent主动向zabbix server请求监控项列表,并主动将监控项内需要的数据提交给zabbix server。
被动模式
zabbix agent 主动被动接收 zabbix server 请求的监控项的列表,zabbix 发送监控项需要的数据发送给zabbix server
由此可以看出zabbix的主动和被动模式是以zabbxi客户端为基准的。
zabbix组件
一、zabbix server
-
zabbix服务端进程
-
用于配置和管理zabbix应用程序,同时也是监控系统的告警中心(需要配置监控项,告警触发阈值和发送告警)
二、zabbix database
-
持久化存储配置信息和监控指标数据
-
支持mysql、oracle、pgdb、tsdb等
三、zabbix web
-
用于做zabbix服务端配置界面和监控数据的UI界面展示
-
支持lamp和lnmp
四、zabbix agent
-
部署在被监控的主机上,采集监控指标数据,并发送给zabbix server(数据采集支持主动模式和被动模式)
五、zabbix proxy
-
zabbix代理端进程,部署在zabbix server于zabbix agent之间,代替zabbix server接收zabbix agent 发送的监控数据
-
并存储在本地,汇总后再转发给zabbix server,从而可以分担zabbix server的集中式负载压力
六、zabbix java gateway
-
用于获取通过JMX从JAVA应用暴露的端口采集的监控数据
面试题
自定义监控项
1.先明确获取监控指标数据的命令或脚本
2.在被监控主机配置文件目录中(/etc/zabbix/zabbix_agent2.d/)创建以.conf 为后缀的监控项配置文件,在文件里自定义监控指标数据的键值
键值格式:UserParameter=<键值名>,<获取值的命令/脚本路径>
3.在zabbix服务端web管理页面中依次添加 模板 - 监控项 - 触发器 - 图形
4.将监控模板与监控主机相关联
配置邮件报警
1.在zabbix管理页面【管理】- 【报警媒介类型】 中设置媒介类型和内容模板
2.在【user settings】 - 【Profile】- 【报警媒介】中设置 类型 、收件人、启动时间、严重级别
3.在【配置】 - 【动作】 - 【Trigger actions】中创建动作设置动作条件和操作内容
4.测试,查看报警邮件能否正常发送
zabbix自动发现和自动注册
自动发现
zabbix sever 服务端主动发现zabbix agent 客户端
1.在【配置】-> 【自动发现】创建发现规则,设置ip范围和检查的键值(system.uname)
2.在【配置】-> 【动作】-> 【发现动作】创建动作,设置动作条件和操作细节
自动注册
zabbix agent 客户端主动找zabbix server服务端注册
1.修改zabbix agent配置文件,取消HostnameItem 的注释
2.在【配置】->【动作】->【自动注册动作】创建动作,设置动作条件和操作细节
SNMP协议
简单网络管理协议,常用于监控网络设备,也能监控支持开启SNMP功能的设备(windows、linux、打印机等)。
zabbix什么时候会用到SNMP协议来监控?
监控网络设备
zabbix 监控 windows主机
在windows主机上安装windows版本的zabbix agent 客户端应用,并配置指向azbbix server/proxy
zabbix 监控 java应用
1.在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 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=192.168.80.30" #tomcat服务器地址
2.在zabbix server/proxy 安装zabbix java gateway,并修改zabbix sorver/proxy的配置文件设置 JavaGateway 的地址、StartJavaPollers收集进程数
3.在zabbix服务端web管理页面【配置】-【主机】添加JMX接口监控主机,默认端口为12345
zabbix 监控 支持SNMP协议的网络设备
在zabbix服务端web管理页面【配置】-【主机】添加SNMP接口监控主机,默认端口为161,指定SNMP协议版本(通常是v2)和网络设备团体名(网络设备的唯一标识,可在网络设备的系统界面中查到)