cacti是一个很好的流量监控软件,以前也一直用,但是现在公司用的是PRTG,用得不习惯,于是自己搭建了一个cacti。
cacti国外开发的当然是英文,对于英文不好的果果,很是头疼,所以选择中文版是必须的,查看cacti中文版国内有CactiEZ,提供iso下载,只需刻盘或者挂虚拟机安装即可,应该很方便,各项服务都已经安装好,但果果这次要写的是手动安装。
搜索中文版cacti肯定会找到linuxpad写的中文教程和安装包,果果也是主要参考这个教程。
果果手上只有centos 6.4系统镜像,于是就用这个了,首先把yum源更换为国内的,果果比较喜欢用阿里云的。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo yum clean all yum makecache
cacti基于PHP+mysql,基本的web环境,网上都是LAMP,或者直接yum安装,果果一直喜欢用nginx,所以我们要讲的是LNMP下面的安装。
LNMP国内有很多大牛写的一键安装脚本,果果之前也试着写过,可以选择军哥 lnmp.org 或者选择海哥的centos.bz ,这次果果选择的是海哥的lnmp集成安装,下载安装,这里就不叙说了,都是自动安装。
由于看到cacti是比较老的版本,所以选择php5.2.17 ,mysql果果一开始以为没有关系,所以选择了5.5,后面发现问题了,所以建议还是选择5.1或者5.0.
php模块注意安装的时候添加sockets和 snmp模块。
如果之前没有安装,后面可以单独编译添加模块即可,首先进入php源码包文件夹,根据自己的情况进入目录
cd /opt/EZHTTP-master/soft/php-5.3.29/ext/sockets/ /usr/local/php/bin/phpize ./configure --enable-sockets --with-php-config=/usr/local/php/bin/php-config make make install cd /opt/EZHTTP-master/soft/php-5.3.29/ext/snmp/ /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install
打开编辑php.ini ,最底部加入
vi /usr/local/php/etc/php.ini extension=sockets.so extension=snmp.so /etc/init.d/php-fpm restart
完成后通过IP访问 http://192.168.1.238/p.php 可以正常显示php信息,并在里面找到sockets和 snmp模块信息。
这里还有一点要讲的,默认安装的php运行在安全模式,限制了php可以访问的目录,后面会照成cacti找不到路径的问题,所以如果cacti找不到路径,除了查找系统相应程序有没有安装,还要看看php有没有限制目录,这里果果直接关闭了php的安全模式。
打开php.ini ,找到里面的safe_mode = On 修改为 safe_mode = Off
对了还有一点要提醒,安装好后php禁用了几个函数,其中好像一个cacti要用到,这里禁止函数也关闭,同样在php.ini中找到
disable_functions =
注释掉这行,或者删除等号后面的。
重启php
/etc/init.d/php-fpm restart
安装几个cacti要用到的snmp组件,都是通过yum安装,当然你也可以下载相应包编译。
yum install -y net-snmp net-snmp-devel net-snmp-libs net-snmp-perl net-snmp-utils mrtg
下面下载cacti中文版,可以在nginx下面新建一个网站,或者直接放在/home/wwwroot下面,解压后,
修改文件的属组
cd /home/wwwroot/ chown -R www:www cacti
登陆mysql数据库,建立cacit 数据,导入数据
mysql -uroot -p use cacti set names utf8; source /home/wwwroot/cacti/cacit.sql
这里发现都是报错的,这就是之前果果选择了mysql5.5的缘故
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 9
解决办法是,打开cacti.sql ,数据库文件内的所有TYPE=MyISAM修改为ENGINE=MyISAM,保存退出
vi cacti.sql
:%s/TYPE=MyISAM/ENGINE=MyISAM/g
到这里直接可以访问 http://192.168.1.238/cacti ,打开 cacti 安装,选择全新安装,如果sockets没有正确安装,这里会提示检查不到的,不能进行下一步。
这里按照你的实际情况,看看cacti各项要用的软件路径有没有找到。可以用whereis 命令查找。
当时没有截图,找了一个图
果果的实际情况是这样的
如果不对,请手动修改,直到显示为绿色。
这里下一步应该就全部完成,可以直接用 admin 密码 admin登陆。
安装本机的snmp,打开/etc/snmp/snmpd.conf
可以先备份这个文件,这个原版应该是 v3版本的,有用户验证,果果直接改成了v2版
#### # First, map the community name “public” into a “security name” # sec.name source community com2sec notConfigUser default public #定义community名称为 public,映射到安全名 notConfigUser。 #### # Second, map the security name into a group name: # groupName securityModel securityName group notConfigGroup v1 notConfigUser #定义安全用户名notConfigUser映射到notConfigGroup组。 group notConfigGroup v2c notConfigUser #### # Third, create a view for us to let the group have rights to: #定义一个view,来决定notConfigUser可以操作的范围。 # make at least snmpwalk -v 1 localhost -c public system fast again. #定义可查看的snmp的范围。 # 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.25.1.1 view all included .1 #### # Finally, grant the group read-only access to the systemview view. #给notConfigGroup组所定义view名 all 以只读权限。 # group context sec.model sec.level prefix read write notif access notConfigGroup "" any noauth exact all none none #access notConfigGroup "" any noauth exact mib2 none none # —————————————————————————– # Here is a commented out example configuration that allows less # restrictive access. # YOU SHOULD CHANGE THE “COMMUNITY” TOKEN BELOW TO A NEW KEYWORD ONLY # KNOWN AT YOUR SITE. YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO # SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE. ## sec.name source community #com2sec local localhost COMMUNITY #com2sec mynetwork NETWORK/24 COMMUNITY ## group.name sec.model sec.name #group MyRWGroup any local #group MyROGroup any mynetwork # #group MyRWGroup any otherv3user #… ## incl/excl subtree mask #view all included .1 80 ## -or just the mib2 tree- #view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc #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 all
如果复制上面的注意 中文乱码。重启snmp服务
/usr/sbin/snmpd restart
snmpwalk -v2c -c public 127.0.0.1
测试可以获取到数据。
设置计划任务定时采集数据
crontab -e
*/5 * * * * /usr/local/php/bin/php /var/www/cacti/poller.php >/dev/null &2>1
5分钟采集一次。
设置RRDTool中文字体,到你的电脑C:\Windows\Fonts中,直接复制一个中文字体上传到服务器,然后在设置里面填写字体文件路径,果果选择的是微软雅黑。
/usr/share/fonts/msyhl.ttc
安装Spine,这个不是必须的。
cd /opt 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
这里果果遇到问题,没有顺利完成,./configure的时候提示没有找到组件文件
configure: error: cannot run /bin/sh config/config.sub
确认已经安装 libtool ,rpm -qa | grep libtool 可以看到版本
如果没有安装
yum install -y libtool yum install -y libtool-ltdl yum install -y libtool-ltdl-devel
这里果果说一下解决版本,你进入/opt/cacti-spine-0.8.7e/config ,用ls -l命令,你会发现这里有链接,但是不正确的路径,把三个文件修改成正确的路径 。
ln -s -f /usr/share/libtool/config/config.sub config.sub
后面,果果又遇到问题,spine configure: error: MySQL libraries not found
这里解决办法是,直接带mysql路径
./configure --with-mysql=/usr/local/mysql/
后面make时候又出现问题,说libtool版本不匹配
/bin/sh ./libtool --tag=CC --mode=link gcc -I/usr/include/net-snmp -I/usr/include/net-snmp/.. -I/usr/include/mysql -g -O2 -L/usr/lib64 -L/usr/lib64/mysql -o spine sql.o spine.o util.o snmp.o locks.o poller.o nft_popen.o php.o ping.o keywords.o error.o -lnetsnmp -lmysqlclient_r -lmysqlclient_r -lcrypto -lz -lpthread -lm ./libtool: line 467: CDPATH: command not found ./libtool: line 1145: func_opt_split: command not found libtool: Version mismatch error. This is libtool 2.2.6b, but the libtool: definition of this LT_INIT comes from an older release. libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6b libtool: and run autoconf again. make: *** [spine] Error 63
百度找到解决办法,也记录一下
aclocal cd /usr/share/libtool/libltdl libtoolize --force cd /opt/cacti-spine-0.87 autoconf autoheader automake
接下来到后台修改轮询器
到此,cacti中文版配置完成。欢迎大家提出问题,大家一起解决。
===================
后面记录一下,添加h3c交换机的,不显示端口,这里修改图像模板,接口-流量(位/秒),标题修改成这样
|host_description| - 流量 - |query_ifName|
====================
cacti 中文版下载
链接: http://pan.baidu.com/s/1bofLpU3 密码: r8cr
转载请注明:果果.IT » lnmp一键安装包配置cacti中文版