Nightingale 实现了 Open-Falcon 的 HTTP 数据接收接口,所以,Open-Falcon 社区很多采集插件也是可以直接使用的。但是 Falcon-Agent 不行,因为 Falcon-Agent 推送监控数据给服务端,走的是 RPC 接口。
如果你发现某个 Falcon-Plugin 是用 CRON 的方式驱动的,推送数据走的是 Falcon-Agent 的 HTTP 接口,那这个插件就可以推数据给夜莺。举个例子,比如 mymon 其配置文件采用 ini 格式,下面是样例:
[default]basedir = . # 工作目录log_dir = ./fixtures # 日志目录,默认日志文件为myMon.log,旧版本有log_file项,如果同时设置了,会优先采用log_fileignore_file = ./falconignore # 配置忽略的metric项snapshot_dir = ./snapshot # 保存快照(process, innodb status)的目录snapshot_day = 10 # 保存快照的时间(日)log_level = 5 # 日志级别[RFC5424]# 0 LevelEmergency# 1 LevelAlert# 2 LevelCritical# 3 LevelError# 4 LevelWarning# 5 LevelNotice# 6 LevelInformational# 7 LevelDebugfalcon_client=http://127.0.0.1:1988/v1/push # falcon agent连接地址[mysql]user=root # 数据库用户名password=1tIsB1g3rt # 您的数据库密码host=127.0.0.1 # 数据库连接地址port=3306 # 数据库端口
注意 falcon_client 配置项,配置的是 Falcon-Agent 的数据接收接口,可以把这个配置改成夜莺 n9e-server 的地址: http://N9E-SERVER:19000/openfalcon/push 。
Open-Falcon 的监控数据中有一个 endpoint 字段,夜莺会把 endpoint 字段当做监控对象唯一标识来对待,自动解析之后入库,就可以在对象列表中看到了。当然,如果没有 endpoint 字段也没关系,使用 metric 和 tags 也是可以唯一标识一个 Series 的。
