最新消息:走过的,离开的,已经错过,新开始2016

lnmp一键安装包配置cacti中文版

技术随笔 果果 6760浏览 0评论

cacti6

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 命令查找。

当时没有截图,找了一个图

cacti1

果果的实际情况是这样的

cacti2

如果不对,请手动修改,直到显示为绿色。

这里下一步应该就全部完成,可以直接用 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

cacti3

 

后面,果果又遇到问题,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

接下来到后台修改轮询器

cacti5

cacti4

到此,cacti中文版配置完成。欢迎大家提出问题,大家一起解决。

===================

后面记录一下,添加h3c交换机的,不显示端口,这里修改图像模板,接口-流量(位/秒),标题修改成这样

|host_description| - 流量 - |query_ifName|

====================

cacti 中文版下载

链接: http://pan.baidu.com/s/1bofLpU3 密码: r8cr

 

转载请注明:果果.IT » lnmp一键安装包配置cacti中文版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址