Cacti中文版在Centos5(Rhel5)上的安装

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/01/12/centos5-cacti.html

1.基本安装
cacti是运作在apache+php+mysql+net-snmp工具集+rrdtool这样的一个工作环境之下,所以我们先要做一个基本的工作的环境

记的安装前先安装rpm的扩展包,安装方法见我的另外一个文章"rpm的高级管理"

1
#yum -y install mysql mysql-server php-mysql httpd php

上面完成一个php,http,mysql的环境,接下来安装要用到的包

1
#yum -y install php-pdo lm_sensors net-snmp php-snmp net-snmp-utils perl-Net-Daemon perl-PlRPC perl-DBI rrdtool perl-rrdtool perl-DBD-MySQL

安装完,启动相关的程式,和设置开机启动

1
2
3
#chkconfig mysqld on
#chkconfig httpd on
#server mysqld start

2.数据库设置

准备数据库,和设置权限,安装cacti。

1
2
3
4
5
#mysql -uroot -p
mysql>create database cacti default character set utf8;
mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON cacti.* TO cacti@localhost IDENTIFIED BY 'passwd';
mysql>flush privileges;
mysql> \q

3.下载安装

下载中文的cacti,解压到/var/www/cacti.后进入cacti的目录.导入cacti的数据结构

下载地址: cacti-0.8.7e-cn-utf8.tar.gz

1
2
#cd /var/www/cacti
#mysql -u cacti -p cacti < cacti.sql

修改配置文件

1
2
3
4
5
6
7
#vim /var/www/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "passwd";
$database_port = "3306";

添加cacti用户

1
2
$useradd cacti -d /var/www/cacti -s /bin/false
$chown -R cacti /var/www/cacti/rra /var/www/cacti/log

这个上面可能添加不行试试:

1
#chown -hR cacti /var/www/cacti/rra /var/www/cacti/log

4. 配置httpd服务器的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
#vim /etc/httpd/conf.d/cacti.conf
Alias /cacti /var/www/cacti
<Directory /var/www/cacti>
DirectoryIndex index.php
AllowOverride all
order deny,allow
deny from all
allow from all
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>

重起httpd的服务,让上面的修改生效

1
#/etc/init.d/httpd restart


5.测试安装是否正常

打开下面的url.
http://server.ip.or.name/cacti
打开网站,点next.选择new install,使用一路回车法.最后完成
最后的用户名为: admin 密码为: admin

6.收尾

让系统每5分钟收集,需要

1
2
crontab -e
*/5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null

也可手工跑一次:/var/www/cacti/poller.php

7。字体在图形中显示不正常的解决方法

下载并安装cjkuni-fonts中文字体,字体名ukai.ttf,下载地址 http://ftp.tw.debian.org/debian/pool/main/t/ttf-arphic-ukai/ttf-arphic-ukai_0.1.20060928.orig.tar.gz

1
2
3
#tar zxvf ttf-arphic-ukai_0.1.20060928.orig.tar.gz
#cd ttf-arphic-ukai-0.1.20060928/
#cp ukai.ttf /usr/share/fonts/ukai.ttf

安装完成后注意在"设置"中更改下面两个必改项. 常规->RRDTool应用程序版本 改为1.2.x,默认为1.0.x.不改可能图像不能正常显示出来. 路径->RRDTool默认字体路径 改为上面安装的ukai.ttf的文件路径,如/usr/share/fonts/ukai.ttf

8,被监控主机snmp文件设置

被监控主机需要配置snmp.(谢谢网友园园的提醒)

 

1
#vi /etc/snmp/snmpd.conf

更改

1
com2sec notConfigUser default public

改为

1
com2sec notConfigUser 127.0.0.1 public

2、更改

1
access notConfigGroup "" any noauth exact systemview none none

改为

1
access notConfigGroup "" any noauth exact all none none

3、

1
#view all included .1 80

将前面的 # 注释 去掉。 保存退出

 

上面这几个地方很重要,注意了,不然得不到数据

 9.测试snmp是否正常

1
#snmpwalk -c public -v 2c localhost

1
2
3
#snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
 
IP-MIB::ipAdEntIfIndex.61.xxx.xxx.xxx = INTEGER: 2 IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1 IP-MIB::ipAdEntIfIndex.172.xxx.xxx.xxx = INTEGER: 3

也可以用snmpd -f -Le 命令查看当前有没有出什么错

FQA:

1如果磁盘监控不到

请使用Cacti 中自带的模板 ucd/net – Get Monitored Partitions ,然后在被监控的机器的snmpd.conf(/etc/snmp/snmpd.conf)中加入 

disk / (比如我们监视根分区)

然后可以用snmpwalk -v 1 -c public 192.168.0.52 dsktable这个命令来检查

2.如果图出不来

1.检查你的主机是不是活的,一定要能测试通过,状态是活的才行,可以用命令来检查是否有输出
2.另外cacti默认选择的rrdtool的版本是RRDTool 1.1.x 的!—-点击Console->System Utilities->Technical Support->RRDTool Version选择RRDTool 1.2.x,不然有可能出不了图.

3.网卡流量达到100M以上图像有问题?
这与snmp的版本有关,snmp1的数据是32位而snmp2c以上是64位(AS4默认是不支持64位的)。

1.首先要确定你使用的是snmp2c或以上,是否支持64位MIB库.如下如果返回的有几行含有“Counter64:”的话.那么表明是支持的。

1
2
3
4
5
#snmpwalk -c public -v 2c localhost IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter64: 3174458
IF-MIB::ifHCInOctets.2 = Counter64: 1585772167
IF-MIB::ifHCInOctets.3 = Counter64: 35696997927
IF-MIB::ifHCInOctets.4 = Counter64: 0

2.然后点击Cacti的页面:“Console ->; Create New Graphs ->;Data Query”。你在下面看到“Select a graph type:”的下拉菜单(默认是“In/Out bits”),要取64bits的数据所以将其改为“In/Out bits(64-bit Counters)”,然后选择你要监测的网卡即可。另外,该监测点的“Maximum Value”必须设置为100M以上。

3.设备管理中,选择的主机中的SNMP版本,一定要是2.

4.RedHat AS4的(net-snmp5.2以下不支持)snmp不支持64位计数器的解决方法(本方法由嘻嘻哈哈提供 http://www.haw-haw.org/node/654)

可以下载一个src.rpm再在/usr/src/redhat/SPECS/net-snmp.spec文件的configure下加上一句–enable-mfd-rewrites \
然后再

1
2
3
#cd /usr/src/redhat/
#rpmbuild -bb SPECS/net-snmp.spec
生成一堆的x86_64.rpm在/usr/src/redhat/RPMS/x86_64下,如果是32位的就在i386下.在安装就行了.

注 :64位计数器是在net-snmp 5.2上新加入的IF-MIB ,它可以转换更多的 MIB 对象 (e.g. ifXTable with 64-bit ifHC* counters). 所有象RHEL4,Centosd4上,如果使用默认的5.2的src包,就算加入了enable-mfd-rewrites其实也是不行的.所以要下载5.2的src包来安装.

下载地址

net-snmp5.2.src.rpm

这个包中默认就加入了enable-mfd-rewrites.下载后,直接用上面方法中的rpmbuild -bb SPECS/net-snmp.spec编译后安装就行.

这个有时还得不到数据,要注意你的snmpd.conf是否配置对了.其中的如下,read选项要是全部.

1
access  notConfigGroup ""      any       noauth    exact  <strong>all</strong> none none

如果不想编译,可以下载在这下载redhat4的rpm直接安装就行了

http://ftp.freshrpms.net/pub/freshrpms/redhat/testing/EL4/net-snmp/

 

 

17 条留言

我要留言
  • 1 F

    完全按上面所配,图形不能显示  |  2008/01/12 00:13 上午  

    完全按上面所配,图形不能显示,
    运行/var/www/cacti/poller.php,提示出错.
    /var/www/cacti/poller.php: line 1: ?php: 没有那个文件或目录
    /var/www/cacti/poller.php: line 2: /bin: is a directory
    /var/www/cacti/poller.php: line 3: +—————————————————————– ——–+: command not found
    /var/www/cacti/poller.php: line 4: syntax error near unexpected token `|’
    /var/www/cacti/poller.php: line 4: ` | Copyright (C) 2004-2007 The Cacti Group |’

  • 2 F

    yuke  |  2008/01/12 00:13 上午  

    我的按照这个包装好,也是报这个问题,晕死了,高手能解答下不?root@www:/var/lib/cacti# /usr/share/cacti/site/poller.php ?
    /usr/share/cacti/site/poller.php: line 1: ?php: No such file or directory
    /usr/share/cacti/site/poller.php: line 2: /bin: is a directory
    /usr/share/cacti/site/poller.php: line 3: +————————————————————————-+: command not found
    /usr/share/cacti/site/poller.php: line 4: syntax error near unexpected token `|’
    /usr/share/cacti/site/poller.php: line 4: ` | Copyright (C) 2004-2007 The Cacti Group |’
    root@www:/var/lib/cacti# /usr/share/cacti/site/poller.php ?
    /usr/share/cacti/site/poller.php: line 1: ?php: No such file or directory
    /usr/share/cacti/site/poller.php: line 2: /bin: is a directory
    /usr/share/cacti/site/poller.php: line 3: +————————————————————————-+: command not found
    /usr/share/cacti/site/poller.php: line 4: syntax error near unexpected token `|’
    /usr/share/cacti/site/poller.php: line 4: ` | Copyright (C) 2004-2007 The Cacti Group |’

  • 3 F

    yuke  |  2008/01/12 00:13 上午  

    知道原因了

    poller.php文件最顶 一行写入

    #!/usr/bin/php -q

    然后保存,退出,即可搞定!

  • 4 F

    miladuo  |  2008/01/12 00:13 上午  

    哥们,按你的文章配置,我最开始的一步都走不下去,帮忙分析一下,谢谢了。
    [root@localhost ~]# yum -y install mysql mysql-server php-mysql httpd php
    Loading “fastestmirror” plugin
    Loading “installonlyn” plugin
    Setting up Install Process
    Setting up repositories
    Could not retrieve mirrorlist http://apt.sw.be/redhat/el5/en/mirrors-rpmforge error was
    [Errno 4] IOError:
    Error: Cannot find a valid baseurl for repo: rpmforge

    我按你的上一篇文章做了,安装了rpmforge-release-0.3.6-1.el5.rf.i386.rpm,但是还是不行啊。

  • 5 F

    扶凯  |  2008/01/12 00:13 上午  

    非常不错能自己发现和解决

  • 6 F

    扶凯  |  2008/01/12 00:13 上午  

    Could not retrieve mirrorlist http://apt.sw.be/redhat/el5/en/mirrors-rpmforge error was
    你先看看能不能连接这个网站,要不找个最新的rpmforge

  • 7 F

    okhwyy  |  2008/01/12 00:13 上午  

    需要配置snmp

    root@Bleach usr]# vi /etc/snmp/snmpd.conf
    更改 1、com2sec notConfigUser default public
    改为:com2sec notConfigUser 127.0.0.1 public
    2、access notConfigGroup “” any noauth exact systemview none none
    改为:access notConfigGroup “” any noauth exact all none none
    3、#view all included .1 80
    将前面的 # 注释 去掉。
    保存退出 :wq

    php /var/www/cacti/poller.php

  • 8 F

    游客  |  2008/01/12 00:13 上午  

    没有apache的安装!!

  • 9 F

    viva  |  2008/01/12 00:13 上午  

    感谢搂主太强了,,在当今社会高效率完成任务,才是最好的!!

  • 10 F

    youporn  |  2008/01/12 00:13 上午  

    hi great site nice work thanks youporn cim =) site like redtube see u

  • 11 F

    rinkey  |  2008/01/12 00:13 上午  

    [root@localhost /]# server mysqld start
    bash: server: command not found
    大虾,这是怎么回事?

  • 12 F

    admin  |  2008/01/12 00:13 上午  

    你们直接运行php当然不行,要在运行的命令前加入php,也就是指定使用 php来运行程序
    #php /var/www/cacti/poller.php

  • 13 F

    admin  |  2008/01/12 00:13 上午  

    httpd就是apache,老兄

  • 14 F

    storysky  |  2008/01/12 00:13 上午  

    博主,我有个问题请教,我的cacti现在启动了,而且图片都很正常,
    可就是没有流量,我不知道会是什么原因导致的

  • 15 F

    admin  |  2008/01/12 00:13 上午  

    #snmpwalk -c public -v 2c Hostname 这个命令来测试是否能拿到远程的数据

  • 16 F

    wgkgood  |  2008/01/12 00:13 上午  

    博主您好!我在RedHat企业5上面装的cacti,装完后只能监控本机,不能监控其他服务器
    在创建设备点的时候总是出现SNMP error 请您指教!谢谢您 我按照我的博客里面搭建的
    wgkgood.blog.51cto.com

Trackbacks

  1. 淡淡的牛 » Blog Archive » CentOS5.0上用yum方式安装Cacti0.8.7d
(必填)
(必填,绝不公开)