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

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat