关于sock文件的问题解决方案:ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 这篇文章更有条理。http://liyaoyi.blog.51cto.com/442933/846891 Cacti是一款优秀的开源监控软件,使用php实现,它的主要特点是使用snmp服务获取数据,然后用rrdtool存储和更新数据,当用户查看数据的时候,rrdtool生成图表呈现给用户。mysql数据库用于存储变量并进行调用。mysql数据库并不存储snmp捕获到的数据,snmp捕获到的数据,存在于rrdtool生成的rrd文件中,这些文件位于cacti目录下的rra目录中。本文主要介绍cacti中文版的安装,配置,cacti插件的安装,配置。英文版的安装跟中文版大同小异,但是中文版会麻烦点,所以就以中文版为例。系统:Centos5.6 x386软件:cacti-0.8.7e 本文档提供pdf版本下载,祥见文章尾部。 一、 准备软件的安装由于cacti使用php来实现,通过WEB来管理,使用snmp来捕获数据,使用rrdtool来生成图表,使用mysql来存储变量,因此需要先安装这些软件,直接使用yum进行安装即可,共需安装以下rpm包:httpd/mysql-server/php/php-mysql/rrdtool/gd/net-snmp/php-snmp/net-snmp-utils/net-snmp-devel/mysql-devel/openssl-devel各个rpm包的作用为:httpd WEB服务器apachemysql-server 数据库mysqlphp cacti使用php来实现php-mysql php支持mysqlrrdtool 用来生成cacti图像gd rrdtool绘制图像需要的图形库php-snmp php支持snmpnet-snmp-utils 一些snmp的扩展命令,如:snmpwalk、snmpget等,cacti需要net-snmp-devel/mysql-devel/openssl-devel cactid/spine需要安装rpm包:#yum httpd mysql-server php php-mysql gd net-snmp php-snmp net-snmp-utils net-snmp-devel mysql-devel openssl-devel由于centos的标准组件中是不带rrdtool的,因此我们需要添加一个dag的yum源,以安装rrdtool。修改/etc/yum.repos.d/CentOS-Base.repo,#vi /etc/yum.repos.d/CentOS-Base.repo在其末尾追加[dag]name=Dag RPM Repository for Red Hat Enterprise Linuxbaseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/daggpgcheck=1gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txtenabled=1更新yum#yum clean all#yum list现在就可以安装rrdtool#yum install rrdtool设置开机自启动#chkconfig httpd on#chkconfig mysqld on#chkconfig snmpd on二、 MySQL数据设置由于cacti依靠mysql来存储必要的变量,我们有必要对MySQL做些设置。启动并初始化mysql数据库#service mysqld start为root用户设置密码(以linuxpad为例),并更改登录权限,默认密码为空#mysql –u root –p 回车后输入密码(空)mysql>use mysql;mysql>update user set password=password(‘linuxpad’) where user=’root’; mysql>grant all privileges on *.* to root@localhost identified by ‘linuxpad’ with grant option;mysql>flush privileges;添加cacti库和cacti用户,并为其设置权限mysql>create database cacti default character set utf8; //数据库字符集设置utf8,否则乱码mysql>grant all privileges on cacti.* to cacti@localhost identified by ‘linuxpad’ with grant option;mysql>flush privileges;三、 安装Cacti下载cacti-0.8.7e-cn-utf8.tar.gz,地址为http://blogimg.chinaunix.net/blog/upfile2/090815172648.gz (这个链接是tar.gz格式的,请下载后更改文件格式),假设下载目录为/opt/soft,下面相同#cd /opt/soft#tar zxvf 090815172648.tar.gz#mv cacti-0.8.7e-cn-utf8 /var/www/cacti修改配置文件#vi /var/www/cacti/include/config.php修改内容如下$database_type = "mysql";$database_default = "cacti";$database_hostname = "localhost";$database_username = "cacti";$database_password = "linuxpad";关于cacti添加用户,网上常见的做法是添加一个cacti的用户,并更改rra和log目录属主。经过本人测试这里并不需要添加cacti用户并更改rra和log的属主,直接使用root即可。原因是因为官方的安装文档上使用的是FreeBSD,在计划任务那步使用的是:*/5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null,使用用户cacti来执行任务。但是centos并不是识别这个cacti参数,因此也就无需使用cacti来执行任务,我们直接使用root来执行任务就OK了,于是不用更改目录权限,crontab内容为*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1还有另外一种的解决方案,就是添加一个cacti用户,更改rra和log目录属主为cacti,然后在cacti用户环境下设置crontab,内容为*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1这样就能实现crontab计划是由cacti用户来执行的了。创建并编辑apache的cacti配置文件#vi /etc/httpd/conf.d/cacti.conf内容如下:Alias /cacti /var/www/cacti导入数据库#mysql –u root –p cacti启动服务,然后访问http://ip/cacti开始安装cacti#service mysqld start#service httpd start#service snmpd start直接下一步,选择”全新安装”,来到下面的一个界面,如图1请确认所有路径都已找到,并选择SNMP应用程序版本为5.x,RRDTool版本为1.3.x。完成之后来到登录页面,默认用户名admin,密码admin,登录之后会提示你强制更改密码。设置计划任务#crontab –e追加以下内容*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1添加中文字体支持,否则Cacti图像内会没有任何内容。CentOS下直接yum安装中文支持#yum install fonts-chinese打开Cacti,控制面板->配置->设置->路径:将RRDTool默认字体路径设为/usr/share/fonts/chinese/TrueType/ukai.ttf配置无误,会显示文件已找到。四、 配置本机snmp编辑snmp配置文件/etc/snmp/snmp.conf修改:com2sec notConfigUser default public改为:com2sec notConfigUser 127.0.0.1 public修改:access notConfigGroup "" any noauth exact systemview none none改为:access notConfigGroup "" any noauth exact all none none去掉这句的注释#view all included .1 80重启snmp服务并测试#service snmpd restart# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 2IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 3显示以上信息,则snmp配置成功,xxx.xxx.xxx.xxx会根据你本机的IP信息配置而不同。图1如果配置正确,隔几分钟,我们的cacti就会有数据了,如图2,你也可以手动执行以下命令手动生成rrd图像#/usr/bin/php /var/www/cacti/poller.php &>/dev/null图2五、 安装Spine由于默认cmd.php来轮询数据,速度会很慢,特别是在监控节点比较多的情况下,cmd.php就更显不足了,因此我们采用Spine来轮询数据。cacti-spine是一个由C语言开发的,用于替代cmd.php的快速获取速度的引擎。下载地址:http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz安装spine之前请确保它所依赖的包net-snmp-devel、mysql-devel、openssl-devel都已安装完毕。以下是安装步骤#cd /opt/soft#wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz#tar zxvf cacti-spine-0.8.7e.tar.gz#cd cacti-spine-0.8.7e#./configure#make && make install编辑spine配置文件#vi /usr/local/spine/etc/spine.conf修改内容如下:DB_Host localhostDB_Database cactiDB_User cactiDB_Pass linuxpadDB_Port 3306将spine启动并设置开机自启动#/usr/local/spine/bin/spine#echo /usr/local/spine/bin/spine >>/etc/rc.d/rc.localCacti设置:Cacti控制面板->配置->设置路径:将Spine轮询器路径设置为/usr/local/spine/bin/spine轮询器:轮询器类型选择Spine到此为止,我们已经成功安装Spine轮询器并使用。六、 Cacti插件安装之Cacti-plugin 对于中文版,我们需要下载中文版的更新文件:http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz,下载后需更名为cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz,更新前请备份cacti目录及mysql库,以便更新失败后的还原。Cacti-Plugin安装过程如下:#cd /opt/soft#wget http://blogimg.chinaunix.net/blog/upfile2/090818213852.gz#mv 090818213852.gz cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz# gunzip cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff.gz# mv cacti-plugin-0.8.7d-PA-v2.4-cn-utf8.diff /var/www/cacti/# patch -p1 -N#mysql –u cacti –p cacti如果你的cacti访问时候是使用http://ip/cacti,你需要修改/var/www/cacti/include/global.php修改如下:$database_type = "mysql";$database_default = "cacti";$database_hostname = "localhost";$database_username = "cacti";$database_password = "linuxpad";$database_port = "3306"; $config['url_path'] = '/cacti/'; 配置CactiCacti控制面板->工具->用户管理->admin->区域权限,选择”插件管理”然后我们就能够在控制面板的”配置”下面看到多出一个”插件管理”的选项七、 Cacti插件安装之MonitorCacti下面的插件非常多,我们拿Monitor为例,来讲述Cacti插件的安装。Monitor是Cacti下面一个监控节点存活性的插件,可以监控各种网络设备,主机的存活性。Monitor下载地址:http://cactiusers.org/downloads/monitor.tar.gzMonitor安装过程如下(一步复制文件,一步导入sql文件):#cd /opt/soft#wget http://cactiusers.org/downloads/monitor.tar.gz#tar zxvf monitor.tar.gz# mv monitor /var/www/cacti/plugins #复制插件到plugins# cd /var/www/cacti/plugins/monitor/# mysql -u cacti -p cacti 导入monitor.sql数据配置global.php#vi /var/www/cacti/include/global.php在$plugins = array();后添加:$plugins[] = 'monitor';刷新Cacti控制面板,我们会在设置下面找到一个新的选项卡”Misc”,同时左上方会多出一个新的选项卡”Monitor”,如图3。Monitor监控节点图像如图4。图3图4其他插件的安装基本类似,可参考Monitor来安装。 12-09 11:20