Falcon-Plugin

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 的。