Zabbix高手篇
1 Zabbix可视化
随着大量数据流入 Zabbix,如果用户可以看到正在发生的事情的可视化表示,而不仅仅是数字,他们会变得更加容易。
这就是图表的用武之地。图表可以让您一目了然地掌握数据流、关联问题、发现某事何时开始或演示某事何时可能变成问题。
1.1 简单图表
zabbix提供了简单的图表,用于可视化按项目收集的数据。
用户无需进行任何配置即可查看简单的图表。它们由 Zabbix 免费提供。
只需转到 监控 → 最新数据,然后单击相应项目的图表链接,就会显示一个图表。
时间段选择器
请注意图表右上方的时间段选择器。它允许通过单击鼠标选择经常需要的时间段。
请注意,诸如今天(Today)、本周(This week)、本月(This month)、本年(This year)之类的选项会显示整个期间,包括未来的小时数/天数。相比之下,今天到目前为止,只显示经过的小时数。
可以通过单击“从/到”字段旁边的日历图标来选择特定的开始/结束日期。在这种情况下,日期选择器弹出窗口将打开。
数据查看方式
对于最近的数据,绘制一条连接每个接收到的值的线。
对于显示较长周期的数据,绘制了三条线- 深绿色表示平均值,而浅粉色和浅绿色线表示该时间点的最大值和最小值。高点和低点之间的空间用黄色背景填充。
工作时间(工作日)以白色背景显示在图表中,而非工作时间以灰色显示(使用原始蓝色默认前端主题)。
触发线
简单触发器显示为在触发器严重性颜色上带有黑色短划线的线——注意图表上的蓝线和图例中显示的触发器信息。图表上最多可显示 3 条触发线; 如果有更多触发器,则优先显示具有较低严重性的触发器。
更加详细内容请参考:https://www.zabbix.com/documentation/5.0/zh/manual/config/visualization/graphs/simple
1.2 自定义图表
顾名思义,自定义图表提供自定义功能。
虽然简单的图表有利于查看单个项目的数据,但它们不提供配置功能。
因此,如果你想更改图表样式或线条的显示方式或比较多个项目,例如单个图表中的传入和传出流量,你需要一个自定义图表。
自定义图表是手动配置的,可以为一个主机或多个主机或单个模板创建它们。
要创建自定义图表,请执行以下操作:
转到 配置→主机(或模板)
单击所需主机或模板旁边的行中的 图表
在图表屏幕中单击 创建图表
编辑图形属性
所有必填字段都标有红色星号。
点击图表中的 监控项,来指定该图表具体为哪些监控项展示数据。
更加详细内容请参考:https://www.zabbix.com/documentation/5.0/zh/manual/config/visualization/graphs/custom
每次的调试都可以通过界面上方的预览进行查看
当配置完成后点击添加/更新以完成创建。
图表预览
创建完成后即可在下方看到图形。
具体查看方式可通过 监测→主机 通过具体主机信息内的图形页面查看
过滤器可进行快速搜索。
此图中的值为k是一种阿拉伯数字的英文表示法: 例如:1k表示1000,100k表示100000。
如果数字超过千万则使用m表示,例如:1m表示1千万,10m表示1个亿
如果数字超过亿单位则使用b表示,例如:1b表示10亿,10b表示100亿
1.3 Ad-hoc 临时图
虽然一个简单的图表非常适合访问一个项目的数据,而自定义图表提供了自定义选项,但两者都不允许快速创建多个项目的比较图表,而无需费力且无需维护。
为了解决这个问题,从 Zabbix 2.4 开始,可以以非常快速的方式为多个项目创建临时图。
要创建临时图,请执行以下操作:
转到 监测→最新数据
标记要绘制的项目的复选框
单击 显示堆叠图 或 显示图 按钮
显示堆叠数据图
显示数据图
总结:Ad-hoc可以快速为项目创建临时的对比图,无法永久保存,但也无需维护!
1.4 聚合图形
数据聚合最令人兴奋的用途是可以在一段时间内创建漂亮的数据并排比较:
在 监测 → 聚合图形 部分,您可以配置,管理和查看Zabbix 聚合图形
如果要创建新的聚合图形, 点击屏幕右上角的创建聚合图形(Create screen) 。也可从XML文件导入屏幕,请单击右上角的 导入 按钮。导入聚合图形的用户将被设置为其所有者。
点击 创建聚合图形将3个图形聚合在同一个聚合图形中展示。
聚合图形命名为:服务器性能分析图
创建成功后,开始 编辑聚合图形
分局具体需求选择对应监控项即可,本案例分别在zabbix server与被控主机中任意挑选了一个监控项创建聚合图形。
单击zabbix监控页面中的 监测–>聚合图形,选择指定的聚合图形,即可查看到整合的展示结果 。
右侧的按钮有以下选项:
可将聚合图形添加至仪表板(仪表板需要有常用的聚合图形小构件,默认自带该构件)
回到 监测→仪表板 查看, 单击聚合图形列表中的名称,即可查看聚合图形。
1.5 Zabbix拓扑图
在很多时候,特别是在被监控对象所处的网络结构比较复杂的时候,我们非常希望有一张能反映当前整个网络状态的拓扑图供我们查看。这样,不但能非常直观和清晰地监控整个网络的当前状态,而且,一旦网络出现故障,也能快速地发现和定位故障所发生的节点,从而大大提高工作效率。
在 监测→ 拓扑图 部分,您可以配置,管理和查看网络拓扑图
当您打开此部分时,你将看到你可以访问的所有拓扑图的列表。 拓扑图列表可以按名称过滤。
所有拓扑图都可以是公共的或私有的。 所有用户都可以使用公共拓扑图,而私有拓扑图只能由其所有者和对其共享的用户访问。
要配置新的拓扑图,请点击右上角的 创建拓扑图 按钮。要从XML文件导入拓扑图,请单击右上角的导入按钮。 导入拓扑图的用户将被设置为其所有者。
点击 创建拓扑图 会出现如下表单页面,具体详细解释可参考下方表格。
表单项含义解释
点击刚创建的拓扑图后默认里边没有拓扑,需要点击右上角编辑拓扑图添加具体设备。
添加按钮
再添加一台设备到拓扑中
确保你拓扑有两台主机,用鼠标划中两台设备,单击 链接:添加将两台主机连在一起,点击更新。
再次通过监测→拓扑图验证,下面是成品图。
右上角可将拓扑添加至监仪表板中。
监测→仪表板 仪查看。
2 Zabbix_Web监测
Web监测属于业务监测,模拟用户去访问网站,用来监测Web站点多方面的可用性,可以监控web站点的相关延迟,响应时间,下载时间等指标,从而判断网站Web服务的可用性。
在很多时候,我们可以用脚本、程序来进行自定义监控,如Linux下的命令curl、http库等多种现有的程序和库都可以来实现这一需求。
案例需求:要求通过zabbix_web监测功能监控Discuz论坛的响应速度。
2.1 创建web监测
通过左侧栏的 配置→主机 找到对应的主机点击 Web监测 后点击右上角的 创建Web场景
填写场景名称、应用集、更新间隔、尝试次数以及客户端,这些都可以自定义 。
2.2 配置步骤
随后点击步骤 点击 添加,配置第一步骤,配置如下图所示,步骤名称自定义,URL填写打开Discuz论坛时的网址链接
勾选 跟随跳转(不勾选会报301错误),超时时间默认15s,要求的状态码填200(多个状态码用西文逗号隔开即可,如:200,404,500),然后点击右下角 添加 添加步骤。
再次点击 添加,成功添加新的Web场景
2.3 查看Web监测
点击 监测→最新数据,选择我们的对应主机,稍等一分钟后可以看到有数据,说明配置无误。
具体图形可通过 监测→主机,可以看到我们配置了WEB监测的主机,点击 Web监测1
该页面可以观测到具体的名称、步骤数量、最近检查时间、状态信息。
点击名称下Discuz论坛首页监测可以图表方式展示的WEB监测数据。
上述图表中为论坛首页的响应时间创建了触发器:配置→主机→触发器→创建触发器 选择对应的监控项即可。
3 Zabbix的SNMP监控
3.1 SNMP介绍
简单网络管理协议,是专门设计用于在 IP 网络管理、网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。
如果我们需要监控打印机、路由器、交换机、UPS等设备,肯定不能使用zabbix agentd,因为他们不能安装软件的,一般都支持SNMP协议,这样我可以使用SNMP来监控他们。
SNMP有三种不同的版本:
SNMP 版本 1 (SNMPv1) :第一个版本,不支持任何的认证功能。
SNMP 版本 2 (SNMPv2) :第二个版本,支持简单的认证口令(community)
SNMP 版本 3 (SNMPv3) : 此版本提高了安全性和隐私性
3.2 MIB介绍
MIB(Management Information Base)信息管理库。通常与SNMP相关联,数据库是分层的(树形结构的),并且每个条目通过对象标识符(OID)来寻址。
3.3 OID介绍
OID(Object IDentifiers)对象标识符,用来在MIB库中表示一个对象的指标。
通俗总结:
想要通过Zabbix监控打印机、路由器、交换机等设备,需要通过SNMP协议获取数据
SNMP获取的数据来源需要从MIB信息管理库中进行获取
OID就是在MIB库中代表每一个可以监控的对象指标(例如:内存、CPU、网络等)
3.4 部署SNMP监控
本实验采用Linux系统模拟网络设备来演示SNMP监控,企业中需要网路工程师开启设备的SNMP功能即可。
步骤:
a:准备一台新的虚拟机充当网络设备,安装SNMP服务
#安装net-snmp软件
[root@snmp-112 ~]# yum -y install net-snmp
#修改配置文件
[root@snmp-112 ~]# vim /etc/snmp/snmpd.conf
...
40 # sec.name source community
41 com2sec notConfigUser default public #认证口令(默认不需要修改)
55 view systemview included .1.3.6.1.2.1.1
56 view systemview included .1.3.6.1.2.1.25.1.1
57 view systemview included .1 #添加OID监控项(.1表示MIB库下所有监控项)
#启动SNMP服务
[root@snmp-112 ~]# systemctl start snmpd
b:zabbix server端安装工具取值
#安装net-snmp-utils客户端工具
[root@zabbix-server ~]# yum -y install net-snmp-utils
#获取SNMP值格式:-v 指定SNMP版本,-c 指定口令(口令要求与配置文件一致)
[root@zabbix-server ~]# snmpwalk -v 2c -c public 192.168.0.112
c:Web界面添加监控
配置→主机→创建主机
提示:类型选择SNMP,其余参数默认即可。
链接监控模板
配置后大约等待1m左右即可看到如下图状态,到此为止,zabbix监控SNMP配置完成。
4 Zabbix监控JMX
JMX监控可用于监控Java应用程序,例如:Tomcat服务。
从zabbix 2.0开始,JMX监视器以Zabbix守护进程的形式运行,称为“Zabbix Java gateway”,专门用于监控Java程序。
本实验已 java Tomcat程序为监控对象,来演示JMX监控。
4.1 部署Tomcat服务
a:提前安装Java工具包JDK:java-1.8.0-openjdk.x86_64
#创建目录将Tomcat软件包上传到该目录并解压
[root@host-111 ~]# mkdir /usr/local/tomcat
b:为Java应用程序启用远程JMX监控
Java应用程序不需要安装任何附加的软件,Tomcat应用需修改 catalina.sh 文件,添加如下参数,设置启动,以支持JMX监控。
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.0.111 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
参数说明:
hostname:是监控tomcat所在服务器的ip地址
jmxremote.port:端口号,是要开启的监控端口号,12345为JMX默认端口
jmxremote.ssl:是否要开启ssl链接tomcat,false表示不开启
authenticate: false表示监控不须要用户和密码服务器
上述参数使得Java可以侦听来自本地主机12345端口上传入的JMX连接,并告知不需要身份验证或SSL。
如过Tomcat开启SSL或身份验证,请参考下边地址进行配置:
JMX监控: https://www.zabbix.com/documentation/5.0/zh/manual/config/items/itemtypes/jmx_monitoring
修改Tomcat的catalina.sh文件(文件位置:在Tomcat项目中 bin/catalina.sh)
搜索:Execute The Requested Command 在该行下添加上述参数(大约在250行左右)
[root@host-111 apache-tomcat-8.0.30]# vim bin/catalina.sh
...
# ----- Execute The Requested Command --------------------------------------
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.0.111 #Java应用本机IP地址
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
启动Tomcat服务(Tomcat无需安装,直接启动服务)
#通过脚本启动服务
[root@host-111 apache-tomcat-8.0.30]# bin/startup.sh
#查看服务端口信息
[root@host-111 apache-tomcat-8.0.30]# netstat -ntlp | grep java
浏览器访问测试:IP:8080
看到该测试页面Tomcat已安装完成。
4.2 部署zabbix java gateway
zabbix server端安装zabbix-java-gateway程序(也可分开部署,也可跟zabbix server在同一台主机)
[root@zabbix-server ~]# yum -y install zabbix-java-gateway
zabbix-java-gateway服务参数:
程序名:zabbix-java-gateway
主配置文件路径:/etc/zabbix/zabbix_java_gateway.conf
服务端口:10052
默认启用JMX监视器数量:5个(可通过配置文件中的 START_POLLERS=数量 进行修改)
修改/etc/zabbix/zabbix_java_gateway.conf文件,指定JMX监视器数量,一个JMX监视器可监控一个Java程序
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_java_gateway.conf
...
35 START_POLLERS=2 #取消注释,指定JMX监视器数量
启动zabbix-java-gateway服务
[root@zabbix-server ~]# systemctl start zabbix-java-gateway
[root@zabbix-server ~]# systemctl enable zabbix-java-gateway
修改zabbix server配置文件指定zabbix-java-gateway地址
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
...
296 JavaGateway=127.0.0.1 #取消注释,指定JavaGateway服务器地址(本机地址)
312 StartJavaPollers=2 #取消注释,指定zabbix server获取JMX监视器进程数量(与JMX监视器数量一致即可)
重启zabbix server
[root@zabbix-server ~]# systemctl restart zabbix-server
4.3 添加JMX监控
Java网关在运行时,现在可以在Zabbix GUI中配置接口和监控项了。
① 首先在相关主机上创建一个JMX类型的接口。
② 绑定模板
该模板为Java应用通用模板。点击更新。
4.4 验证JMX监控
通过 监测→最新数据 中看到JMX的监控数据了
评论区