yaabb163

  一、简介:

  当公司服务器愈来愈多,规模起来越大时,运维人员了解每台服务器运行状态肯定是不可行的, 此时我们需要一款可以自动收集服务器数据并将所有的数据进行汇总查看工具软件,最好还可以将搜集到数据绘制成曲线图。而Cacti就是基于RRDTool的前端主机性能监控系统。Cacti前端采用PHP代码驱动,通过SNMP获得被监控主机数据信息,使用RRDTool存储数据,并根据这些数据绘制图形报表。选用Cacti,我们不必关心RRDTool底层操作就可以通过Web页面直接查看被监控主机的性能图表。 Cacti内置的用户管理工具可以创建多个用户并赋予不同操作权限,每个用户可以独立管理与维护自己监控设备。Cacti监控原理图,管理员通过浏览器Cacti,通过Cacti管理界面设置定义图表、模版、账户以及被监控节点信息(被监控节点可以是路由,交换,服务器,应用程序),所有的Cacti管理数据被存储在MySQL数据表中,RRDTool使用SNMP收集被监控节点数据,这些数据被存储在rrd数据库文件中,最终数据生成 图表显示在Cacti管理界面中。

 

 

 

 

 二、Cacti监控应用案例:

  1、被监控端配置

  Cacti监控其他主机是通过简单网络管理协议 (SNMP)收集被监控端的数据信息的,因些被 监控端服务器都需要安装net-snmp以及依赖包lm_sensors,并设置SNMP配置文件。lm_sensors软件可以帮助我们监控硬件信息(如CPU的工作电压等数据),具体步骤如下:

   安装snmp主程序及相关的依赖软件包,被监控主机仅需要修改snmp主配置文件即可。

[root@agent ~]# yum -y install net-snmp lm_sensors

 [root@agent ~]# vi /etc/snmp/snmpd.conf 

  SNMP配置文件主要包括四部分内容需要修改。第一步,映射通信名称到安全用户名称;第二步,将用户加入 到组中;第三步,为组创建systemvies视图;第四步,创建all视图赋予组只读访问权限。主配置文件设置完成后重启服务,即可通过客户端访问该服务器获得系统信息,SNMP使用端口号为UDP161端口以及TCP199端口,我们需要在防火墙规则中开放这些端口数据。

 

[root@agent ~]# service snmpd start
Starting snmpd: [ OK ]
[root@agent ~]# chkconfig snmpd on

 

   当被 监控主机均启动snmpd服务后,可以在Cacti主机上执行snmpwalk 命令验证SNMPD服务是否运行正常。如果出现如下提示,则说明 一切还。

 如果没有安装,需要安装一下snmpwalk 命令 :yum install net-snmp-utils

 [root@puppet ~]# snmpwalk -v 1  192.168.32.201 -c rose0011 system

 

 2、Cacti 是基于PHP的Web 监控管理系统,所以Cacti 监控主机要部署LAMP环境,还需要使用SNMP简单网络管理协议从被 监控主机提取数据,然后使用RRDTool工具保存数据最终生成 图表信息。

   安装相关依赖包软件

  [root@puppet ~]#yum -y install net-snmp net-snmp-devel net-snmp-utils net snmp-libs lm_sensors php-xml zlib libpng freetype cairo-devel pango-devel gd

  因为Cacti的优势在于其丰富图表效果,为了将数据绘制成相应的更加直观图表格式输出,就需要安装RRDTool工具,该软件安装非常简单,configure,make,make install 默认安装即可

  [root@puppet ~]#wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz

  [root@puppet tmp]# tar -xzf rrdtool-1.4.7.tar.gz -C /usr/src/

      [root@puppet tmp]# cd /usr/src/rrdtool-1.4.7/

  [root@puppet rrdtool-1.4.7]# ./configure --prefix=/usr/local/

  [root@puppet rrdtool-1.4.7]# make && make install

 

rrdtool安装编译提示错误   make[3]: *** [perl-piped/Makefile] Error 2


解决方法:



yum  -y  install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

其中需要安装PHP

下载 php 软件包:

 http://cn2.php.net/get/php-5.4.14.tar.gz

 

解压

[root@puppet php-5.4.22]# tar -xzf php-5.4.22.tar.gz -C /usr/src

 

安装依赖包

[root@puppet php-5.4.22]# yum -y install gcc gcc-c++ autoconf automake make cmake pcre pcre-devel openssl openssl-devel ncurses-devel libxml2-devel bison zilib-devel libtool-ltdl-devel libtool flex

[root@puppet php-5.4.22]# cd /usr/src/php-5.4.22/ 

[root@puppet php-5.4.22]# ./configure --prefix=/usr/local/php5 \

--with-mysql=/usr/local/mysql/ \

--with-apxs2=/usr/local/apache2/bin/apxs \

--enable-mbstring \

--enable-sockets

 [root@puppet php-5.4.22]# make & make install

 

php编译时出错make: *** [libphp5.la] Error 1

解决办法:

yum -y install libtool*

然后make clean清除已经编译过的内容在重新make && make install

 

 修改Apache 主配置文件httpd.conf以确保该文件中有如下两条指令,这两条指令功能是加载模版并设置文件类型。

 

 

 

 

添加:

AddType application/x-httpd-php .php

 

 

 

 

 

 

 

 针对 :Cacti设置Apache 虚拟主机

  因为基于Web监控平台,而本书Web服务器采用是Apache HTTP Server,因此,需要修改Apache 主配置文件httpd.conf ,通过DirectoryIndex index.php,index.html 指令来默认首页为index.php,去除Include conf/extra/httpd-vhosts.conf指令前#符号。Include指令将读取httpd-vhosts.conf文件内容作为 主配置文件的一部分,并在httpd-vhost.conf文件中加入用来实现监控虚拟主机。

 [root@puppet php-5.4.22]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf 

 

修改php配置文件时区配置

[root@puppet php-5.4.22]# vi /usr/local/php5/lib/php.ini 

 

部署Cacti监控系统,创建Web页面根路径monitor目录,解压Cacti包并移动到Web根路径下,因为Apache 默认以daemon用户及组身份启动,所以需要使用chown命令修改目录权限。

[root@puppet tmp]# wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz

[root@puppet tmp]# tar -xzf cacti-0.8.8a.tar.gz -C /usr/src 

[root@puppet tmp]# mv /usr/src/cacti-0.8.8a/ /usr/local/apache2/htdocs/cacti

[root@puppet tmp]# chown  daemon.daemon  /usr/local/apache2/htdocs/cacti/

 [root@puppet tmp]# /usr/local/apache2/bin/apachectl restart

  

  创建初始化数据库,这里要确保MySQL服务器程序是开启的,通过Cacti软件包内提供的数据库备份文件,在本机生成c acti数据库,创建cactiuser账户,并赋予其访问cacti数据库所有权限,该帐户密码为rose0011

[root@puppet ~]# mysqladmin -uroot -p create cacti

 

 

 [root@puppet ~]# cd /usr/local/apache2/htdocs/cacti/

 [root@puppet cacti]# /usr/local/mysql/bin/mysql -uroot -p cacti < cacti.sql 

 [root@puppet cacti]# mysql -uroot -p

mysql> grant all on cacti .* to cactiuser@localhost identified by \'rose0011\';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

mysql> exit

 

 

设置Cacti配置文件,根据上一步数据库初始化操作所创建的数据库信息,修改Cacti配置文件中数据误国参数资料,需要修改以下内容,

[root@puppet cacti]# vi /usr/local/apache2/htdocs/cacti/include/config.php 

 

 

 

 3、Cacti生成图表信息

  当被监控主机与监控主机都部署完成后,管理员就可以在任意一台office-pc主机上通过浏览器访问Cacti管理界面,配置与管理监控服务器。本例中使用域名访问监控输入http://cacti.example.com:8080 访问监控服务器,如果读者的实验环境中没有搭建DNS服务器,可以通过修改hosts文件实现域名解析。第一次登录Cacti监控页面时会提示进行基本的初始化操作,按以图提示安装Cacti前请仔细阅读相关文档,单击"Next"按钮继续。提示数据库信息并根据实际情况选择是全新安装还是升级。显示Cacti所需要组件信息,如果某些组件未找到,就会以红色显示,图中提示在/usr/bin/php未找到相文件,而本次编译php实际路径为/usr/local/php5/bin/php,将路径修改为正确路径后单击“Next"按钮即可。提示输入账号与密码,Cacti初始帐户名与密码均为admin,输入正确后,系统会提示要求强制修改密码。最后进入 Cacti管理界面。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   登录Cacti管理界面后,如果需要监控其他主机,还需要完成一些简单设置。首先,需要在管理界面中通过Devices菜单 将被监控主机添加进来。其次,要为新添加主机创建监控图形,通过New Grahps菜单创建监控图形时可以根据情况有选择地监控对象主机。最后 ,要创建一棵便于查看图形的图形树,在一棵树下可以加入多个监控对象。

 

 如图所示,进入Devices 菜单后单击”Add"按钮添加被监控的主机,此时系统会要求填写相关表单信息,需要填写的项目描述见下表,填写完成需要项目表单后单击右下解的“Create"按钮,即可创建新的设备主机,同时在下方会出现图形模板及数据查询模板,管理员可以根据实际需要继续添加需要监控的参数

 对象,确定后单击”Save" 按钮保存所有设置,效果如果所示。

 

 

 

 

通过以上操作后,设备主机以及需要监控的性能指标已经创建完成。下面需要通过New Graphs 菜单为监控主机创建图形。进入新建图形界面后在Host列表中选择上一步添加设备 主机,并在需要监控性能模板后点选对钩,设置完成后选择“Create"按钮为被监控设备 添加图形。

(备注:总结一句话,我可以肯定我的snmp poller.php 权限 snmpwalk 测试什么的都没问题,但是监控主机的状态一直是unknow状态,最后得出

添加上主机后等一轮询周期,然后添加一张图片给这个主机,随后开始获取监控信息,当然状态也有从unkonw转为up了,就是因为没有添加监控图像,我汗,这么简单,教训啊,不对,算经验吧,备忘!)

 

 

 

 添加网卡监控

 

 

 Cacti 监控系统最终通过树状列表来查看被监控主机的性能图形,我们可以创建多棵图形树,在每棵图形树下可以插入多个设备 主机的图形信息。Cacti 初始状态有一个名为Default的图形树,本例将创建一棵新图形树,并将监控设备图形添加进来。通过单Graph Trees菜单打开图形树的设置界面,单击"Add"按钮可以添加新图形树,提示输入Name如果单击”Create"按钮,本例使用名称为Web,此进在Graph Trees界面中会出现Default与Web两棵图形树,单击进入Web树中,单击“Add"按钮添加上一步操作中创建图形。

 

 

 

 

 

 

 

 

 

 

 Cacti 监控服务器需要根据以上设置连接所有被监控主机,通过SNMP收集数据信息并最终生成 图形窗口,在Cacti软件包中已经自带了一个用于收集数据的PHP脚本 ,默认Cacti系统需要每五分钟收集一次数据,管理员可以通过计划任务实现每五分钟执行该脚本,也可以手动执行同步数据。

 [root@puppet ~]# /usr/local/php5/bin/php /usr/local/apache2/htdocs/cacti/poller.php

最后 通过Cacti平台的graphs选项卡进入 图形窗口,该窗口将以树状显示,本例创建了一棵名为Web图形树。

 

三、问题:

1、汉字字体在图形中显示不正常(显示文字部分,全部显示为方格”口”)。

(目前测试,按以下方法处理一次后,下次就算把配置修改,图形文字显示也一样正常)

[root@puppet ~]# cd /usr/local/src

下载:

wget http://ftp.twaren.net/local-distfiles/CJKUnifonts/ttf-arphic-ukai_0.1.20060928.orig.tar.gz

解压:

tar zxf  ttf-arphic-ukai_0.1.20060928.orig.tar.gz

cd  ttf-arphic-ukai_0.1.20060928/

cp  ukai.ttf /usr/share/fonts/ukai.ttf

然后在 cacti web界面中 settings -> path -> RRDTool Default Font  输入  /usr/share/fonts/ukai.ttf

 然后再进入 visual ->Default RRDtool 1.2 Fonts->Title Font File  输入  /usr/share/fonts/ukai.ttf

 

 

 

 

 效果:

 

 

分类:

技术点:

相关文章: