CentOS下面安装SNMP协议

检查是否安装snmp服务

# rpm -qa |grep snmp

 

yum安装

yum install -y net-snmp

yum install -y net-snmp-devel

yum install -y net-snmp-libs

yum install -y net-snmp-perl

yum install -y net-snmp-utils

yum install -y mrtg

 

启动服务

service snmpd start

service snmpd status

service snmpd restart

 

配置snmp

配置文件存放在:/etc/snmp/目录下面的snmpd.conf文件

41行

#      sec.name  source          community

# 增加配置用户名(sec.name),允许访问的IP(source),服务团体(community),团体就是类似于密钥的意思。用户在访问的时候必须使用正确的团体名才能正常访问

com2sec notConfigUser  localhost       public

com2sec notConfigUser  192.168.20.186       public

com2sec notConfigUser  192.168.10.11       public

58行

#       name           incl/excl     subtree         mask(optional)

#增加用户的访问程序权限,all

view    all    included   .1     80   

66行

#       group          context sec.model sec.level prefix read   write  notif

# 增加用户组的读写权限

access  notConfigGroup ""      any       noauth    exact  all none none

 

验证服务可用性

[root@localhost snmp]# snmpwalk -v 1 192.168.20.186 -c public system

SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (915186) 2:32:31.86

SNMPv2-MIB::sysContact.0 = STRING: Root (configure /etc/snmp/snmp.local.conf)

SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain

SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)

SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance

SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance

SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance

SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB

SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB

SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip

SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB

SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup

SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance

SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB

SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.

SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model.

SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.

SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities

SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations

SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations

SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations

SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.

SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.

SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.

SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORUpTime.7 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORUpTime.8 = Timeticks: (0) 0:00:00.00

SNMPv2-MIB::sysORUpTime.9 = Timeticks: (0) 0:00:00.00

 

防火墙配置

确保udp 161端口可以正常开启,并被访问

 

编写自定义脚本获取相应的状态

Memory 脚本:

#!/bin/sh

/usr/bin/free -m | grep Mem |awk '{print $4}'

/usr/bin/free -m | grep Mem |awk '{print $2}'

 

[root@localhost snmp]# sh memory.sh

809

1006

 

CPU 脚本:

#!/bin/sh

idle=`sar -u 1 3 | grep Average | awk '{print $6}'`

used=`echo "101 - $idle" | bc -l -s`

echo $used

echo $idle

 

Disk I/O 脚本:

#!/bin/sh

used1=`sar -d 1 3 | tail -1 | awk '{print $4}'`

used2=`echo "$used1 / 2" | bc -l`

echo $used2

echo $used2

 

在/etc/snmp/snmpd.conf中增加配置项

exec .1.3.6.1.4.1.2021.53 memory /bin/sh /root/memory.sh

exec .1.3.6.1.4.1.2021.54 cpu /bin/sh /root/cpu.sh

exec .1.3.6.1.4.1.2021.55 disk /bin/sh /root/disk.sh

 

监控主机运行

[root@localhost snmp]# snmpwalk -v 1 192.168.20.186 -c public .1.3.6.1.4.1.2021.53

UCD-SNMP-MIB::ucdavis.53.1.1 = INTEGER: 1

UCD-SNMP-MIB::ucdavis.53.2.1 = STRING: "memory"

UCD-SNMP-MIB::ucdavis.53.3.1 = STRING: "/bin/sh /root/memory.sh"

UCD-SNMP-MIB::ucdavis.53.100.1 = INTEGER: 0

UCD-SNMP-MIB::ucdavis.53.101.1 = STRING: "442"

UCD-SNMP-MIB::ucdavis.53.101.2 = STRING: "1006"

UCD-SNMP-MIB::ucdavis.53.102.1 = INTEGER: 0

 

根据实际输出数据是442和1006,所以可以调整最终的检查脚本

[root@localhost snmp]#snmpwalk -v 1  192.168.20.186 -c public .1.3.6.1.4.1.2021.53 | grep 53.101 | awk -F\" '{print $2}'

443

1006

 

你可能感兴趣的:(运维管理)