这台服务器,其实多日未管,结果再次查看的时候出现了一堆问题。
这次简述一下出现的各种问题。
1。登录密码验证通过之后,页面无法跳转。
当时给我的第一感觉。。。是不是被人黑了。。。我这么个破鸟屁网站也会有人黑?。。。好无聊的黑客。既然已经是如此判断,那就恢复文件吧。
a.由于原始有数据文件,不敢直接全删除,所以就想先恢复index,看看是不是链接被修改了。结果搞来搞去,效果还是一样。验证通过之后,变成无法跳转。
b.又想是不是跳转的链接文件被删除了?后来我查看了一下,跳转的文件确实还存在。
c.后来查看了日志,想看看到底是怎么了。先是apache的日志,没问题。再就是cacti的日志。文件很大很大(2051MB),打开几乎是大半天没动。这下灵光一闪,问题可能出现在这里。把旧的日志文件备份改名,新建一个同名文件之后。系统可以进去了。
2。进来了之后,发现事情远没那么简单。大量的表已经没有了数据,查看了一下,最后的数据点是在半年前。
a.使用 /cacti/poller.php --force 进行测试看看结果。结果是一大堆错误。各种超时与不能达到的提示让人脑袋发麻。
b.既然是超时,那我就把超时的时间改高。结果无用。
c.这时候查看了一下本机监控(这个是默认存在的),发现除了一个本来就不准的在线人数,其它的都很正常——监控项:硬盘使用状态,进程数,内存使用状态。这表示其实cacti的基本工作状态是正常的。
d.既然本机里有正常的项,那我查看一下远端机上相同的项目应该也没有问题(snmp的团体名和密码什么的都没改过),结果当然什么都没得到——连硬盘使用状态都不出图。为了防止是绘图时间过长,我特意用XX在五秒一次里查看,结果依旧是让人失望的。
e.再次用/cacti/poller.php --force查看之后发现,其实由于太多的超时项,导致整个命令都超时了,也就是说就算其中有得到数据的项,其实根本都没传递给cacti,更别说绘图了。
f.根据提示,我在网上找了一圈。。居然有说项太多CPU不够用的。可我之前是可以的啊。折腾了一圈,于是采取了最保守的方法:把自己添加的模板项的数据源最部暂停。
g.回过头再看,最少有几张图有反应了。
3。对于没有反应的其它图,我是不甘心的。虽然之前有些图之前是显示不出来,但好歹还是有图能显示,接下来就是要恢复这一部分。
a.这里面包括两大部分,一是apache状态,一是mysql的数据。
b.apache状态,设置其实是最简单的,只要在apache的配置文件里设置"ExtendedStatus On"就好了。虽然之前就没有全部显示,但也不可能无端就完全显示不出来了吧。毕竟被监控端其实什么都没做。
c.cacti的数据来源是分层的,最原始的是 Data Input Method(数据输入方法),Date source (数据源),
Data Templates(数据模板)。所以我查看了和apache有关的 Data Input Method,后来发现相关的数据来源都是通过PHP脚本调用到的。我在shell环境下试着执行了一下(用 php/bin/php php脚本 脚本参数),后来发现了十分诡异的事情,用主机虽然不会报错,但死活没有任何结果;用IP则可以得到数据。于是我在Devices里把被监控机的Hostname 改成了IP地址。结果一切恢复正常。
d.对于mysql的组件我也采取了和apache相同的方法,先在shell环境用测试看看脚本是否能够使用。结果是shell环境中,很容易就得到了全部数据。但cacti中却怎么都得不到。突然想起,apache和mysql最大的区别在于,mysql需要用户名和密码。cacti在调用的时候,密码本身已经写进脚本内,是不是这里出了问题?后来排查过后,果然是脚本内的数据库用户名和密码出了问题。但仍不解,毕竟之前有一部分绘图是正常的,理论上也就不存在密码错误的问题。。。但无论怎么说,到此cacti所有的绘图都已经恢复工作,连之前没有显示的图也开始绘图。