redhat下cacti的安装使用

cacti是一套基于PHP,Mysql,SNMP及rrdtools开发的网络流量监测图形分析工具

制图等各方面都很优秀,也支持各种模版的添加,功能很强大,现在下面介绍一下cacti的安装与使用

cacti的主程序下载

Cacti官方网站:www.cacti.net/

cacti-0.8.7e-cn-utf8.tar.gz  (中文版)
cacti-0.8.7g.tar.gz(英文版)

cacti安装需要的一些软件包

rrdtool-1.2.23.tar.gz
net-snmp-5.6.tar.gz
cacti-cactid-0.8.6k.tar.gz
cacti-spine-0.8.7g.tar.gz
(版本大家可以自行选择,不过高版本与低版本都会因自身服务环境不同而出现各种问题,依问题提示解决)

cacti的安装需要有可以提供网站服务的应用,比如apache器,nginx等

因为cacti是以php语言编写的,nginx+php(fast-cgi)+mysql的功能很强大,所以笔者以这个环境下搭建cacti

nginx+php(fast-cgi)+mysql的安装配置请参考另一篇文章

下面安装一些基础软件包

安装Fontconfig
tar -zxvf fontconfig-2.4.2.tar.gz
cd fontconfig-2.4.2
./configure --with-freetype-config=/usr/local/freetype
make && make install
 

安装GD库及相关插件 

tar -zxvf gd-2.0.34.tar.gz
  cd gd-2.0.34
  ./configure --prefix=/usr/local/libgd --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg
编译时显示以下信息:

** Configuration summary for gd 2.0.34:

   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library: yes
   Support for Fontconfig library:   yes
   Support for Xpm library:          no
   Support for pthreads:             yes
(按照上面的提示预安装一些基础软件包,比如png的有libpng-1.2.16.tar.tar等,zlib-1.2.3.tar.gz,freetype-2.3.4 .tar.gz,jpegsrc-1.v6b.tar.gz)

这些软件包都要以在http://oss.oetiker.ch/rrdtool/pub/libs/ 库文件中找到

  make && make install

编辑/etc/ld.so.conf,添加以下几行到此文件中。

    /usr/local/zlib/lib

    /usr/local/freetype/lib

    /usr/local/libjpeg/lib

    /usr/local/libgd/lib

    并执行ldconfig命令,使用动态装入器装载找到共享库
 

编译安装rrdtool及安装配置snmp
安装如下几个rpm包
yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel

安装rrdtool
tar -zxvf rrdtool-1.2.23.tar.gz
./configure --prefix=/usr/local/rrdtool
make && make install

 

安装SNMP
tar -zxvf net-snmp-5.6.tar.gz
./configure --prefix=/usr/local/snmp --enable-developer
然后一直回车
make # make install # ln -s /usr/local/snmp/bin/* /usr/local/bin/

创建snmpd的配置文件,默认情况下它是不存在的
vi /usr/local/snmp/share/snmp/snmpd.conf

写入以下内容

#       sec.name  source          community
com2sec notConfigUser  127.0.0.1       public
com2sec notConfigUser  192.168.20.185       public   ##监听的服务器IP与community号
# Second, map the security name into a group name:
#       groupName      securityModel securityName
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
# Third, create a view for us to let the group have rights to:
# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.2
view    systemview    included   .1.3.6.1.2.1.25.1.1
view    all    included   .1
# Finally, grant the group read-only access to the systemview view.
#       group          context sec.model sec.level prefix read   write  notif
#access  notConfigGroup ""      any       noauth    exact  mib2 none none
access  notConfigGroup ""      any       noauth    exact  all none none
##       sec.name  source          community
#com2sec local     localhost       COMMUNITY
#com2sec mynetwork NETWORK/24      COMMUNITY
com2sec notConfigUser  default  public
com2sec     *.*.*.0   192.168.20.185/24 public
##     group.name sec.model  sec.name
group MyRWGroup  any        local
group MyROGroup  any        mynetwork
group notConfigUser  any        zcom
#group MyRWGroup  any        otherv3user
##           incl/excl subtree                          mask
view all    included  .1                               80
view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc
##                context sec.model sec.level prefix read   write  notif
access MyROGroup ""      any       noauth    0      all    none   none
access MyRWGroup ""      any       noauth    0      all    all    al

(修改需要监听的服务器IP)

经过配置后,现在可以启动snmpd
 /usr/local/snmp/sbin/snmpd

关闭,则可以直接kill这个进程
killall -9 snmpd

加入到开机自启动
echo "/usr/local/snmp/sbin/snmpd" >> /etc/rc.d/rc.local

安装cacti和Cactid
tar -zxvf cacti-0.8.7g.tar.gz
mv cacti-cacti-0.8.7g /data/web/cacti

vi /data/web/cacti/include/config.php

修改内容

database_type = "mysql";
$database_default = "cacti";
$database_hostname = "127.0.0.1";
$database_username = "cacti";
$database_password = "cacti";

添加cacti用户,将rra目录的所有权给cacti用户
groupadd cacti
useradd cacti -g cacti
chown -R cacti.cacti /data/web/cacti/rra
为cacti用户添加cron任务
su – cacti  (一定要在cacti用户下)
crontab –e
*/5 * * * * /usr/local/php/bin/php  /data/web/cacti/poller.php > /dev/null 2>&1

每5分钟执行一次
首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限
在cacti用户模式下执行
/usr/local/php/bin/php  /data/web/cacti/poller.php
 

安装Cactid
确认安装了
net-snmp-devel(需要编译安装net-snmp时添加--enable-developer选项)
mysql            
mysql-devel    (mysql源文件编译安装后默认支持)
openssl-devel  (Redhat默认安装)

tar -zxvf cacti-cactid-0.8.6k.tar.gz
cd cacti-cactid-0.8.6k
./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/snmp
make && make install

vi /usr/local/cactid/etc/cactid.conf      //修改cactid配置文件
DB_Host        127.0.0.1
DB_Database    cacti
DB_User        cacti
DB_Pass        cacti

安装安装cacti-spine cacti

本来不打算安装spine的,就使用cmd.php来完成数据采集,可是后来发现cmd.php采集存在很大的延迟,执行效率太低了。两厢比较了一下,从添加device好到设备up,spine只需要不到一分钟,而cmd等的时间较长,超过10分钟。

# tar -zxvf cacti-spine-0.8.7e.tar.gz
# cd cacti-spine-0.8.7e
# ./configure --with-mysql=/usr/local/mysql/
# make && make install


vi /usr/local/spine/etc/spine.conf
DB_Host         127.0.0.1
DB_Database     cacti
DB_User         cacti
DB_Pass         cacti

mysql设置
进入mysql
/usr/local/mysql/bin/mysql -u root -p -S /var/lib/mysql/mysql.sock

GRANT ALL PRIVILEGES ON cacti.* TO 'cacti'@'192.168.20.185' IDENTIFIED BY 'cacti';

导入cacti的数据源
cd /data/web/cacti
/usr/local/mysql/bin/mysql -u root -p -S /var/lib/mysql/mysql.sock cacti < cacti.sql

 

安装完成
从浏览器登陆:http://192.168.20.185/    #在nginx或者其它网站服务应用上指定catic的目录,开启服务就可以访问了

默认账号与密码均是admin

cacti的基础设置 

 Console>Settings>general

设置cacti用到的命令路径
Console>Settings>patch

snmpwalk Binary Path          /usr/local/ bin/snmpwalk

snmpget Binary Path         /usr/local/ bin/snmpget

RRDTool Binary Path         /usr/local/ bin/rrdtool

PHP Binary Path              /usr/local/bin/php

Cacti Log File Path           /data/logs/cacti.log

Spine轮询器路径:  /usr/local/spine/bin/spine

RRDTool应用程序版本  :RRDTool 1.2.*


Console>Settings>Poller
选择spine


添加设备

devecs>>add>>

选择相应的监听模版

以上就纳入了nginx的状态,CPU的使用率,load的负载,内存的使用跟接口流量

记得save保存一下

选择页面右上角的添加生成图片--create graphs for this host

之后选择相应的监听接口就行了,保存之后你就可以在graphs managerment中找到生成的相应图片

 

有时候图片不能正常显示是因为你的设备刚添加进去,每5分种执行一次计算的时候你的cacti还没有在你的rra下生成rrd

因为我的时间设置的不同步了,所以提示错误,可以忽略

到此,完整的cacti安装及初步使用步骤就结束了

如果中间安装的时候出现问题,根据提示来判断,可能是软件包的版本不对应,换个高一点的版本,或者你的动态库缺少某个软件包导致

某些知识摘取其他网上资源

 

附上一些遇到的问题

/usr/local/php/bin/php /data/web/cacti/poller.php

提示以下错误时的解决方法

/usr/local/php/bin/php: /usr/local/lib/libpng12.so.0: no version information available (required by /usr/local/php/bin/php)

 

解决方法就是

cd /usr/local/lib

mv libpng12.so.0 libpng12.so.0.backup

ln -sf /usr/lib/libpng12.so.0 libpng12.so.0

这就是libpng默认安装的时候会出现的一些问题

你可能感兴趣的:(redhat,职场,cacti,休闲)