一、介绍
1、 服务器监控工具可以帮助我们从任何一个地方实时了解服务器的性能和功能。监控宝服务器监控套装,可以实时CPU使用率、内存使用率、平均负载、磁盘I/O、网络流量、磁盘使用率等,能够同时为你带来短期效益和长期效益。监控宝目前提供的服务器监控项目包括:
CPU使用率,监控CPU的使用率比例,包括用户态(User)、内核态(System)、I/O等待(IOWait)、空闲(Idle)等
CPU负载,监控Linux服务器的平均负载(load average),包括最近1分钟、5分钟、15分钟等
内存使用率,监控内存使用率,对于Linux服务器,包括空闲内存、Buffer Cache、Page Cache、应用程序内存等
磁盘I/O,监控所有磁盘分区的I/O流量,包括写入和读取
网络流量,监控所有网络设备的流量,包括流入和流出
磁盘空间使用率,监控所有磁盘分区的空间使用率,包括总空间和已用空间.
系统进程数,监控系统当前的进程数。
2、监控宝使用标准的SNMP协议来为用户提供服务器监控功能,这意味着被监控的服务器上必须运行SNMP代理程序 snmpd;
3、SNMP是一构建在TCP/UDP上的远程监控应用。它能监控网络中主机的各种信息,如内存使用率,CPU占用率,磁盘占用率等。
4、它主要分为2个部分。安装在待监控主机上的SNMP服务端,用于收集主机的信息,并按树形进行组织;安装在监控端的SNMP客户端,实时发出查询命令,获得被监控主机的运行信息。使用UDP 161端口接收和发送请求,162端口接收trap。
5、Net-SNMP是一个免费、开放源码的SNMP实现。使用C语言实现。
参考链接:
1)Ubuntu上snmp安装、配置、启动及远程测试完整过程
2)linux snmp常用结点值
二、Ubuntu 下安装snmp
1、安装程序包
1)sudo apt-get install snmpd snmp snmp-mibs-downloader
2)在安装snmp-mibs-downloader的过程中,程序会帮我们自动下载mib库,并保存在/usr/share/mibs目录中;
3)如果安装好的文件没有上述目录库,手动下载安装:sudo download-mibs;
2、配置
1)系统默认运行了这个服务;
2)修改 /etc/snmp/snmpd.conf
A. 配置节点
view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.25.1 #增加下面一行: view systemonly included .1
上面的操作可以让我们获取更多的节点信息。注:修改完snmpd.conf
B. 配置MIB库
将snmpd.conf 中的以下行注释掉:
mibs:
这样之后,我们获取节点信息,不必输入长串的数字
#之前获取内存信息的操作 [ubuntu]snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.4.3.0 UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1950716 kB #之后获取内存信息的操作 [ubuntu]#snmpwalk -v 2c -c public localhost memTotalSwap.0 UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1950716 kB
C. 配置共同体
其实所谓共同体,把它理解为一个密码就行了,前面我们在使用snmpwalk命令获取主机的信息时,有一个-c public的参数,其实就是指定了这个共同体为public,这是默认的配置,当然在实际中,我们不可能使用默认的值,因此需要把它修改一下。
rocommunity public default -V systemonly rocommunity6 public default -V systemonly 修改为: rocommunity xplinuxidc123 default -V systemonly rocommunity6 xplinuxidc123 default -V systemonly
修改后重启snmpd服务
ubuntu@linuxidc:/etc/snmp$ snmpwalk -v 2c -c public localhost memTotalReal.0 Timeout: No Response from localhost ubuntu@linuxidc:/etc/snmp$ snmpwalk -v 2c -c xplinuxidc123 localhost memTotalReal.0 UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 8093524 kB
可以看到第一次获取信息不成功,因为我们已经更新了共同体,旧的public将不能再使用,否则认证失败就无法获取snmp提供的主机信息。
D. 允许远程主机访问
默认情况下,snmp服务只是对本地开启,是无法通过远程获取该主机的snmp信息的
ubuntu@linuxidc:/etc/snmp$ sudo netstat -antup | grep 161 udp 0 0 127.0.0.1:161 0.0.0.0:* 11615/snmpd
可以看到,161端口只对本机开放(161端口号是snmp服务的端口号),我们需要修改一下,让snmp服务对外开放。
将下面一行注释掉: agentAddress udp:127.0.0.1:161 同时去掉下面这一行的注释: #agentAddress udp:161,udp6:[::1]:161
重启snmp服务,通过命令观察
ubuntu@linuxidc:/etc/snmp$ sudo netstat -antup | grep 161 udp 0 0 0.0.0.0:161 0.0.0.0:* 11656/snmpd udp6 0 0 ::1:161 :::* 11656/snmpd
可以看到服务已经对外开放了,并且同时支持IPv4和IPv6。这样之后,我们就能在远程主机进行测试。
三、测试
1、常用测试命令
snmpwalk -v 2c -c public localhost /IP ##获取系统所有的信息 snmpwalk -v 2c -c public localhost /IP .1.3.6.1.2.1.25.2.2 ##取得系统总内存 snmpwalk -v 2c -c public localhost /IP.1.3.6.1.4.1.2021.4.3.0 ##取得系统内存 snmpwalk -v 2c -c public localhost /IP .1.3.6.1.2.1.4.20 ##取得IP信息 snmpwalk -v 2c -c public localhost /IP hrSystemNumUsers ##取得系统用户数 snmpwalk -v 2c -c public localhost /IP system ##查看系统信息 snmpwalk -v 2c -c public localhost /IP ifDescr ##获取网卡信息 snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1 ##获取本地设备、系统等等信息
2、snmp服务器获取snmp代理的设备信息
1)Ubuntu上安装snmp相关的软件,并进行配置;
2)嵌入式设备启动snmp,IP是10.13.113.205;
3)Ubuntu上执行:snmpwalk -v 2c -c public 10.13.113.205 memTotalSwap.0,即可获取嵌入式设备的信息。
嵌入式设备上有打印Ubuntu机器发过来的调试信息;