实战:用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 运行状态:

主机运行状态:

 

 

 

 http://my.oschina.net/hyperichq/blog/308843