snmp
Posted 0916m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了snmp相关的知识,希望对你有一定的参考价值。
snmpd作为一个服务,本身有系统的一些信息,外部可以通过snmp -get ,walk来获取,而snmptrap理解为一个陷阱,等着掉进来猎物,就是一个收数据的服务,但是收到的数据和snmpd中呈现的数据时互不相关的,两个是独立的,snmptrap收到的数据打到一个日志文件中,通过snmptt可以进行简单的过滤操作,使得拿到的数据更加的符合要求。
snmptrap
数据收集流程
snmptrap两个监控项
依赖:
yum install -y net-snmp net-snmp-utils net-snmp-perl
下载pl脚本
wget https://源码安装的zabbix包路径.tar.gz
用的https会证书报错
可以添加 --no-check-certificate忽视
解压安装包
复制pl脚本
cp misc/snmptrap/zabbix_trap_receiver.pl /usr/bin/
加权限
chmod a+x /usr/bin/zabbix_trap_receiver.pl
配置snmptrap
vim /etc/snmp/snmptrapd.conf
配置pl脚本
配置zabbixserver端
重新启动
启动,设置开机启动
发送测试数据
m
oid必须有效
主机名可以为空,但是必须有,即使是个 “”
日志文件中的内容
zabbix中配置监控项
可以使用预处理
正则过滤掉不想要的信息,只显示想要的
fallback监控项
Snmp-Agent
oid可以是字符串类型的,便于理解,也可以是数字类型,
使用ql可以查看安装包的安装位置
snmp-v3的使用
[]https://upload-images.jianshu.io/upload_images/11743438-fdd30e5c45d9bb77.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
创建用户
snmp.conf中添加 刚才创建的v3用户
snmpwalk
获取当前设备的mib信息
-v 3 使用v3版
-u zabbix 创建的用户
-a MD5 加密方式
-A ‘xxx@xxx’ 权限验证
-l authPriv 使用权限验证
-x 使用DES的加密方式
-X 定义的秘钥
查看zabbixserver日志
配置监控项
-o fn 将转换成数字类型的oid
效果是一样的
zabbix trap
zabbix sender 在客户端给server端发送信息,-z 指定server的ip -p 指定端口 10051 -s 被监控设备的主机名 -k监控项 -o对应的值
创建监控项,
安装
发送 浮点型数据
发送字符串数据
zabbix trap
依照zabbixsender的发送协议,就可以使用编程语言编写zabbix的发送信息的客户端 类似于zabbix sender
只要是想将数据发送给zabbix就可以使用zabbix trapper
实际运用中,是将zabbix traper 和zabbix agent(无论主被动)合起来用的
利用zabbix trap机制,可以自定义脚本,在脚本内使用zabbix serder的命令发送数据,再到userprameters中指定指定自定义key,在web中配置这个自定义的监控项,每次执行这个监控项,脚本执行,调用内部的zabbizsender来发送数据
脚本内容
编写自定义key来执行脚本
最新数据
好处:
所有的监控项是在同一秒收集的数据,这样数据比较有参考意义,相比较其他不同时的更好一些
trap形式收集数据跟主动数据收集的优点类似,降低server的压力,将压力分摊到各被控主机上,这种模式是批量处理的
Zabbix Snmp Trap 配置
1. Zabbix Server 操作
1.1 Snmp Trap 安装配置
yum install -y net-snmp net-snmp-utils
vim /usr/lib/systemd/system/snmptrapd.service
ExecStart=/usr/sbin/snmptrapd $OPTIONS -f -O n
vim /etc/snmp/snmptrapd.conf
authCommunity execute public
traphandle default /sbin/snmptthandler
systemctl enable snmptrapd
systemctl start snmptrapd
netstat -unpl |grep 162
1.2 SnmpTT 安装配置
# rpm -ivh http://dl.fedoraproject.org/pub/epel
yum install snmptt perl-Sys-Syslog
vim /etc/snmp/snmptt.ini
date_time_format= %Y/%m/%d %H:%M:%S
mode = daemon
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
/etc/snmp/nbu.conf
END
vim /etc/snmp/nbu.conf
EVENT general .1.3.6.1.4.1.393.3.9.1.* "NBUTrap" Error
FORMAT ZBXTRAP $aA $1
#在这里还可以将返回值作为参数传入一个脚本进行处理,使用zabbixsender发送给zabbix server端。
systemctl enable snmptt
systemctl start snmptt
1.3 Zabbix Server 配置
vi zabbix_server.conf
vi zabbix_proxy.conf
SNMPTrapperFile=/var/log/snmptt/snmptt.log
StartSNMPTrapper=1
systemctl retart zabbix-server
# 测试命令
snmptrap -v 2c -c public 127.0.0.1 "" 1.3.6.1.4.1.2345 1.3.6.1.4.1.2345 s "test v2"
发送的 ip 要与主机的 SNMP接口 ip 一致。
以上是关于snmp的主要内容,如果未能解决你的问题,请参考以下文章
SNMP++ 04-SNMP中OBJECT IDENTIFIER的BER编码与解码及一些思考