Consul¶
Consul 采集器用于采集 Consul 相关的指标数据,目前只支持 Prometheus 格式的数据
前置条件¶
- 安装 consul-exporter
-
下载 consul_exporter 压缩包
- 解压 consul_exporter 压缩包 - 进入 consul_exporter-0.7.1.linux-amd64 目录,运行 consul_exporter 脚本
配置¶
进入 DataKit 安装目录下的 conf.d/consul
目录,复制 consul.conf.sample
并命名为 consul.conf
。示例如下:
[[inputs.prom]]
## Exporter 地址
url = "http://127.0.0.1:9107/metrics"
## 采集器别名
source = "consul"
## 指标类型过滤, 可选值为 counter, gauge, histogram, summary
# 默认只采集 counter 和 gauge 类型的指标
# 如果为空,则不进行过滤
metric_types = ["counter", "gauge"]
## 指标名称过滤
# 支持正则,可以配置多个,即满足其中之一即可
# 如果为空,则不进行过滤
metric_name_filter = ["consul_raft_leader", "consul_raft_peers", "consul_serf_lan_members", "consul_catalog_service", "consul_catalog_service_node_healthy", "consul_health_node_status", "consul_serf_lan_member_status"]
## 指标集名称前缀
# 配置此项,可以给指标集名称添加前缀
measurement_prefix = ""
## 过滤tags, 可配置多个tag
# 匹配的tag将被忽略
tags_ignore = ["check"]
## 采集间隔 "ns", "us" (or "µs"), "ms", "s", "m", "h"
interval = "10s"
## 自定义指标集名称
# 可以将包含前缀prefix的指标归为一类指标集
# 自定义指标集名称配置优先measurement_name配置项
[[inputs.prom.measurements]]
prefix = "consul_"
name = "consul"
配置好后,重启 DataKit 即可。
目前可以通过 ConfigMap 方式注入采集器配置来开启采集器。
指标集¶
consul_host
¶
- 标签
标签名 | 描述 |
---|---|
host |
主机名称 |
- 指标列表
指标 | 描述 | 数据类型 | 单位 |
---|---|---|---|
catalog_service |
集群中服务数量 | int | count |
raft_leader |
raft集群中leader数量 | int | count |
raft_peers |
raft集群中peer数量 | int | count |
serf_lan_members |
集群中成员数量 | int | count |
consul_service
¶
- 标签
标签名 | 描述 |
---|---|
host |
主机名称 |
node |
结点名称 |
service_id |
服务id |
service_name |
服务名称 |
- 指标列表
指标 | 描述 | 数据类型 | 单位 |
---|---|---|---|
catalog_service_node_healthy |
该服务在该结点上是否健康 | int | - |
consul_health
¶
- 标签
标签名 | 描述 |
---|---|
host |
主机名称 |
node |
结点名称 |
status |
状态,status有critical, maintenance, passing,warning四种 |
- 指标列表
指标 | 描述 | 数据类型 | 单位 |
---|---|---|---|
health_node_status |
结点的健康检查状态 | int | - |
consul_member
¶
- 标签
标签名 | 描述 |
---|---|
host |
主机名称 |
member |
成员名称 |
- 指标列表
指标 | 描述 | 数据类型 | 单位 |
---|---|---|---|
serf_lan_member_status |
集群里成员的状态,其中1表示Alive,2表示Leaving,3表示Left,4表示Failed | int | - |
日志¶
如需采集 Consul 的日志,需要在开启 Consul 的时候,使用 -syslog 参数,例如
使用 logging 采集器采集日志,需要配置 logging 采集器。
进入 DataKit 安装目录下的 conf.d/log
目录,复制 logging.conf.sample
并命名为 logging.conf
。
配置如下:
[[inputs.logging]]
## required
logfiles = [
"/var/log/syslog",
]
## glob filteer
ignore = [""]
## your logging source, if it's empty, use 'default'
source = "consul"
## add service tag, if it's empty, use $source.
service = ""
## grok pipeline script path
pipeline = "consul.p"
## optional status:
## "emerg","alert","critical","error","warning","info","debug","OK"
ignore_status = []
## optional encodings:
## "utf-8", "utf-16le", "utf-16le", "gbk", "gb18030" or ""
character_encoding = ""
## The pattern should be a regexp. Note the use of '''this regexp'''
## regexp link: https://golang.org/pkg/regexp/syntax/#hdr-Syntax
multiline_match = '''^\S'''
[inputs.logging.tags]
# some_tag = "some_value"
# more_tag = "some_other_value"
日志原文:
Sep 18 19:30:23 derrick-ThinkPad-X230 consul[11803]: 2021-09-18T19:30:23.522+0800 [INFO] agent.server.connect: initialized primary datacenter CA with provider: provider=consul
切割后的字段列表如下:
字段名 | 字段值 | 说明 |
---|---|---|
date |
2021-09-18T19:30:23.522+0800 |
日志日期 |
level |
INFO |
日志级别 |
character |
agent.server.connect |
角色 |
msg |
initialized primary datacenter CA with provider: provider=consul |
日志内容 |