Cacti 安装配置:回大纲
这里将会解释 Net-SNMP 代理的安装和设置。截止写作时,Net-SNMP 的***版本为5.4(12/06/2006发布)。
依据操作系统的不同,你可以使用安装包或者压缩包来安装 Net-SNMP。
大部分发行的Linux操作系统都带有Net-SNMP的安装包:
RedHat / Fedora : 安装 net-snmp, net-snmp-libs and net-snmp-utils
Debian / Ubuntu: 安装 libsnmp-base, libsnmp5, snmp and snmpd packages
SuSE : 安装 the net-snmp package
Gentoo : emerge the net-snmp ebuild
Mandriva : 安装 the libnet-snmp5, net-snmp and net-snmp-utils packages.
从源代码安装 Net-SNMP
如果找不到对应的二进制发行包,那么可以尝试从源代码进行编译。
如下显示了如何获得一个正在运行的 Net-SNMP 的配置选项:
- $ snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.100.6.0
设置 Net-SNMP 代理
视如何安装 Net-SNMP,主要的配置文件(snmpd.conf)可能被放置在 /etc/snmp(从二进制包安装)或者 /usr/local/share/snmp(从tarball压缩包安装)。
请注意当你修改了 snmpd.conf 配置文件后,你需要重新启动 snmpd 守护进程(或者发送HUP信号)。
最简单的配置如下:
- rocommunity public
这将会从任何主机上发送的 SNMP version 1/2 只读请求,使用的社区名称为 public。
使用这个最小化的配置,你就能够绘制CPU使用率,网络接口,内存/交换区使用,登录的用户和进程数量等图形了。
你可以限制接受从哪些主机发送过来的请求:
- rocommunity public 127.0.0.1rocommunity test 87.65.43.21
默认情况下 Net-SNMP 在所有IP V4接口上使用UDP方式在161端口进行侦听。
在如下的示例中 Net-SNMP 将会在10.20.30.40主机的10000端口上建立侦听。
agentaddress 10.20.30.40:10000
你同样可以配置其使用TCP方式侦听(Cacti也支持这种方式):
- agentaddress tcp:161
"tcp"关键词可以在稍后配置Cacti的时候使用:
对于哪些对安全性要求较高的用户,可以配置使用SNMP协议第3版,支持MD5和SHA哈希算法。
- createUser frederic MD5 mypassphrase DESgroup groupv3 usm fredericview all included .iso 80access groupv3 "" any auth exact all all all
上述配置将会创建一个名为"frederic",密码为"mypassphrase"的用户。测试一下:
- # snmpget -v 3 -l AuthNoPriv -u frederic -A mypassphrase 10.50.80.45 sysName.0SNMPv2-MIB::sysName.0 = STRING: cyclopes
在 Cacti 中配置的话,添加你的设备之后,选择 SNMP V3 版本的协议,并设置用户名和密码:
到这里访问控制方面的设置就完成了,在 snmp.conf 中增加如下两行,以标识设备的名称和联系人。
syslocation Bat. C2syscontact someone@somewhere.org
他们将会出现在 Cacti 的设备管理界面中。
有一些OID会返回类似 "-153.1 dBm" 的单元,一个较为安全的做法是关闭它,可以在 snmpd.conf 中增加如下内容实现:
dontPrintUnits true
下一步是在 Cacti 中绘制整个文件系统,最简单的方法是在 snmpd.conf 中增加如下内容:
- includeAllDisks
当你执行"ucd/net - Get Monitored Partitions"数据查询时,所有挂载的文件系统就都能够出现:
如果你希望某个文件系统不在这里被列出,那么,在 snmpd.conf 中增加如下内容:
- ignoredisk /dev/rdsk/c0t2d0
不幸的是,有些老版本的 Net-SNMP 不能完全支持 includeAllDisks 关键字,这种情况下,就只有显式的列出所有你希望绘制的文件系统:
- disk /disk /usrdisk /vardisk /oracle
你甚至还可以指定一个NFS挂载点。
需要注意的是,Net-SNMP 代理仅能够报告那些在它启动之前就已经挂载的文件系统。如果你之后手工挂载了文件系统,那么你需要重新载入 Net-SNMP 代理(发送HUP信号)。在 snmpd.conf 中添加如下内容,你也可以绘制进程信息:
- proc httpd
结果可以通过 ucdavis.prTabel.prEntry 树获得:
prCount, 以当前查询名称运行的进程的数量
prNames,统计的进程的名称
例如,Apache进程的数量可以通过OID下的 .1.3.6.1.4.1.2021.2.1.5 MIB模块来获取。其他一些有用的模块还有:
mibII/mta_sendmail, 绘制 MTA(Sendmail, Postfix, 等等)的统计信息
diskio, 允许绘制I/O统计信息
ucd-snmp/ImSensors, 硬件监控信息(仅Linux和Solaris支持)
添加 Mib 模块的方法如下:
- $ ./configure --with-mib-modules="module1 module2"
如果要编译 Net-SNMP 并想制作一个压缩包的形式,可以参照如下步骤:
- $ ./configure --with-your-options$ make# mkdir /usr/local/dist# make install prefix=/usr/local/dist/usr/local exec_prefix=/usr/local/dist/usr/local# cd /usr/local/dist# tar cvf /tmp/net-snmp-5.3.1-dist.tar usr# gzip /tmp/net-snmp-5.3.1-dist.tar# rm -rf /usr/local/dist
现在你可以拷贝 /tmp/net-snmp-5.3.1.-dist.tar.gz 到其他的服务器,并且在根目录下解压缩(所有的文件都会被释放到 /usr/local )。
【编辑推荐】