如何安装配置Collectd和Collectd-Web监控服务器资源?

译文
网络 网络管理 网络运维
本教程将介绍Collectd服务和Collectd-web界面在基于RHEL/CentOS/Fedora和Ubuntu/Debian的系统上的安装过程,只需要进行极少的配置,就可以运行服务,并启用Collectd服务插件。

Collectd-web是一款基于RRDtool(轮循数据库工具)的Web前端监控工具,它能够解读并以图形化方式输出由Linux系统上的Collectd服务收集的数据。

Collectd服务在默认情况下随带一大批可用插件,这些插件接入其默认的配置文件;一旦你安装了软件包,其中一些插件在默认情况下已经被激活。

Collectd-web CGI脚本可解读并生成图形化的html页面统计信息,用Apache CGI网关即可执行,Apache Web服务器端只需要极少的配置。

然而,附有所生成统计信息的图形化Web界面也可以由Python CGIHTTPServer脚本提供的独立式Web服务器来执行,该脚本随主Git软件库预先安装。

本教程将介绍Collectd服务和Collectd-web界面在基于RHEL/CentOS/Fedora和Ubuntu/Debian的系统上的安装过程,只需要进行极少的配置,就可以运行服务,并启用Collectd服务插件。

第1步:安装Collectd服务

1. 基本上来说,Collectd守护程序的任务就是在它所运行的系统上收集并存储数据统计信息。Collectd程序包可以从默认的基于Debian的发行版软件库下载和安装,只要执行下面这个命令:

在Ubuntu/Debian上:

# apt-get install collectd [On Debian based Systems]

将Collectd安装到Debian/Ubuntu上

将Collectd安装到Debian/Ubuntu上

在RHEL/CentOS 6.x/5.x上:

在基于红帽的较旧系统(比如CentOS/Fedora)上,你先需要启用系统下的epel软件库,然后你才能从epel软件库安装collectd程序包。

# yum install collectd

在RHEL/CentOS 7.x上:

在最新版本的RHEL/CentOS 7.x上,你可以从默认的yum软件库安装和启用epel软件库,如下所示。

# yum install epel-release
# yum install collectd

将Collectd安装到CentOS/RHEL/Fedora上

将Collectd安装到CentOS/RHEL/Fedora上

注意:对Fedora用户而言,不需要启用任何第三方软件库,只要运行yum命令,即可从默认的yum软件库获得collectd程序包。

2. 一旦程序包安装到了你的系统上,运行下面这个命令,以便启动服务。

# service collectd start  [On Debian based Systems]
# service collectd start [On RHEL/CentOS 6.x/5.x Systems]
# systemctl start collectd.service [On RHEL/CentOS 7.x Systems]

#p#

第2步:安装Collectd-Web和依赖项

3. 在开始导入Collectd-web Git软件库之前,你先需要保证Git软件包和下列所需的依赖项已安装到你的机器上:

----------------- On Debian / Ubuntu systems -----------------
# apt-get install git
# apt-get install librrds-perl libjson-perl libhtml-parser-perl

将Git安装到Debian/Ubuntu上

将Git安装到Debian/Ubuntu上

----------------- On RedHat/CentOS/Fedora based systems -----------------
# yum install git
# yum install rrdtool rrdtool-devel rrdtool-perl perl-HTML-Parser perl-JSON

安装Git和依赖项

安装Git和依赖项

第3步:导入Collectd-Web Git软件库,并修改独立式Python服务器

4. 下一步,从Linux树状层次结构选择目录,并更改成想要导入Git项目的系统路径(你可以使用/usr/local/ path),然后运行下面这个命令,复制Collectd-web git软件库:

# cd /usr/local/
# git clone https://github.com/httpdss/collectd-web.git

使用Git复制Collectd-Web

使用Git复制Collectd-Web

5. 一旦Git软件库导入到你的系统中,只管进入到collectd-web目录,列出目录内容,以便找到Python服务器脚本(runserver.py),下一步会修改该脚本。此外,为下列CGI脚本:graphdefs.cgi添加执行权限。

# cd collectd-web/
# ls
# chmod +x cgi-bin/graphdefs.cgi

设置执行权限

设置执行权限

6. Collectd-web独立式Python服务器脚本默认情况下已配置成运行、只绑定回送地址(127.0.0.1)。

为了从远程浏览器访问Collectd-web界面,你需要编辑runserver.py脚本,并将127.0.1.1 IP地址改成0.0.0.0,那样才能绑定所有的网络接口IP地址。

如果你只想绑定某个特定的接口,那么使用该接口的IP地址(不建议使用这个选项,以防网络接口地址由DHCP服务器动态分配)。使用下列屏幕截图,了解最后的runserver.py脚本应该看起来是啥样:

# nano runserver.py

配置Collect-web

配置Collect-web

如果你想使用8888之外的另一个网络端口,修改PORT变量值。#p#

第4步:运行Python CGI独立式服务器,浏览Collectd-web界面

7. 你修改了独立式Python服务器脚本IP地址绑定后,只管启动后台服务器,为此只要执行下面这个命令:

# ./runserver.py &

另外一个办法就是,你可以调用Python解释器,启动服务器:

# python runserver.py &

启动Collect-Web服务器

启动Collect-Web服务器

8. 想访问Collectd-web界面,并显示关于你主机的统计信息,不妨打开浏览器,使用HTTP协议,让URL指向你服务器的IP地址和端口8888。

默认情况下,你会看到关于处理器、磁盘使用情况、网络流量、内存、进程及其他系统资源的许多图形,只要点击上Hosts(主机)表单上所显示的主机名称。

http://192.168.1.211:8888

访问Collect-Web面板

访问Collect-Web面板

Linux磁盘监控

Linux磁盘监控

9. 想停止独立式Python服务器,执行下面这个命令,或者可以按Ctrl+c键来取消或停止脚本:

# killall python

#p#

第5步:构建自定义Bash脚本,以管理独立式Python服务器

10. 想更轻松地管理独立式PyhtonCGIServer脚本(启动、停止和查看状态),不妨在系统可执行路径下构建下列collectd-server Bash脚本,并使用下列配置:

# nano /usr/local/bin/collectd-server

将下列内容添加到collectd-server文件。

#!/bin/bash

PORT="8888"
  case $1 in
            start)
 cd /usr/local/collectd-web/
 python runserver.py 2> /tmp/collectd.log &
    sleep 1
    stat=`netstat -tlpn 2>/dev/null | grep $PORT | grep "python"| cut -d":" -f2 | cut -d" " -f1`
            if [[ $PORT -eq $stat ]]; then
    sock=`netstat -tlpn 2>/dev/null | grep $PORT | grep "python"`
    echo -e "Server is  still running:\n$sock"
            else
    echo -e "Server has stopped"
            fi
                    ;;
            stop)
    pid=`ps -x | grep "python runserver.py" | grep -v "color"`
            kill -9 $pid 2>/dev/null
    stat=`netstat -tlpn 2>/dev/null | grep $PORT | grep "python"| cut -d":" -f2 | cut -d" " -f1`
            if [[ $PORT -eq $stat ]]; then
    sock=`netstat -tlpn 2>/dev/null | grep $PORT | grep "python"`
    echo -e "Server is  still running:\n$sock"
            else
    echo -e "Server has stopped"
            fi
                    ;;
            status)
    stat=`netstat -tlpn 2>/dev/null |grep $PORT| grep "python" | cut -d":" -f2 | cut -d" " -f1`
            if [[ $PORT -eq $stat ]]; then
    sock=`netstat -tlpn 2>/dev/null | grep $PORT | grep "python"`
    echo -e "Server is running:\n$sock"
            else
    echo -e "Server is stopped"
            fi
                    ;;
            *)
    echo "Use $0 start|stop|status"
                    ;;
    esac

万一你更改了runserver.py脚本的PORT变量值,就要确保你相应地对该bash文件更改了端口变量。

11. 一旦你构建了collectd-server脚本,添加执行权限,以便能够运行它。现在唯一剩下来的事情就是,以类似管理系统服务的方式来管理Collectd-web服务器,为此执行下列命令。

# chmod +x /usr/local/bin/collectd-server
# collectd-server start
# collectd-server status
# collectd-server stop

如何安装配置Collectd和Collectd-Web监控服务器资源?

Collectd服务器脚本#p#

第6步:启用Collectd守护程序插件

12. 为了激活Collectd服务方面的插件,你必须进入到其主配置文件,该文件位于/etc/collectd/collectd.conf,打开该文件,即可编辑和取消注释,即可以去掉你想激活的插件名称前面的那个#符号。

一旦带插件名称的LoadPlugin语句被取消了注释,你就必须深入搜寻整个文件,找到含有运行所需配置的同一个插件名称。

举例说,下面介绍了如何激活Collectd Apache插件。首先打开Collectd主配置文件,以便编辑:

# nano /etc/collectd/collectd.conf

A. 使用Ctrl+w键,开启nano编辑工具搜索,并在提交搜索的下列终端上输入apache。一旦找到了LoadPlugin apache语句,去掉注释特殊符号#,即可取消注释,如下列屏幕截图所示。

启用Collectd守护程序插件

启用Collectd Apache插件

B. 下一步,键入Ctrl+w键,即可再次搜索,apache应该已经出现在提交的搜索上,按回车键,即可找到插件配置。

一旦找到了apache插件配置(它们看起来类似Apache web服务器语句),取消下列几行的注释,那样最后的配置应该看起来像这样:

  1. <Plugin apache> 
  2.         <Instance "example.lan"> 
  3.                 URL "http://localhost/server-status?auto"  
  4. #               User "www-user"  
  5. #               Password "secret"  
  6. #               VerifyPeer false  
  7. #               VerifyHost false  
  8. #               CACert "/etc/ssl/ca.crt"  
  9. #               Server "apache"  
  10.         </Instance> 
  11. #  
  12. #       <Instance "bar"> 
  13. #               URL "http://some.domain.tld/status?auto"  
  14. #               Host "some.domain.tld"  
  15. #               Server "lighttpd"  
  16. #       </Instance> 
  17. </Plugin> 

为Collectd启用Apache配置

为Collectd启用Apache配置

注意:根据你的服务器主机名称,更换语句字符串。

C. 在你完成文件编辑后,保存文件(Ctrl+o)并关闭文件(Ctrl+x),然后重启Collectd守护程序,让变更内容生效。清空浏览器缓存,重新装入页面,查看Collectd守护程序到目前为止为Apache Web服务器收集的统计信息。

# /usr/local/bin/collectd-server start

Apache监控

Apache监控

想启用其他插件,请访问Collectd维基页面(https://collectd.org/wiki/index.php/Table_of_Plugins)。#p#

第7步:在整个系统范围启用Collectd守护程序和Collectd-web服务器

13. 为了在系统启动时通过Bash脚本自动启动Collectd-web服务器,打开/etc/rc.local文件以编辑,并在exit 0语句前面添加下面这一行:

/usr/local/bin/collectd-server start

启用Collectd守护程序和Collectd-web服务器

在整个系统范围启用Collectd

如果你不使用管理Python服务器脚本的collectd-server Bash脚本,就把rc.conf中的上述行换成下面这一行:

# cd /usr/local/collectd-web/ && python runserver.py 2> /tmp/collectd.log &

然后,执行下列命令,启用这两项系统服务:

------------------ On Debian / Ubuntu ------------------
# update-rc.d collectd enable
# update-rc.d rc.local enable

在系统启动时启用这项服务的另外一种方法就是,借助sysv-rc-conf程序包:

------------------ On Debian / Ubuntu ------------------
# sysv-rc-conf collectd on
# sysv-rc-conf rc.local on
------------------ On RHEL/CentOS 6..x/5.x and Fedora 12-19 ------------------
# chkconfig collectd on
# chkconfig --level 5 collectd on
------------------ On RHEL/CentOS 7.x and Fedora 20 onwards ------------------
# systemctl enable collectd

就这样!事实证明,Collectd守护程序和Collectd-web服务器是Linux服务器的出色监控工具,对系统资源的影响极小,它会生成并显示一些值得关注的机器工作负载方面的图形统计信息;到目前为止唯一的缺点就是,要是不刷新浏览器,统计信息就不会实时显示。

英文:How to Install and Configure ‘Collectd’ and ‘Collectd-Web’ to Monitor Server Resources in Linux

责任编辑:蓝雨泪 来源: 51CTO.com
相关推荐

2009-03-04 09:48:52

安装配置桌面虚拟化Xendesktop

2021-11-24 08:00:00

服务器Web系统

2009-09-17 16:55:02

WSUS服务器

2009-07-02 13:46:17

JSP引擎Web服务器

2020-10-22 08:00:24

ApacheWeb服务器

2009-09-24 14:58:19

打印服务器

2009-09-17 17:37:05

Nis服务器

2010-05-18 13:02:30

2018-04-02 15:07:01

LinuxApacheWeb服务器

2018-08-07 08:54:18

2009-09-17 16:50:23

WSUS服务器

2010-03-02 15:57:24

Fedora CVS服

2015-12-25 14:30:47

LinuxISC DHCP服务器

2020-04-15 20:57:57

NginxWeb服务器

2009-01-10 18:58:52

2009-03-01 14:40:16

LinuxNF安装

2010-02-03 14:28:15

Linux Samba

2011-08-08 14:31:49

服务器

2011-11-22 21:26:59

pfSense配置Web服务器负载均衡

2022-06-14 07:41:21

WEB服务器静态资源
点赞
收藏

51CTO技术栈公众号