机器监控:操作系统有哪些指标需要重点关注?

659 阅读1分钟

本文为学习笔记,原文链接为:time.geekbang.org/column/arti…

监控理论复习:

image.png

机器监控手段

机器层面的监控分为两部分,带内监控和带外监控。带内监控就是通过带内网络来监控,主要是以在 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

插件小结
image.png

小结

image.png

引用

本文内容来自极客时间《运维监控系统实战笔记》第11讲,原文链接为:time.geekbang.org/column/arti…