\\
\连续两个报警之间至少相隔的秒数,维持默认即可 \\
\与alarm、sender使用一个redis \\\\ } } }
访问/health接口验证Judge是否工作正常。
curl 127.0.0.1:6081/health
另外就是查看Judge的log,log在var目录下
3.12 links
Links是为报警合并功能写的组件。如果你不想使用报警合并功能,这个组件是无需安装的。
解压Links安装包后,安装依赖库 $ virtualenv ./env
$ ./env/bin/pip install -r pip_requirements.txt
安装完依赖的lib之后就可以用control脚本启动了,log在var目录。不过启动之前要先把配置文件修改成相应配置。另外,监听的端口在gunicorn.conf中配置。
Links是个web项目,无状态,可以水平扩展,至少部署两台机器以保证可用性,前面架设nginx或者lvs这种负载设备,申请一个域名,搞定!
配置说明
Links的配置文件在frame/config.py
# 修改一下数据库配置,数据库schema文件在scripts目录 DB_HOST = \DB_PORT = 3306
DB_USER = \DB_PASS = \
DB_NAME = \
# SECRET_KEY尽量搞一个复杂点的随机字符串 SECRET_KEY = \SESSION_COOKIE_NAME = \PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30
# 我们可以cp config.py local_config.py用local_config.py中的配置覆盖config.py中的配置# 嫌麻烦的话维持默认即可,也不用制作local_config.pytry:
from frame.local_config import *except Exception, e: print \
启动之后要看看log是否正常,log在var目录。
然后浏览器访问之,发现首页404,这是正常的。之后alarm模块会用到links。
或者我们可以这么验证:
curl http://links.example.com/store -d \例:curl http://10.192.40.151:5090/store -d \
上面命令会返回一个随机字符串,拿着这个随机字符串拼接到links地址后面,浏览器访问之即可。比如返回的随机字符串是dot9kg8b,浏览器访问:http://links.example.com/dot9kg8b 即可
3.13 alarm
alarm模块是处理报警event的,judge产生的报警event写入redis,alarm从redis读取处理
alarm是个单点。对于未恢复的告警是放到alarm的内存中的,alarm还需要做报警合并,故而alarm只能部署一个实例。后期需要想办法改进。 配置说明 {
\\
\\
\# 未恢复的告警就是通过alarm的http页面来看的 }, \
\需要与sender配置成相同的,维持默认即可 \ }, \
\与judge、sender相同的redis地址 \\\\ ], \\\\\\ ],
\这两个queue维持默认即可 \ }, \
\内网可访问的portal的地址,实例\
\内网可访问的uic(或fe)的地址,实例\
\外网可访问的links的地址,实例\ } }
api部分portal和uic可以配置成内网可访问的地址,速度比较快,但是links要配置成外网可访问的地址,注意喽
如果某个核心服务挂了,可能会造成大面积报警,为了减少报警短信数量,我们做了报警合并功能。把报警信息写入links模块,然后links返回一个url地址给alarm,alarm将这个url链接发给用户,这样用户只要收到一条短信(里边是个url地址),点击url进去就是多条报警内容。
highQueues中配置的几个event队列中的事件是不会做报警合并的,因为那些是高优先级的报警,报警合并只是针对lowQueues中的事件。如果所有的事件都不想做报警合并,就把所有的event队列都配置到highQueues中即可
alarm搭建完成了,我们可以回去修改fe的配置,把fe模块的
shortcut:falconAlarm配置成alarm的http地址,是浏览器可访问的alarm的http地址
3.14 task
task是监控系统一个必要的辅助模块。定时任务,实现了如下几个功能: index更新。包括图表索引的全量更新 和 垃圾索引清理。
falcon服务组件的自身状态数据采集。定时任务了采集了transfer、graph、task这三个服务的内部状态数据。
falcon自检控任务。 配置说明
debug: true/false, 如果为true,日志中会打印debug信息 http
- enable: true/false, 表示是否开启该http端口,该端口为控制端口,主要用来对task发送控制命令、统计命令、debug命令等 - listen: 表示http-server监听的端口 index
- enable: true/false, 表示是否开启索引更新任务