FREEBSD8 下 Nginx + SNMP + MRTG 的安装与配置
在 FREEBSD8 上安装 nginx + snmp + mrtg
还是相对简单的,因为有 PORTS 的帮助,使得很多工作得以简化。不过,网络上的教程要么太陈旧,要么将安装过程描述得过于顺利,下面我将贴出自己的安装过程,供有需要的朋友参考。Nginx 的安装过程在此就不再赘述了,因为最终使用 Nginx 的目的只是将所有的监测结果展示出来,相当于在 Nginx 下添加一个新的虚拟主机而已。
一、安装 SNMP
通过 PORTS 安装
首先,我们通过 PORTS 来安装 SNMP
:
cd /usr/ports/net-mgmt/net-snmp
make install
安装完成后,在 /etc/rc.conf
中添加以下内容,以确保开机时启动 SNMP
服务:
snmpd_enable="YES"
snmpd_flags="-a "
snmpd_pidfile="/var/run/snmpd.pid"
snmptrapd_enable="YES"
snmptrapd_flags="-a -p /var/run/snmptrapd.pid"
使用你习惯的文本编辑器修改文件 /usr/local/share/snmp/snmpd.conf
,添加以下内容(如果该文件不存在则新建,这一点非常重要):
rocommunity public
添加上述内容是为了让 SNMP
能够允许 public
用户读取相应的信息。确认添加完成后,启动服务:
/usr/local/etc/rc.d/snmpd start
至此,SNMP
的简单安装就完成了。需要注意的是,SNMP
是监控系统的基础支撑,如果 SNMP
没有安装好,那么更高层的 MRTG
、Nagios
等软件就无法通过 SNMP
获取相应的系统信息,也就无法达到监控的目的。
二、安装 MRTG
同样通过 PORTS 进行 MRTG
的安装:
cd /usr/ports/net-mgmt/mrtg
make install
安装好之后,首先创建一个用于存放信息文件的目录,也就是要在 Nginx 下新添加的虚拟主机的根目录,这里我新建的是 /www/mrtg
。然后在 Nginx 的配置文件中添加以下内容(其中红色部分就是你后续访问监控状态的域名):
server
{
listen 80;
server_name info.net;
access_log /var/log/nginx/access-info_net.log;
location /{
root /www/mrtg;
index index.html;
}
}
保存上述配置后,运行 nginx -s reload
重新加载配置。至此,MRTG
的安装和 Nginx 的配置就完成了。
三、配置 MRTG
首先,进入 MRTG
的配置目录 /usr/local/etc/mrtg
,使用以下命令新建一个配置文件(其中红色部分可以修改为你服务器的相应 IP):
cfgmaker public@127.0.0.1 > mrtg.cfg
这里的 public
是访问 SNMP
的用户名,如果按照前面设置的 rocommunity public
,那么就是 public
,如果你修改了用户名,则使用你设置的用户名;127.0.0.1
是本机地址,也可以使用域名,但推荐使用固定 IP,使用久了你就会明白这样做的好处;mrtg.cfg
是生成的配置文件的存储位置。
注意:如果你的 SNMP
配置正常,那么创建新配置文件的过程不会报错,如果出现错误,请根据提示修改相应语句,尤其是 SNMP
的配置。
如果你成功生成了 mrtg.cfg
,那么恭喜,到目前为止你的配置没有问题。不过先别着急,还需要在 mrtg.cfg
中添加以下内容:
LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt
WorkDir: /www/mrtg
Language: chinese
LoadMIBs
的含义在此暂不解释,WorkDir
就是之前设置的 Nginx 虚拟主机的目录,将 Language
设为 chinese
是为了让监控结果以中文显示。当然,很多网友会在 mrtg.cfg
中添加更多内容来增强监控功能(比如监控 CPU、磁盘、进程、uptime 等)。就我的理解,如果把 SNMP + MRTG
看作是一个 PHP + MySQL
程序,那么 mrtg.cfg
相当于一个模板,MRTG
是一整套模板引擎,SNMP
则是 MySQL
数据库。MRTG
通过解析 mrtg.cfg
调用 SNMP
数据并生成相应的前台页面。
接下来生成首页:
indexmaker --title "Ecjtu.net" --output=/www/mrtg/index.html mrtg.cfg
这里 --title
后面的内容是页面的标题,--output=
的值是生成文件的目录位置,mrtg.cfg
是刚才生成并修改过的配置文件。
然后测试生成实时数据:
/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
实际上,每次执行该命令都是 MRTG
从 SNMP
中读取一次数据并将数据存储到工作目录中。由于权限问题,这个命令在执行的前三次可能会报错,若执行第四次之后不再报错,那么恭喜你,MRTG
的配置完成。
最后,将生成实时数据的命令添加到 crontab
中,使其每隔五分钟运行一次。在 /etc/crontab
中添加以下内容:
*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
至此,FREEBSD8 下的 Nginx + SNMP + MRTG
监控服务就配置完成了。打开配置好的虚拟主机,你就可以看到相应的图表了:
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »