Nightingale 实现了 Open-Falcon 的 HTTP 数据接收接口,所以,Open-Falcon 社区很多采集插件也是可以直接使用的。但是 Falcon-Agent 不行,因为 Falcon-Agent 推送监控数据给服务端,走的是 RPC 接口。

    如果你发现某个 Falcon-Plugin 是用 CRON 的方式驱动的,推送数据走的是 Falcon-Agent 的 HTTP 接口,那这个插件就可以推数据给夜莺。举个例子,比如 mymon 其配置文件采用 ini 格式,下面是样例:

    1. [default]
    2. basedir = . # 工作目录
    3. log_dir = ./fixtures # 日志目录,默认日志文件为myMon.log,旧版本有log_file项,如果同时设置了,会优先采用log_file
    4. ignore_file = ./falconignore # 配置忽略的metric项
    5. snapshot_dir = ./snapshot # 保存快照(process, innodb status)的目录
    6. snapshot_day = 10 # 保存快照的时间(日)
    7. log_level = 5 # 日志级别[RFC5424]
    8. # 0 LevelEmergency
    9. # 1 LevelAlert
    10. # 2 LevelCritical
    11. # 3 LevelError
    12. # 4 LevelWarning
    13. # 5 LevelNotice
    14. # 6 LevelInformational
    15. # 7 LevelDebug
    16. falcon_client=http://127.0.0.1:1988/v1/push # falcon agent连接地址
    17. [mysql]
    18. user=root # 数据库用户名
    19. password=1tIsB1g3rt # 您的数据库密码
    20. host=127.0.0.1 # 数据库连接地址
    21. port=3306 # 数据库端口

    注意 falcon_client 配置项,配置的是 Falcon-Agent 的数据接收接口,可以把这个配置改成夜莺 n9e-server 的地址: http://N9E-SERVER:19000/openfalcon/push

    Open-Falcon 的监控数据中有一个 endpoint 字段,夜莺会把 endpoint 字段当做监控对象唯一标识来对待,自动解析之后入库,就可以在对象列表中看到了。当然,如果没有 endpoint 字段也没关系,使用 metric 和 tags 也是可以唯一标识一个 Series 的。