一、Zabbix的监控方式
在做SNMP监控之前,需要先了解一下zabbix默认都支持哪些监控方式。我们可以通过配置主机里面可以看见有四类,分别为ZBX、SNMP、JMX和IPMI
1.1 ZBX
TCP协议与zabbix-server传递信息。Agent监控方式分为主动和被动模式。在被动模式下,zabbix-agent监听10050端口,等待zabbix-server的监控信息收集信息请求;在主动模式下,zabbix-agent收集监控信息并通过10050端口主动将数据传给zabbix-server所在服务器的10051端口。
优点:
- 是zabbix最常用的监控方式,监测指标深入细致有针对性。
- 内置监控功能强大,内置监控项目丰富。
- TCP方式实现通讯,可靠性也有保证。
缺点:
- 需要在被监控机器上安装zabbix-agent客户端,部署相对麻烦,最初需要逐个机器安装代理软件。
- zabbix-agent客户端运行在被监控机上,会收集本机信息。
1.2 SNMP
SNMP全称Simple Network Management Protocol,即网络管理协议,包括进程管理和被管理设备两部分。作为一种国际通用的网络管理协议被广泛的应用于对各种交换机,路由器等网络设备的管理上,而现在也越来越多被用于对服务器的监控上。
优点:
- 服务器一旦部署SNMP Agent,任何能实现SNMP协议的软件都可对其进行监测。
- 通过这种手段进行监测不需知道被监测服务器的用户名与密码,比较安全。
缺点:
- 很多服务器并非默认安装SNMPAgent,如果要通过这种方式监测则需要对所有服务器安装部署。
- 能监测的参数指标比较固定不够深入,无法满足用户的特殊需求。
- 由于SNMP协议是通过UDP方式实现的,在网络状况不佳的情况下其可靠性难以保证。
- 不太好自定义,只能暴露什么收集什么。
1.3 JMX
JMX,全称Java Management Extensions,即Java管理拓展,是Java平台为应用程序,设备,系统等植入管理功能的框架。在zabbix中,JMX数据的获取由zabbix-java-gateway代理程序来负责数据的采集。
优点:
- 可以详细地监控各类Java程序的运行状态。
缺点:
- 被监控机上需要安装zabbix-java-gateway
1.4 IPMI
IPMI,全称Intelligent Platform Management Interface,即智能平台管理接口,原本是Intel架构中企业系统的周边设备所采用的一种工业标准,后来成为业界通用的标准。用户可以利用IPMI监视服务器的物理特征,如温度,电压,电扇工作状态,电源供应以及机箱入侵等指标。
二、安装SNMP
在主机zabbix-agent上安装SNMP服务,并配置监控。
2.1 安装配置snmp服务
- 安装snmp及相关软件
yum -y install net-snmp net-snmp-libs net-snmp-utils
- 配置
snmp支持v1,v2,v3协议。v2协议支持团体名称,V3协议支持用户名密码。这里通过配置使用V2协议团体名称。
配置文件:/etc/snmp/snmpd.conf
#备份原配置文件
cd /etc/snmp/
cp snmpd.conf{,.bak}
#修改如下配置
com2sec admin default admin #<==配置团体名
group admin v2c admin #<==配置组名
view admin included .1 80 #<==权限的配置1
access admin "" any noauth exact admin admin none #<==权限的配置2
#或者直接使用如下命令来配置
cat > /etc/snmp/snmpd.conf <<EOF
com2sec admin default admin
group notConfigGroup v1 notConfigUser
group admin v2c admin
view admin included .1 80
access admin "" any noauth exact admin admin none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
dontLogTCPWrappersConnects yes
EOF
- 启动
systemctl start snmpd.conf
systemctl enable snmpd.conf
snmp默认监听UDP协议的161端口,查看端口是否存在可以判断服务是否正常启动。
2.2 通过snmpget获取信息
在安装snmp的时候已经安装好了snmpget工具,因此可以在zabbix-agent上通过snmpget命令收集信息。
[root@zabbix-agent snmp]# snmpget -v2c -c admin 10.0.0.12 .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux zabbix-agent 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
-v2c:使用的协议
-c admin:指定团体名
10.0.0.12:运行snmp的机器
.1.3.6.1.2.1.1.1.0:OID,获取主机信息的代码
一些常用的OID:
.1.3.6.1.2.1.1.1.0 系统基本信息
.1.3.6.1.2.1.1.5.0 获取机器名
. 1.3.6.1.4.1.2021.11.9.0 用户CPU百分比
.1.3.6.1.2.1.25.2.2.0 获取内存大小
更多详细信息请参考如下地址:http://www.ttlsa.com/monitor/snmp-oid/
2.3 通过snmpwalk收集信息
上面的snmpget命令,只能收集单一的信息,不能用作匹配收集,例如获取系统负载时只能获取三个负载中的其中一个,而snmpwalk则可以全部收集。
[root@zabbix-agent snmp]# snmpget -v2c -c admin 10.0.0.12 .1.3.6.1.2.1.25.2.2.0
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 999696 KBytes
[root@zabbix-agent snmp]# snmpwalk -v2c -c admin 10.0.0.12 .1.3.6.1.2.1.25.2
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 999696 KBytes
HOST-RESOURCES-MIB::hrStorageIndex.1 = INTEGER: 1
HOST-RESOURCES-MIB::hrStorageIndex.3 = INTEGER: 3
HOST-RESOURCES-MIB::hrStorageIndex.6 = INTEGER: 6
注:各类交换机的配置可以根据自身的命令来对snmp进行配置。
三、添加一个snmp主机
在zabbix-server的前端页面,添加一个snmp的主机!
- 第一步
登陆zabbix控制台,并依次选择配置、主机、创建主机
- 第二步
主机配置说明
1、主机名称:zabbix-agent
2、可见名称:zabbix-agent
3、群组:新建一个linux-SNMP
4、接口: a、删除默认的agent接口;b、添加一个SNMP接口,并正确填写相关信息
5、描述:一定要写清楚描述
6、完成之后暂时不要点添加,还需要配置模板等信息
- 第三步
配置监控的模板
1、在连接指示器中输入linux字符,并在弹出来的选项中选择:Template OS Linux SNMPv2
2、需要分别点击两个添加
- 第四步
配置宏
1、因为在配置的时候是没有配置团体名的,在监控的时候如果没有admin这个团体名是无法正常监控的。因此需要在监控的时候,通过变量的形式来进行指定
2、配置参数:{$SNMP_COMMUNITY} => admin
当我们在配置、主机页面看到刚添加的SNMP选项变绿的时候,说明我们的SNMP已经被正常监控了!!
那么使用SNMP监控就介绍到这里了~~
下一篇介绍通过Agent对服务器进行监控!