最近在进行一个新的项目,在上线的时候需要监控单台rhel 5.4的机器,以前一直使用nagios与cacti进行监控,但最近朋友推荐monitorix这个软件,所以我在测试的环境里部署了并进行测试,发现能监控的内容很多,很全面,而且安装简单,但monitorix这个还是比较适合单机的linux进行监控,所以是否使用monitorix来监控主机还是需要我们自己来根据实际情况进行选择,以下是monitorix的介绍。

Monitorix并不包含插件系统但是内置支持监控CPU、进程、内存、文本切换、温度、风扇速度、磁盘IO、网络流量、需求服务如POP3HTTP、中断行为和连接到SSHSamba的用户数量。

1、安装依赖库

先安装依赖的库与组件

  1. [root@master soft]#yum -y install httpd rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI 
如果yum安装不成功,换下面的yum源重新安装
  1. [root@master soft]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
  2. [root@master soft]# rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
然后在yum安装依赖库
2、安装monitorix
下载
  1. [root@master soft]# wget http://www.monitorix.org/monitorix-2.5.1-1.noarch.rpm
安装
  1. [root@master soft]# rpm -Uvh monitorix-2.5.1-1.noarch.rpm
启动
  1. [root@master soft]# /etc/init.d/monitorix start
  2. Starting monitorix: [ OK ]
3、修改http.conf
为了打开montiorix的网页,需要在httpd.conf里添加以下参数
  1. Alias /monitorix/ "/usr/share/monitorix/"
  2. <Directory "/usr/share/monitorix">
  3. DirectoryIndex index.php index.html index.htm
  4. Options Indexes FollowSymLinks
  5. AllowOverride None
  6. Order allow,deny
  7. Allow from all
  8. </Directory>
  9. <Directory /usr/share/monitorix/cgi-bin/>
  10. DirectoryIndex monitorix.cgi
  11. Options ExecCGI
  12. order deny,allow
  13. deny from all
  14. allow from all
  15. </Directory>
然后重启httpd
  1. [root@master soft]# service httpd restart
4、查看页面
通过http://localhost/monitorix来查看
刚开始打开的页面为

选择本机(local host),所有的都进行监控并产生拓扑,然后选择以日的方式进行展现
5、监控多台主机
先修改配置文件
  1. [root@master soft]# vim /etc/monitorix.conf
然后大约在613行
  1. 613 our $MULTIHOST = "N";
  2. 614 our $MULTIHOST_FOOTER = "Y";
  3. 615 our $MULTIHOST_IMGS_PER_ROW = "2";
  4. 616 our @REMOTEHOST_LIST = (
  5. 617 "server 1", "http://www.example.com",
  6. 618 "server 2", "http://10.0.0.1",
  7. 619 "server 3", "http://192.168.0.100:8080",
  8. 620 );
加入有4个机器监控,需要把multihost修改为y,在remotehost_list建立远程的主机列表,那么可以这样写
  1. 613 our $MULTIHOST = "Y";
  2. 614 our $MULTIHOST_FOOTER = "Y";
  3. 615 our $MULTIHOST_IMGS_PER_ROW = "2";
  4. 616 our @REMOTEHOST_LIST = (
  5. 617 "server 1", "http://10.1.88.188",
  6. 618 "server 2", "http://10.1.88.189",
  7. 619 "server 3", "http://10.1.88.20",
  8. 620 "server 4", "http://10.1.88.27",
  9. 621 );
然后保存并重启monitorix
  1. [root@master soft]# service monitorix restart
  2. Stopping monitorix: [ OK ]
  3. Starting monitorix: [ OK ]
这样就能监控多台主机了
效果图如下

比如我们监控server3

那么就能看的server 3的以下内容

只能看系统的负载,如果想看其他的也可以,但需要在首页里进行选择,比如查看磁盘的io

那么就能显示以下内容

对于多个监控来说,被监控机器也必须按照monitorix与httpd,并且启动才能在主监控机里监控到相应的信息;但如果查看远程的主机的监控信息的时候,一次只能查看单一的信息表,很麻烦,但软件就是这样设置,也没用办法进行修改,所以如果使用monitorix,而且需要监控远程主机的话,建议直接在每台主机里安装monitorix,同时通过每台主机的web来浏览本机的监控,这样能一次性查看所有的信息图;
下面是单机的效果图:
下图为系统的使用率

使用uptime来进行检测
下图为CPU使用率

里面包括user、nice、i/o等待等,非常的全面
下图为文件系统使用率与i/o活动

可以展现根分区、交换分区与boot分区的使用率,还有硬盘活动使用率
下图为网络的使用率

可以看得eth0网卡的使用率、报数与网络错误
下图也为网络的流量图

下图为系统的服务请求

可以看得ssh、ftp、telnet、samba等
下图为用户登录的数量图

下图为查看设备的使用

可以查看每个设备的使用

以上就是Monitorix的安装、配置,我个人感觉,Monitorix在进行单机监控的时候,比cacti跟全面、监控的内容更多,但如果监控多台机器的时候,还是cacti的更好,最后如何的选择,还是需要根据我们自己的实际环境、要求来进行选择。