座机 发表于 2019-1-11 06:55:04

Ubuntu12.04平台安装cacti全过程(七)



4.安装流程FAQ

4.1文件权限问题

所有拷贝和创建的文件,确保运行cacti的账户对其有读写权限,否则会产生各种问题,导致监控界面上有图无数据。例如mongoDB监控时,会在/tmp下创建一个status文件,运行的用户是webos,要保证该用户对这些文件有读写权限,
file:///C:DOCUME~1ADMINI~1LOCALS~1Tempmsohtml11clip_image002.jpg

4.2创建log文件

在对cacti创建定时运行任务时,去掉默认的不保存log,改为将运行产生的log写入指定的文件中:
file:///C:DOCUME~1ADMINI~1LOCALS~1Tempmsohtml11clip_image004.jpg
如上图的例子,将poller运行的log用追加方式写入到/opt/lampp/htdocs/cacti/log/poller.log文件中,如果不用追加的方式,就会在每次写入时冲掉之前的数据,这样就没有意义了。当出现问题时,通过查看log内容可以帮我们详细定位问题所在。

4.3修改定时任务运行时间

Cacti默认的poller运行时间是每5分钟运行一次,想要把它改为每分钟运行一次。目前采用的方式需要修改这几处:
1.       首先修改Cacti的poller设置
file:///C:DOCUME~1ADMINI~1LOCALS~1Tempmsohtml11clip_image006.jpg
2.   修改模板的step和interval时间
因为在创建rrd文件时,是按照模板规定的参数创建的,而每个模板默认的step是5分钟,因此,我们需要将模板也更改掉,修改Data Template下的所有模板,step为60,heartbeat为120。只不过这样改有个麻烦:如果下次在需要改为每5分钟运行一次,还要把模板改回来。如下图的例子:
file:///C:DOCUME~1ADMINI~1LOCALS~1Tempmsohtml11clip_image008.jpg
3.   修改系统的定时运行任务
这里先解释一下crontab定时任务的命令格式,打开crontab,会有这样一行内容:


# m h dom mon dow user command


具体以意义是:分钟 小时 日期 月份 星期 用户名 命令,即在某月(mon)的某天(dom)或星期几(dow)的几点(h,24小时制)几分(m)用某用户(user)执行某命令(command),*表示任意时间。如下:


*/5 * * * *   tianya   /opt/lampp/bin/php /opt/lampp/htdocs/cacti/poller.php >>/opt/lampp/htdocs/cacti/log/poller.log 2>&1


就表示用webos这个用户名每5分钟执行一次poller任务。
修改:
用vi或者gedit打开/etc目录下的crontab文件


>sudo gedit /etc/crontab


修改:


*/5 * * * *   tianya   /opt/lampp/bin/php /opt/lampp/htdocs/cacti/poller.php >>/opt/lampp/htdocs/cacti/log/poller.log 2>&1


为:


*/1 * * * *   tianya   /opt/lampp/bin/php /opt/lampp/htdocs/cacti/poller.php >>/opt/lampp/htdocs/cacti/log/poller.log 2>&1


修改完毕,保存退出。然后重启定时任务:


>sudo service cron restart


4.重建rrd文件
上面三步修改好之后,需要把旧的rrd文件删除,否则就无法接收数据了。进入到cacti的rra目录下,执行以下命令:


>cd /opt/lampp/htdocs/cacti/rra
> rm *


如此删除所有rrd文件,在poller下次运行时会重新创建这些文件。到此,一切ok。

4.4安装thold插件后,在cacti的console点击settings出现访问错误

解决:打开cacti的plugins目录,进入到/plugins/thold/include目录,打开文件settings.php,找到132行,注释掉这句代码。


# define_syslog_variables();


原因:这个方法太旧了,已经被php淘汰了。

4.5超过百M以上流量,不出图或不准问题

首先在创建Device时,注意snmp的版本要选2C,不能用“1”这个版本,然后在网卡流量的模板创建时,在“select a graph type”选项中选择 “In/Out bit(64-bit Counters)”。
如果snmp版本为1,而在“select a graph type”选项中选择 “In/Out bit(64-bit Counters)”,会导致有图无数据现象。

4.6 Snmp在使用本机IP进行snmpwalk时,提示time out超时,而用localhost没问题

这个问题是执行下面的命令:


>snmpwalk –v 2c –c public localhost


当后面的主机参数选择localhost或者127.0.0.1时,有数据出现,但是当采用本机IP,192.168.1.103时,却提示超时 response time out


>snmpwalk –v 2c –c public 192.168.1.103


这是因为该机器的snmpd控制文件中设置了只响应本机的回环地址,如下:


# snmpd options (use syslog, close stdin/out/err).
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1’


只需把最后的127.0.0.1去掉或者改为0.0.0.0即可:


# snmpd options (use syslog, close stdin/out/err).
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid’


这个问题最初安装其他几台机器时灰常注意,但是这几台机器的snmpd控制文件中已经去掉了那个回环响应参数,结果最后在103机器安装时就忘记了,搞了半天才反应过来是这个问题。最终发现其他的机器安装的ubuntu12.04的版本,并且snmpd的版本是5.4.3,而103机器是ubuntu10.0的版本,安装的snmpd版本是5.4.2,不同的版本是有区别的。


4.7重启电脑后poller运行异常,无法启动获取数据

问题解决:
在/var/run/目录下创建文件夹mysqld,然后对mysql的mysql.sock创建一个软连接,命令如下:


>sudo mkdir /var/run/mysqld
> sudo ln –s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock


创建完毕,再次运行poller,数据获取正常,问题解决。
原因分析:XAMPP环境在运行时为mysql/mysql.sock创建了软连接/var/run/mysqld/mysqld.sock,由于/var/run目录下的用户新增目录是动态创建的,机器重启之后不会自动创建,而poller运行中会到该目录下寻找,结果没找到,于是链接mysql数据库失败。
最终解决:为一劳永逸的解决这个问题,修改rc.local文件,打开文件:


> sudo gedit /etc/init.d/rc.local


添加如下内容:


sudo mkdir /var/run/mysqld
sudo ln –s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock

  于是,在每次开机后会自动创建链接。



页: [1]
查看完整版本: Ubuntu12.04平台安装cacti全过程(七)