All-in-one的监控数据采集器Categraf

基本介绍

Categraf 是一款 all-in-one 的采集器,由 快猫团队 开源,代码托管在:

Categraf 不但可以采集 OS、MySQL、Redis、Oracle 等常见的监控对象,也准备提供日志采集能力和 trace 接收能力,这是夜莺主推的采集器,相关信息请查阅项目 README

Categraf 采集到数据之后,通过 remote write 协议推给远端存储,Nightingale 恰恰提供了 remote write 协议的数据接收接口,所以二者可以整合在一起,重点是配置 Categraf 的 conf/config.toml 中的 writer 部分,其中 url 部分配置为 n9e-server 的 remote write 接口:

  1. [writer_opt]
  2. # default: 2000
  3. batch = 2000
  4. # channel(as queue) size
  5. chan_size = 10000
  6. [[writers]]
  7. url = "http://N9E-SERVER:19000/prometheus/v1/write"
  8. # Basic auth username
  9. basic_auth_user = ""
  10. # Basic auth password
  11. basic_auth_pass = ""
  12. # timeout settings, unit: ms
  13. timeout = 5000
  14. dial_timeout = 2500
  15. max_idle_conns_per_host = 100

采集插件

Categraf 每个采集器,都有一个配置目录,在 conf 下面,以 input. 打头,如果某个插件不想启用,就把插件配置目录改个名字,别让它是 input. 打头即可,比如 docker 不想采集,可以 mv input.docker bak.input.docker 就可以了。当然了,也并不是说只要有 input.xx 目录,就会采集对应的内容,比如 MySQL 监控插件,如果想采集其数据,至少要在 conf/input.mysql/mysql.toml 中配置要采集的数据库实例的连接地址。

每个采集插件的配置文件,都给了很详尽的注释,阅读这些注释,基本就了解如何去配置各个插件了。另外,有些采集插件还会同步提供夜莺监控大盘JSON和告警规则JSON,大家可以直接导入使用,在代码的 inputs 目录,机器的监控大盘比较特殊,放到了 system 目录,没有分散在 cpu、mem、disk 等目录。

很多采集插件的配置文件中,都有 [[instances]] 配置段,这个 [[]] 在 toml 配置中表示数组,即 instances 配置段可以配置多份,比如 oracle 的配置文件:

  1. # collect interval, unit: second
  2. interval = 15
  3. [[instances]]
  4. address = "10.1.2.3:1521/orcl"
  5. username = "monitor"
  6. password = "123456"
  7. is_sys_dba = false
  8. is_sys_oper = false
  9. disable_connection_pool = false
  10. max_open_connections = 5
  11. # interval = global.interval * interval_times
  12. interval_times = 1
  13. labels = { region="cloud" }
  14. [[instances]]
  15. address = "192.168.10.10:1521/orcl"
  16. username = "monitor"
  17. password = "123456"
  18. is_sys_dba = false
  19. is_sys_oper = false
  20. disable_connection_pool = false
  21. max_open_connections = 5
  22. labels = { region="local" }

address 可以指定连接地址,如果想监控多个 oracle 实例,一个 address 显然不行了,就要把 instances 部分拷贝多份,即可做到监控多个 oracle 实例的效果。

当然,更多信息请查阅Categraf README,README 中有 FAQ 和 QuickStart 的链接,可以帮助大家快速入门。另外,大家也可以参考我的公众号文章《讲解Categraf采集器》里边有3个视频教程介绍Categraf,公众号也欢迎大家关注,会持续更新监控相关的文章。