<全> 如何编译安装cacti

pure compiling install http://yantaohncz.blog.51cto.com/727950/565411

cacti是用php语言实现的一个软件,它的运行需要网站服务器(如apache)及PHP环境的支持。同时,cacti还需要Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。


rrdtool的对主机负载、网络流量等信息的统计需要通过SNMP协议实现。经过SNMP抓取到的数据存储于由rrdtool生成的rrd文件中,这些文件通常位于cacti的rra目录中。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的归档文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

这副图片简述了cacti的工作原理.


安装依赖软件包,其中有些在安装nagios的时候已经安装过了
yum install -y httpd* gcc glibc glibc-common gd gd-devel php* php-* ntp mysql* mysql-*  net-snmp* net-snmp-* cairo-devel libxml2-devel pango-devel pango libpng-devel freetype-devel libart_lgpl-devel intltool freetype perl-ExtUtils-MakeMaker perl-Time-HiRes
我安装完mysql,查看服务时有unrecognized service的提示

clip_image001

因为没有安装mysql-server 

安装一下

yum install mysql -server -y

不提示了

clip_image003

安装rrdtool

编辑yum源

vi /etc/yum.repos.d/CentOS-Base.repo

clip_image005

添加下面内容

[dag]  
name=Dag RPM Repository for Red Hat Enterprise Linux  
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag  
gpgcheck=1  
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt  
enabled=1

<全> 如何编译安装cacti_第1张图片

安装rrdtool

yum install -y rrdtool*

看下安装成果

rrdtool,rrdtool-php,rrdtool-devel都有了

<全> 如何编译安装cacti_第2张图片

启动mysql

service mysqld start

clip_image009

编辑snmp配置文件

vi /etc/snmp/snmpd.conf

clip_image011

修改com2sec notConfigUser default public

中的default为127.0.0.1

access notConfigGroup “” any noauth exact systemview none none

中的systemview为all

clip_image014

取消view all included .1 80前面的#

clip_image015

下载cacti

wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz

clip_image017

解压

tar zxvf cacti-0.8.8a.tar.gz

clip_image018

把解压后的目录移动到指定目录

mv cacti-0.8.8a /usr/cacti

可以给mysql的root用户设置密码,当然也可以不设置,看你自己了

mysqladmin -uroot password 密码

验证设置的密码

mysqladmin --user=root --password reload

修改密码是修改密码:

mysqladmin -u root -p password ‘新密码’

或者进入数据库下面有说到怎么进

update user set password=PASSWORD(“新密码″) where user=”root”;

flush privileges;

quit

创建数据库

先进入数据库

如果有密码

mysql -u root -h 127.0.0.1 -p当然-h可以省略

然后输入密码

或者mysql -uroot -p密码

如果没设置密码就可以直接输入mysql

<全> 如何编译安装cacti_第3张图片

创建数据库

mysql> create database cacti; 

或者上面的步骤可以直接用mysqladmin --user=root -p create cacti代替

mysql> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti'; 

mysql> flush privileges;

<全> 如何编译安装cacti_第4张图片

ctrl c或者exit退出

将cacti表内容导入数据库

ca /usr/cacti

mysql -ucacti -pcacti cacti < /usr/cacti/cacti.sql

clip_image025

编辑/usr/cacti/include/config.php和global.php

内容一样

clip_image027

指定数据库连接用户名和密码为cacti

<全> 如何编译安装cacti_第5张图片

添加系统用户cacti,不创建家目录

useradd -r -M cacti

设置它对目录的权限

chown �R cacti /var/www/html/cacti/rra/ 

chown �R cacti /var/www/html/cacti/log/

clip_image029

设置计划任务,5分钟刷新一次

5个*分别代表分,时,日,月,周

echo "*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1">>/etc/crontab

clip_image031

重启crond服务

service crond restart

访问一下

192.168.189.23/cacti

啊,找不到网页,点下面详细信息,报错404

一般是目录不存在

<全> 如何编译安装cacti_第6张图片

我们要把cacti的解压目录放在http的根目录下才行

mv /usr/cacti /var/www/html

向导界面出现了

<全> 如何编译安装cacti_第7张图片

因为是第一次安装,所以默认New Install,而不是update更新

<全> 如何编译安装cacti_第8张图片

cacti用到的命令路径,你可以改,当然为什么要改呢?!呵!

<全> 如何编译安装cacti_第9张图片

登陆界面

默认是admin admin

输入完会让你修改密码

<全> 如何编译安装cacti_第10张图片

英文界面,里面也可以改用户名和密码之类的操作,你可也可去安装cactiEZ,中文版的,做的很完美!

 

不显示图片

clip_image045

<全> 如何编译安装cacti_第11张图片

<全> 如何编译安装cacti_第12张图片

下面是排错过程

还是不显示

网页上查看日志

clip_image051

clip_image053

命令行查看日志

clip_image054

clip_image056

设置刷新时间为1分钟

clip_image057

clip_image058

也不管用

删除文件

clip_image059

重新生成

clip_image060

可以了,点graphs

但是没数据

把刷新时间再改回5分钟吧

这里也可以设置这个时间,两个要相同

clip_image068

原来的Unknown也变成Up了

clip_image070

没数据排错

看snmp配置是否正确,正确会出来很多数据,这个IP是被监控的IP

或者

clip_image073

clip_image074

<全> 如何编译安装cacti_第13张图片

看另一个日志

说是重庆时区

<全> 如何编译安装cacti_第14张图片

clip_image079

改时区

clip_image081

<全> 如何编译安装cacti_第15张图片

<全> 如何编译安装cacti_第16张图片

<全> 如何编译安装cacti_第17张图片

没用

换一种方法,改cacti的时区设置

<全> 如何编译安装cacti_第18张图片

也不行

还有一种说法:

如果还是无法抓到snmp数据包

用ps aux |grep snmp 查看是否启动,如没有看到进程

输入/usr/local/sbin/snmpd -c /etc/snmp/snmpd.conf 启动snmp进程

测试snmp是否正常

#snmpwalk -c public -v 2c localhost

#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 命令查看当前有没有出什么错

不过我没试,因为是后来看到的

还有多试几次

clip_image060[1]

没办法了,不知道哪里错了

重来,重新安装rrdtool

http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.7.tar.gz

clip_image089

clip_image091

clip_image092

clip_image094

修改snmp配置文件

这个很少人说要启用这两个,不过我这里启用了,反正是好了!

clip_image095

<全> 如何编译安装cacti_第19张图片

终于成功了!

<全> 如何编译安装cacti_第20张图片

被监控端也要安装snmp,设置和这个一样,最后别忘记启动服务

添加LINUX被监控主机

Devices,右上角Add

输入主机描述,主机名或IP,主机模板选择Generic SNMP-enabled Host

<全> 如何编译安装cacti_第21张图片

点下面的Create,然后出现下面这个界面

下面Associated Graph Templates

添加你要监控的选项模板,点下面的保存

clip_image104

最右上面点Create Graphs for this Host,为这个主机画图

勾选所有的,点Create

Create

<全> 如何编译安装cacti_第22张图片

Graph Management可以对要监控的所有图形进行管理

<全> 如何编译安装cacti_第23张图片

如果是不显示图片

<全> 如何编译安装cacti_第24张图片

在上面右键显示图片,如果不行,看你的系统时间对不对如果不对

date -s 年月日或者月/日/年

date -s 时:分

hwclock -w

当然也要等几分钟,它也要花点时间收集数据

<全> 如何编译安装cacti_第25张图片

<全> 如何编译安装cacti_第26张图片

又没数据

clip_image118

把被监控端iptables关闭

clip_image120

再一看还没有,不过等一会就有了,因为它要花一段时间来采集数据

<全> 如何编译安装cacti_第27张图片

除了CactiEZ是中文的,还有一个中文版的cacti

wget http://blogimg.chinaunix.net/blog/upfile2/090815172648.gz

clip_image124

解压

tar zxvf 090815172648.gz

clip_image125

生成一个cacti-0.8.7e-cn-utf8文件夹

覆盖掉之前安装的英文版的

clip_image126

按住回车不放

然后我删除了原来的数据库cacti

进入数据库

然后drop database cacti;

clip_image128

重新创建数据库

mysql> create database cacti; 

mysql> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti'; 

mysql> flush privileges;

mysql>exit

把cacti表写进数据库

cd /var/www/html/cacti

mysql -ucacti -pcacti cacti < /var/www/html/cacti/cacti.sql

clip_image132

重启服务

<全> 如何编译安装cacti_第28张图片

FATAl:Cannot connect to MySQL server on ‘127.0.0.1’,Please make sure you have specified a valid MySQL database name in ‘include/config.php’

clip_image136

看来没覆盖掉原来的文件,把原来英文版的cacti文件夹删了

rm -rf /var/www/html/cacti

clip_image137

把中文的放过来

mv cacti-0.8.7e-cn-utf8 cacti

重新编辑config.php和global.php(貌似也可以不用编辑它)

向导界面也成中文的了

<全> 如何编译安装cacti_第29张图片

看这里写到配置文件是config.php,没有global.php

输入用户admin 密码 admin后出现强制让你修改密码的界面

全中文,还是这货看着舒服啊!

<全> 如何编译安装cacti_第30张图片

没图

手动刷新

php /var/www/html/cacti/poller.php --force

clip_image147

好多小方块,因为那些是中文,成了乱码

<全> 如何编译安装cacti_第31张图片

在设置里看下路径,RRDTool字体路径是空的

clip_image151

顺便说一个命令

locale -a是显示系统支持的所有字符集

clip_image152

我们来安装RRDTOOL所需的中文字体

yum install ruby -y这个貌似也可以不安装

clip_image153

先看下默认的字体包

ls /usr/share/fonts

只有dejavu和liberation两个目录

clip_image154

我们要安装一个ttfonts

在下面的链接里有很多

http://ftplike.com/index.aspx?q=ttfonts-zh_cn-2.14-6.noarch.rpm&t=Files&s=9768259-9768259&e=&a=0&f=&m=EXACT&c=50

我用的是下面这个  


ftp://ftp.cs.stanford.edu/pub/mirrors/centos/4.7/os/x86_64/CentOS/RPMS/ttfonts-zh_CN-2.14-6.noarch.rpm


安装rpm -vih ttfonts-zh_CN-2.14-6.noarch.rpm

提示……is needed by……

加参数--force --nodeps

rpm -vih ttfonts-zh_CN-2.14-6.noarch.rpm --force --nodeps

不用管后面的提示

<全> 如何编译安装cacti_第32张图片

再看字体目录,多了一个zh_CN

打开web页面里的路径

设置RRDTool默认字体路径为/usr/share/fonts/zh_CN/TrueType/gkai00mp.ttf保存,显示文件已找到!

<全> 如何编译安装cacti_第33张图片

正常了!

<全> 如何编译安装cacti_第34张图片

监控流量

打开设备里的主机,进去后选择SNMP版本,一般选1就行了

clip_image167

相关数据查询里添加SNMP-接口统计

选择为些设备生成图像

选择网卡,创建

过一会就有了

监控Windows

添加SNMP服务

<全> 如何编译安装cacti_第35张图片

重启后设置SNMP Service的安全里添加社区名称

我写的是public,对应snmp服务器里/etc/snmp/snmpd.conf里设置的

下面接收来自下列主机的SNMP数据包添加Cacti服务器的IP

<全> 如何编译安装cacti_第36张图片

完了后重启下snmp service服务

看任务管理器里都有点小区别了!

<全> 如何编译安装cacti_第37张图片

添加Window主机

主机模板选择Windows 2000/XP设备

snmp版本也是1

<全> 如何编译安装cacti_第38张图片

创建,选择相应的监视选项

<全> 如何编译安装cacti_第39张图片

我们在图像模板里可以打开相应的选项后选择 打开图像调试模式,可以查看有没有问题!当然要过一会打开才有效!,不要在刚添加完选项就打开,那样会导致你误判!

clip_image187

<全> 如何编译安装cacti_第40张图片

 

 

参考:

http://foreveryan.blog.51cto.com/3508502/727866

http://www.centos.bz/2012/01/cacti-install-tutorials/

http://www.linuxyan.com/linux-service/168.html

http://bbs.linuxtone.org/thread-7972-1-1.html

http://foreveryan.blog.51cto.com/3508502/775558

 

顺便说下

如果是admin 的密码丢失,id = 1;其他用户以此类推。

进入mysql  
mysql> show databases;  
mysql> use cacti;  
mysql> show tables;  
mysql> update user_auth set password=md5("newpassword") where id='1';

新的cacti密码就是newpassword了~~

下面这个问题虽然还没遇到,但留下来以备后用

流量图显示断断续续的。  
经过查找分析得出以下几个方面来解决。  
------------------------------------------------------------------------------------------------------------------------------------  
Tasks:  72 total,      2 running,  70 sleeping,      0 stopped,      0 zombie  
Cpu(s): 10.4% us,  6.1% sy,  0.0% ni, 41.9% id, 41.6% wa,  0.0% hi,  0.0% si  
Mem:      2074824k total,   2046988k used,     27836k free,         19880k buffers  
Swap:       779144k total,           208k used,       778936k free,  1841200k cached  
① 首先查看本服务器内存使用情况,如果本机内存使用达到 80% 以上后,流量图会出现断断续续的现象  
【解决方法】增加内存。  
------------------------------------------------------------------------------------------------------------------------------------  
② 查看 Cacti 版本信息,我现在的版本是 0.8.7c 版本,升级到最新版本后,流量图断断续续的情况消失。  
【解决方法】升级 Cacti 版本到最新。  
------------------------------------------------------------------------------------------------------------------------------------  
③ 设置流量刷新时间,由原来的每 5 分钟,更改为每 1 分钟更新一次。  
【解决方法】更改刷新时间。  
更改刷新时间的具体方法如下:
・在 Cacti 设置项中有两处需要更改  
・还在本服务器上更改 crontab-e 的时间。  
------------------------------------------------------------------------------------------------------------------------------------  
④ 用户冲突,比如有两个以上用户设置了crontab 的自动执行程序,导致用户频繁切换。  
可以通过查看 /rra下面的文件属性得知。  
------------------------------------------------------------------------------------------------------------------------------------  
⑤ SNMP 用 UDP 包通讯,有时会引起丢包。特别在远程网或压力大的时候。  
【解决方法】增大 timeout 时间  
------------------------------------------------------------------------------------------------------------------------------------  
⑥  php 脚本也是有 timeout 的.  
------------------------------------------------------------------------------------------------------------------------------------  
⑦ cacti 服务器,怎么只有图,没有数据,  
手动执行 # /usr/local/php/bin/php /usr/local/apache2/htdocs/cacti/poller.php  //很多时候都通过手动执行得到错误提示。  
提示 File size limit exceeded,原来是某个文件超过了系统限制文件的大小,用 find 命令查看比较大的文件,发现 cacti 的日志文件好大,清空了他的内容,然后过几分钟再去看图,数据出现了,这里也给我提示了个信息,不要把 cacti 调整到 debug 模式,否则很可能出现这样的问题。

http://bbs.linuxtone.org/thread-7468-1-1.html

出处:http://mcmvp.blog.51cto.com/5497438/1226854

你可能感兴趣的:(工作原理,软件包,网站服务器,PHP语言)