实战:用Hyperic 监控诊断网站无法访问问题
问题描述
一直采用Hyperic HQ CRP监控 两个网站:
www.GoodU.info : “如是我闻”,记录每天不经意间看到的一些好文章,排版简洁,易于阅读,“你永远不知道下一篇是什么类型的文章。”
www.wongjingwingchun.com: “黄祯咏春会”,一个以咏春拳会友的的网站,由黄祯咏春传人免费教习,这里做个广告,欢迎参与。
周末休闲中,突然收到报警邮件,监控的网站无法访问。!!! ? ? ?
环境描述
采用的基本上是主流技术。
Centos6, 64bit,; Apache Httpd 2.2.15, MySQL 5.1.x ; Drupal;
在该服务器上安装了 HQ Agent 5.8
分析过程
下面的图片是事后,恢复后的截屏,请着重看中间红点时间段部分:
打开监控的工具 http://demo.innovatedigital.com:7080/
CPU使用率和负载,在事发前出现异动,快速增加。
内存交换区,空闲内存和交换区使用大小,快速增加。这里,考虑到linux的内存管理机制,关注的是Free Memory(+buffers/cache), 而不是 Used Memory(变化不大). 很可能是某程序突然占用了大量的内存。
再看httpd , 每分钟的字节吞吐量和请求量,没有明显变化。
Busy Servers 和 Busy Workers 有所增长,但是 Keepalive 没有明显变化。问题的原因可能与Http 关系不大。
还需观察数据库,mysql, 其进程cpu使用率没有变化,内存有所减低,估计是其他进程用了大量内存,对mysql有所挤压,释放了一些内存。slow query数量有所增加。
那么是哪个进程突然占用了过多的内存和CPU? 请看,每个时间点采集的 top 结果,大量的rdp,这是什么?从来没有安装过,是rdesktop 还是 。。。? 在问题发生前几个时间点,有这些现象,再之前,并没有。
登录到该主机,发现在 /root/下 有 一个 .rdp 目录,里面的文件,包含了很多存放常用密码的文件。是被黑了? 哪位大虾有兴趣,可留言索取。
分析,secure 日志,摘取几行如下:
1
2
3
4
5
6
7
8
|
Aug 30 16:04:05 www sshd[1842]: Failed password for root from 111.74.238.167 port 1237 ssh2
。。。。。。
Aug 30 16:39:46 www sshd[2432]: Failed password for root from 202.109.143.35 port 4421 ssh2
。。。。。。
Aug 30 17:01:44 www sshd[2756]: Failed password for root from 117.21.173.175 port 2182 ssh2
。。。。。。
Aug 30 22:10:29 www sshd[5437]: Failed password for root from 222.186.34.36 port 3580 ssh2
。。。。。。
|
查一查哪里的IP?
111.74.238.167,202.109.143.35,117.21.173.175 江西省吉安市 电信; 222.186.34.36 江苏省镇江市 电信
难道不是山东的南翔技校?
初步结论
根据上面的情况,很可能是主机密码被猜到,从而象上面几个地址一样被利用。
措施
首先是修改密码,关闭ssh登录,采用vnc。
为了能够更早发现网站无法访问的问题,在HQ 中定义了一个服务,轮询某个特定的网页,根据返回时间和返回的数据判断是否发生了问题。具体如下:
定义一个http service , 名为 goodu.info 连接测试, 具体参数:主机名 www.goodu.info; 端口: 80; 超时时间:10秒;PATH: /gc/; method: GET; pattern: 如是我闻; Follow redirect: yes; 意思是定期访问 http://www.goodu.info/gc 如果返回的页面中有 “如是我闻”四个字,就认为是正常的。
然后,再定义一些报警等。 网站恢复后,请看一些图:
Mysql 运行状态:
主机运行状态: