本文为学习笔记,原文链接为:time.geekbang.org/column/arti…
监控理论复习:
机器监控手段
机器层面的监控分为两部分,带内监控和带外监控。带内监控就是通过带内网络来监控,主要是以在 OS 里部署 Agent 的方式,来获取 OS 的 CPU、内存、磁盘、IO、网络、进程等相关监控指标。
带外监控走的是带外网络,通常和业务网络不互通,通过 IPMI、SNMP 等协议获取硬件健康状况。
带内监控,常见的 Agent 有 Categraf、Telegraf、Grafana-agent、Datadog-agent、Node-exporter 等
Categraf 介绍
Categraf 作为一款 Agent 需要部署到所有目标机器上,因为采集 CPU、内存、进程等指标,是需要读取 OS 里的一些信息的,远程读取不了。采集到数据之后,转换格式,传输给监控服务端。
Categraf 推送监控数据到服务端,走的是 Prometheus 的 RemoteWrite 协议,是基于 Protobuf 的 HTTP 协议,所以所有支持 RemoteWrite 的后端,都可以和 Categraf 对接,比如 Prometheus、Nightingale、TDEngine 等。
Categraf 配置
示例如下所示:
[[writers]]
url = "http://127.0.0.1:19000/prometheus/v1/write"
注意,Prometheus 进程启动的时候,需要增加一个启动参数 --enable-feature=remote-write-receiver,重启 Prometheus 就能接收 RemoteWrite 数据了。
Categraf 插件
Categraf 和 Telegraf、Datadog-agent 类似,都是插件架构,采集 CPU 指标的是 cpu 插件,采集内存指标的是 mem 插件,采集进程指标的是 procstat 插件,每个插件都有一个配置目录,在 conf 目录下,以 input. 打头。如下所示:
ulric@localhost conf % ls
categraf.service input.exec input.mem input.ntp input.redis_sentinel
config.toml input.greenplum input.mongodb input.nvidia_smi input.rocketmq_offset
example.input.jolokia_agent input.http_response input.mtail input.oracle input.snmp
input.arp_packet input.ipvs input.mysql input.phpfpm input.sqlserver
input.conntrack input.jenkins input.net input.ping input.switch_legacy
input.cpu input.kafka input.net_response input.postgresql input.system
input.disk input.kernel input.netstat input.processes input.tomcat
input.diskio input.kernel_vmstat input.netstat_filter input.procstat input.zookeeper
input.dns_query input.kubernetes input.nfsclient input.prometheus logs.toml
input.docker input.linux_sysctl_fs input.nginx input.rabbitmq prometheus.toml
input.elasticsearch input.logstash input.nginx_upstream_check input.redis traces.yaml
插件小结
小结
引用
本文内容来自极客时间《运维监控系统实战笔记》第11讲,原文链接为:time.geekbang.org/column/arti…