生成snmp v3账号密码需要net-snmp-config这个脚本,这个脚本在snmp-devel中,这个开发包依赖很多其他的开发包,但是这个脚本本身对其他包没有依赖,所以直接从这个包里解压出来用就可以了
snmpd.conf中注释掉V1 V2协议,允许所有IP段
# groupName securityModel securityName
#group notConfigGroup v1 notConfigUser
#group notConfigGroup v2c notConfigUser
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact all none none
修改成all,原来是system-view
## incl/excl subtree mask
view all included .1 80
view前面的注释取消掉
关闭snmp
如果是新安装的snmp,需要用服务脚本先启动一次snmp再关闭,不然有些路径没有导致v3用户生成失败
删除原来的配置文件/var/net-snmp/snmpd.conf(这个是生成过v3用户才出现的)
创建用户
net-snmp-config --create-snmpv3-user -ro -a 密码-A MD5 -x 盐 -X DES 用户名
创建后/var/net-snmp/snmpd.conf中会有一行内容为createUser xxxx的内容
snmpd.conf末尾会追加你的v3用户组
开启snmpd后/var/net-snmp/snmpd.conf中内容会变为加密文
通过下面命令看是否返回本机网卡信息
snmpwalk -v3 -u 用户名 -l authPriv -a MD5 -A 密码 -x DES -X 盐 127.0.0.1 if
snmpd的服务启动脚本会读取/etc/sysconfig/snmpd.option的内容
几个snmpd版本的参数有点小区别,这里主要配置不写访问日志的参数,不然cacti每5分钟一条记录
redhat 5.4
OPTIONS="-Ln -p /var/run/snmpd.pid -a"就不写入日志了
4.7没有n这个参数就要用f写入/dev/null,还要先LS指定日志等级
OPTIONS="-LS 3 d -Lf /dev/null -p /var/run/snmpd.pid -a"
snmpdiskio是cacti监控硬盘模板的脚本
snmpdiskio中增加函数(这个随便定义,方便起见直接用了原来一个模板调用的脚本)
function mysql()
{
ps up `cat /var/run/mysqld/mysqld.pid ` | sed '1d' | awk 'BEGIN{ OFS="\n"} { print $3,$4,$5,$6 }'
}
case增加
'mysql')
mysql
;;
/etc/snmp/snmpd.conf追加
exec .1.3.6.1.4.1.2021.59 mysqlinfo /usr/local/bin/snmpdiskio mysql
重启snmpd后可以用
snmpwalk -v3 -u 用户 -l authPriv -a MD5 -A 密码 -x DES -X 盐 127.0.0.1 .1.3.6.1.4.1.2021.59
获得mysql的占用情况
再在cacti中增加相关自定义模板,OID用.1.3.6.1.4.1.2021.59.xxxxx,具体数字用snmpwalk返回内容选择
同理可用脚本检测任何脚本返回内容
top脚本snmpwalk返回错误
UCD-SNMP-MIB::ucdavis.55.101.1 = STRING: ".top: failed tty get"
但是远端脚本正确执行
原因是top需要一个tty来运行,加入-b参数正常返回值
top -bn 1 -p `cat /var/lib/mysql/localhost.localdomain.pid` | sed -n '8p' | awk 'BEGIN {OFS="\n"} { print $9,$10 }'
ps up `cat /var/lib/mysql/localhost.localdomain.pid` | sed '1d' | awk 'BEGIN{ OFS="\n"} { print $5,$6 }
阅读(4550) | 评论(0) | 转发(0) |