1. 一般可视化界面的监控的工作原理:
(1). 在可视化见面先建立自己的监控脚本,并设置好要监控的监控项(cpu mem rt qps),并提交,此时把这个监控脚本暂时保存在监控服务器上面;
(2).在可视化界面进行监控象添加,其实就是对产品线的某一个group添加监控项,相当于设置某一个或多个监控脚本对此group的服务器进行监控
(3). 部署采集指令:把写好的监控脚本部署到已经参加此监控项(第二步)的服务器上,实际上就是:把保存在监控服务器的监控脚本传输到第二步中采用此指令进行监控的服务器上面,脚本放在 目录/home/hubble/monitor/script中。
(4). 部署指令有一定的时间延时(15分钟);监控系统可以设置默认的采集数据的频度(监控脚本执行的时间周期);
2. 一般的监控可以有主动监控和被动监控;主动监控是自己运行监控脚本,获取数据后发送给监控服务器,监控服务器根据预先设置的监控项的值进行对比,如果满足报警条件就进行报警;被动监控指监控服务器会定时通知被监控的服务器的监控脚本执行,并把执行结果读取到监控服务器上面,并绝对是否进行报警。
3. 一般监控服务器和被监控的服务器是C/S结构;这样在被监控的服务器上面提前安装 监控软件的客户端(hubagent);并开启客户端进程
4. 基本步骤:
(1). 安装客户端 hubagent rpm -ivh hubagent.***.rpm
[zengtai@tweb4-vm5.tanx.cm4 ~]$ rpm -q hubagent
hubagent-1.2.6-4.el5
(2). 检测是否开启hubagnt进程(可以看成服务----与监控主服务器通信)
[zengtai.csm@tweb4-vm6.tanx.cm4 ~]$ ps -aux | grep hubagent
hubble 21090 0.0 0.4 190020 9808 ? Sl 18:54 0:00 /home/tops/bin/python /home/hubble/monitor/hubagent/src/AgentMangerSrv.py
只要有上面的脚本执行,就说明hubagent已经开启
如果未开启:sudo /etc/init.d/hubagent start
(3). 在采集指令完成后监控脚本已经在服务器的某个目录中存在;我们可以在此台机器上执行这个脚本来验证这个脚本能不能执行
[zengtai.csm@xeng10.tanx.cm4 ~]$ sudo -u hubble /home/hubble/monitor/script/check_networkid_qps /home/a/share/****/data/history/qps_ctrl_rate_history "29543757|30121174|29600513"
1336127875 networkid=17825897 qps=8000
其中,sudo -u hubble的hubble是hubagent的用户,在执行监控脚本时会切换成hubble用户; /home/hubble/monitor/script/check_networkid_qps 是监控脚本
后面两部分是参数。
(4). 被监控服务器hubagent-----监控主服务器之间通过HTTP协议进行通信:
request: http://172.24.130.104:8082/scriptexcute?token=menghong&script=check_networkid_qps&timeout=5&args=/home/a/share/TanxToruk/TanxQpsRateProducer/data/history/qps_ctrl_rate_history 29543757\|30121174\|29600513
output: 1336132006 networkid=29227910 qps=8883
则, http://172.24.130.104:8082/scriptexcute?token=menghong&script=check_networkid_qps&timeout=5&args=/home/a/share/TanxToruk/TanxQpsRateProducer/data/history/qps_ctrl_rate_history 29543757\|30121174\|29600513
就是一个完整的HTTP协议Get方法通信,把参数通过Get方式传送到被监控服务器上,并把2个参数赋给监控脚本然后执行这个脚本并把执行结果发给主监控服务器。
上面的URL:172.24.130.104:8082 指被监控主机172.24.130.104=xeng10,8082是通信的接口;scriptexcute?是执行脚本目录;?就是一些参数:script=check_networkid_qps 就是要执行的脚本;timeout指连接超过这个时间就失败,后面的两个是脚本需要的参数。
(5). 同时也可以用上面的URL在对应的被监控服务器上执行这个脚本:
[zengtai.csm@xeng10.tanx.cm4 ~]$ curl "http://172.24.130.105:8082/scriptexcute?token=menghong&script=check_networkid_qps&timeout=5&args=/home/a/share/TanxToruk/TanxQpsRateProducer/data/history/qps_ctrl_rate_history%2029543757\|30121174\|29600513"
其中:空格----->%20来表示;然后 | 或其他的关键字符要转义 \|
一般转义的工作是监控软件开发的小组来做的,不需要运维的人员来转义;