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

 

4.安装流程FAQ

4.1文件权限问题

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

4.2创建log文件

在对cacti创建定时运行任务时,去掉默认的不保存log,改为将运行产生的log写入指定的文件中:

如上图的例子,将poller运行的log用追加方式写入到/opt/lampp/htdocs/cacti/log/poller.log文件中,如果不用追加的方式,就会在每次写入时冲掉之前的数据,这样就没有意义了。当出现问题时,通过查看log内容可以帮我们详细定位问题所在。

4.3修改定时任务运行时间

Cacti默认的poller运行时间是每5分钟运行一次,想要把它改为每分钟运行一次。目前采用的方式需要修改这几处:

1.       首先修改Cactipoller设置

2.     修改模板的stepinterval时间

因为在创建rrd文件时,是按照模板规定的参数创建的,而每个模板默认的step5分钟,因此,我们需要将模板也更改掉,修改Data Template下的所有模板,step60heartbeat120。只不过这样改有个麻烦:如果下次在需要改为每5分钟运行一次,还要把模板改回来。如下图的例子:

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文件删除,否则就无法接收数据了。进入到cactirra目录下,执行以下命令:

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

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

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

解决:打开cactiplugins目录,进入到/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时,有数据出现,但是当采用本机IP192.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,然后对mysqlmysql.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

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

 

你可能感兴趣的:(ubuntu,cacti)