夜莺-Nightingale
夜莺V6
项目介绍 架构介绍
快速开始
黄埔营
安装部署
升级
采集器
使用手册
API
数据库表结构
FAQ
开源生态
Prometheus
版权声明
第1章:天降奇兵
第2章:探索PromQL
第3章:Prometheus告警处理
第4章:Exporter详解
第5章:数据与可视化
第6章:集群与高可用
第7章:Prometheus服务发现
第8章:监控Kubernetes
第9章:Prometheus Operator
参考资料

Categraf 下载、安装和使用

支持的OS

categraf 采用golang编写,所以只要支持golang的os,理论上都可以运行。

当前categraf使用golang 1.21版本编译。

  • Windows: Windows10 及以上版本, Windows Server2008以上版本
  • Linux: 内核2.6.32以上的OS
  • macOS: 10.15及以上版本

采集插件

  • aliyun: 阿里云指标采集插件,用于从阿里云服务收集性能指标。
  • amd_rocm_smi: AMD显卡采集插件,用于收集AMD显卡的性能和状态信息。
  • appdynamics: AppDynamics采集插件,用于从AppDynamics平台收集应用性能数据。
  • arp_packet: ARP信息采集插件,用于捕获和分析ARP数据包。
  • bind: BIND信息采集插件,用于收集BIND DNS服务器的性能数据。
  • cadvisor: cAdvisor或kubelet内置cAdvisor采集插件,用于收集容器性能指标。
  • chrony: Chrony是一个网络时间同步工具,插件可能用于监控时间同步状态。
  • clickhouse: ClickHouse数据库性能监控插件。
  • cloudwatch: Amazon CloudWatch采集插件,用于收集AWS CloudWatch指标。
  • conntrack: 连接跟踪采集插件,用于监控网络连接状态。
  • consul: Consul服务发现和配置共享系统采集插件。
  • cpu: CPU性能监控插件,用于收集CPU使用率等信息。
  • dcgm: NVIDIA DCGM(Data Center GPU Manager)采集插件,用于监控NVIDIA GPU。
  • disk: 磁盘性能监控插件,用于收集磁盘使用情况和性能数据。
  • diskio: 磁盘I/O性能监控插件。
  • dns_query: DNS查询监控插件,用于监控DNS查询响应时间等。
  • docker: Docker容器监控插件。
  • elasticsearch: Elasticsearch搜索引擎性能监控插件。
  • exec: 执行外部命令并收集输出的插件。
  • filecount: 文件/文件目录数量和变化监控插件,用于统计特定目录下的文件数量/文件变化。
  • googlecloud: Google Cloud监控插件,用于收集Google Cloud平台的性能指标。
  • greenplum: Greenplum数据库性能监控插件。
  • haproxy: HAProxy负载均衡器监控插件。
  • http_response: HTTP响应时间监控插件。
  • influxdb: InfluxDB时间序列数据库性能监控插件。
  • ipmi: IPMI(智能平台管理接口)采集插件,用于硬件监控和管理。
  • ipvs: Linux IPVS(IP Virtual Server)负载均衡器监控插件。
  • jenkins: Jenkins持续集成工具监控插件。
  • jolokia_agent_kafka: Jolokia代理Kafka监控插件。
  • jolokia_agent_misc: Jolokia代理其他服务监控插件。
  • kafka: Apache Kafka消息队列监控插件。
  • kernel: Linux内核性能监控插件。
  • kernel_vmstat: Linux内核虚拟内存统计监控插件。
  • kubernetes: Kubernetes集群监控插件。
  • ldap: LDAP(轻量级目录访问协议)服务监控插件。
  • linux_sysctl_fs: Linux文件系统sysctl配置监控插件。
  • logstash: Logstash日志处理和转发工具监控插件。
  • mem: 内存性能监控插件。
  • mongodb: MongoDB数据库性能监控插件。
  • mtail: mtail日志数据提取工具监控插件。
  • mysql: MySQL数据库性能监控插件。
  • nats: NATS消息系统监控插件。
  • net: 网络性能监控插件。
  • net_response: 网络(TCP/UDP)响应时间监控插件。
  • netstat: netstat网络状态(time wait/established等)统计监控插件。
  • netstat_filter: 采集网络连接情况,并根据用户条件进行过滤统计。
  • nfsclient: NFS客户端监控插件。
  • nginx: Nginx Web服务器监控插件。
  • nginx_upstream_check: Nginx上游服务健康检查插件。
  • node_exporter: 类似Node Exporter监控插件,多了file和crontab collector。
  • nsq: NSQ消息队列监控插件。
  • ntp: NTP(网络时间协议)服务监控插件。
  • nvidia_smi: NVIDIA SMI(系统管理界面)采集插件,用于监控NVIDIA GPU。
  • oracle: Oracle数据库性能监控插件。
  • phpfpm: PHP-FPM(FastCGI进程管理器)监控插件。
  • ping: 网络连通性监控插件。
  • postgresql: PostgreSQL数据库性能监控插件。
  • processes: 进程状态(running/sleeping等)监控插件。
  • procstat: 系统进程状态监控插件。
  • prometheus: 采集Prometheus格式监控数据的插件。
  • rabbitmq: RabbitMQ消息队列(3.8以下版本)监控插件。
  • redis: Redis数据库性能监控插件。
  • redis_sentinel: Redis Sentinel监控插件。
  • rocketmq_offset: RocketMQ偏移量监控插件。
  • self_metrics: 自身性能指标监控插件。
  • smart: S.M.A.R.T(自监测、分析和报告技术)硬盘监控插件。
  • snmp: SNMP(简单网络管理协议)监控插件。
  • snmp_trap: SNMP Trap监控插件。
  • sockstat: 套接字统计监控插件。
  • sqlserver: Microsoft SQL Server数据库性能监控插件。
  • supervisor: Supervisor进程监控工具监控插件。
  • switch_legacy: 旧版交换机监控插件。
  • system: Linux 系统性能监控插件。
  • systemd: systemd系统和服务管理器监控插件。
  • tengine: Tengine Web服务器监控插件。
  • tomcat: Tomcat应用服务器监控插件。
  • traffic_server: Apache Traffic Server监控插件。
  • vsphere: VMware vSphere监控插件。
  • whois: WHOIS查询监控插件。
  • xskyapi: Xsky分布式存储系统API监控插件。
  • zookeeper: Apache Zookeeper监控插件。

下载

国内用户可以直接去 下载中心下载,国外用户推荐去categraf releases 页面,下载编译好的二进制,也可自行编译,编译只需要一条命令:go build 当然,前提是机器上有 Go 环境。

categraf release包的命名规则遵循{project}-{version}-{os}-{arch}.tar.gz (windows后缀是zip),例如 categraf-v0.3.21-linux-amd64.tar.gz 表示 categraf 的版本是 v0.3.21,运行在 linux 系统上,架构是 amd64。

categraf v0.3.47(企业版v0.3.74)及以后版本oracle插件不依赖cgo,不用下载with-cgo版本了

categraf-v0.3.21-linux-amd64-with-cgo-plugin.tar.gz # 带 cgo 插件的版本,目前cgo插件有两个 dcgm 和 arp 
categraf-v0.3.21-linux-amd64.tar.gz # linux + amd64  环境下运行的版本
categraf-v0.3.21-linux-arm64.tar.gz # linux + arm64  环境下运行的版本  
categraf-v0.3.21-windows-amd64.zip  # windows + amd64 环境下运行的版本
categraf-v0.3.21-windows-arm64.zip  # windows + arm64 环境下运行的版本
categraf-slim-v0.3.21-linux-amd64.tar.gz # linux+amd64 环境下运行,不包含 ibex-agent/prometheus-agent/logs-agent 不包含arp和 oracle 插件,只采集metrics的用户可以尝试 不了解区别的不推荐使用这个包
categraf-slim-v0.3.21-linux-arm64.tar.gz #linux+arm64 环境下运行,不包含 ibex-agent/prometheus-agent/logs-agent 不包含arp 和 oracle 插件,只采集metrics的用户可以尝试 不了解区别的不推荐使用这个包

如果是从老版本升级,也是建议大家查看 下载中心 或者 categraf releases 页面,每个版本改动了什么,升级时注意什么,都会在这里写清楚。

部署

在目标机器部署,只需要 categraf 二进制、以及 conf 目录,conf 下有一个主配置文件:

  1. config.toml,定义机器名、全局采集频率、全局附加标签、remote write backend地址等;
  2. 另外就是各种采集插件的配置目录,以input.打头,categraf 会遍历这些文件下的插件配置执行采集任务,如果某个采集器 xx 不想启用,把 input.xx 改个其他前缀(或者删除这个目录),比如 bak.input.xx,categraf 就会忽略这个采集器。

启停

linux systemd 托管 (推荐)

v0.3.35 版本及以上支持

# 以service方式安装, 相当于添加service文件+systemctl daemon-reload
sudo ./categraf  --install

# 以service方式卸载, 相当于systemctl stop categraf + 删除service文件
sudo ./categraf  --remove

# 以service方式启动categraf ,相当于systemctl start categraf
# 如果之前有nohup启动的categraf进程,需要先人工停掉原来的categraf进程
sudo ./categraf  --start

# 以service方式停止categraf,相当于systemctl stop categraf
sudo ./categraf  --stop

# 以service方式查看categraf,相当于systemctl status categraf
sudo ./categraf  --status

v0.3.35 版本以下

sudo cp categraf.service /etc/systemd/system/
sudo systemctl daemon-reload

# 以服务方式启动
systemctl start categraf

# 停止服务
systemctl stop categraf

windows 服务方式启动

# windows 安装服务
categraf.exe --win-service-install

# 启动服务
categraf.exe --win-service-start 

# 停止服务
categraf.exe --win-service-stop

windows 后台方式启动

# 后台启动
win_run.bat start   

# 停止后台进程
win_run.bat stop

:以服务方式启动或者后台方式启动二选一(如果有session限制,需要以后台方式启动)

测试

我们经常会需要测试某个采集器的行为,临时看一下这个采集器输出哪些监控指标,比如配置好了 conf/input.mysql/mysql.toml 想要看看采集了哪些 mysql 指标,可以执行命令:./categraf --test --inputs mysql

如果要一次性测试、查看多个插件的输出,可以执行命令:./categraf --test --inputs mysql:cpu:mem, 注意使用冒号来分割多个插件。

这个命令会去连接你配置的 mysql 实例,执行SQL收集输出,将输出的内容做格式转换,最终打印到 stdout,如果我们在 stdout 正常看到了 mysql 相关监控指标,则说明一切正常,否则就是哪里出了问题,大概率是 conf/input.mysql/mysql.toml 配置的有问题。

重启

如果修改了某个采集器的配置,需要重启 categraf 或者给 categraf 进程发送HUP信号,发送HUP信号的命令,如下:

kill -HUP `pidof categraf`

:windows下不支持发送HUP信号,需要重启categraf。

另外,categraf 支持哪些命令行参数,可以通过 ./categraf --help 查看

自升级

linux下v0.3.36版本及以上支持通过 --update --update_url 升级文件来进行升级 ,例如

./categraf  --update  --update_url https://download.flashcat.cloud/categraf-v0.3.36-linux-amd64.tar.gz

自升级的前提就是: 已经通过 --install 安装了服务,如果没有安装服务,需要先安装服务,然后再执行自升级命令。

categraf --install v0.3.36 及以上版本,会自动做以下3件事情

  • 创建一个categraf.service文件
  • 把categraf所在目录指定为WorkingDirectory
  • 指定 -configs categraf所在目录下的conf 作为启动参数

非systemd托管方式启动自升级

如果你之前使用nohup方式/supervisord方式启动categraf,想升级到v0.3.36及以上版本,

  • 需要先停止之前启动的categraf进程
  • 用新版本替换原有的categraf版本,保持categraf和conf目录放在同一个父目录下
  • 执行 sudo ./categraf --install 安装服务
  • 执行 sudo ./categraf --start 或者 sudo systemctl start categraf 启动服务

systemd托管方式启动自升级

如果你的unit文件恰好也叫 categraf.service

  • 需要先停止之前启动的categraf进程
  • 用新版本替换原有的categraf版本,保持categraf和conf目录放在同一个父目录下
  • 执行 sudo ./categraf --remove 删除旧service
  • 执行 sudo ./categraf --install 创建新的service
  • 执行 sudo ./categraf --start 或者 systemctl start categraf 启动服务

如果你的unit文件不叫 categraf.service

  • 需要先停止之前启动的categraf进程
  • 用新版本替换原有的categraf版本,保持categraf和conf目录放在同一个父目录下
  • 执行 sudo ./categraf --install 创建新的service
  • 执行 sudo ./categraf --start 或者 systemctl start categraf 启动服务

无论是上面哪种方式, 后续升级categraf只需执行sudo ./categraf --update --update_url=https://download.flashcat.cloud/categraf-v0.3.37-linux-amd64.tar.gz 升级到v0.3.37版本

开源版
Flashcat
Flashduty