跳到主要内容
版本:v3&v6

开启/关闭 可观测性系统

前置约束

ONES版本 >= 6.5.0 || 6.1 LTS >= 6.1.94

配置参数

配置项类型示例描述
onesTelemetryLoggingEnabledboolfalse是否记录日志到本地,默认开启
grafanaLocalNodePortnumber31380grafana 监控页面访问端口
alertmanagerConfig复合结构参考文档模版alertmanager告警配置
otlpExportGrpcAddrstringotlp-collector-service.ones-telemetry:4317otlp 服务地址,配置后会开启链路追踪,识别并采集有报错的链路
onesTelemetryExportEndpointstringhttps://hybridcloud.ones.cn/telemetry/otlp/混合云 otlp 服务地址,配置后会上报监控数据到 ONES 混合云
onesTelemetryExportLogEnabledboolfalse是否上报报错链路日志到 ONES 混合云,默认关闭
onesTelemetryLoggingLogFileMaxAgeint7本地日志文件最长保存天数,默认7天
onesTelemetryLoggingLogTotalMaxSizeint4096本地日志文件最大大小,默认4096M
onesTelemetryLoggingLogDiskIOTimeThresholdint90本地日志默认在磁盘IO时间高于90%时停止写入,低配环境遇到该负载限制无法写日志时可调整为200
onesTelemetryFluentElasticsearchEnabledboolfalse是否开启日志输出到 elasticsearch,默认关闭
onesTelemetryFluentCustomOutputConfigurationsstring自定义日志输出配置

操作步骤

ONES 安装可观测性系统

修改配置

执行下面命令进入运行中的 ones 容器

ones-ai-k8s.sh

修改 config/private.yaml 配置文件

# 添加如下配置
onesTelemetryExportEndpoint: "https://hybridcloud.ones.cn/telemetry/otlp/"
onesTelemetryExportLogEnabled: true
otlpExportGrpcAddr: "otlp-collector-service.ones-telemetry:4317"
grafanaLocalNodePort: "31380"

应用配置

从 6.5.0 或 LTS 6.1.94 版本以下升级上来的环境,需要先卸载旧组件:

make delete-ones-logging RETAIN_DATA=false
make delete-monitoring-system RETAIN_DATA=false
make delete-prometheus RETAIN_DATA=false
make delete-fluent-bit RETAIN_DATA=false
make delete-ones-alert RETAIN_DATA=false
# 若集群使用本地存储,且无需保留监控数据,可以执行下面命令删除数据
# 默认 ONES 数据目录是 /data/ones
rm -r /data/ones/ones-local-storage/ones-logging/ones-logging
rm -r /data/ones/ones-local-storage/others-static-pvc/monitoring-system

安装可观测性系统

make setup-ones-telemetry
make setup-ones

验证

查看本地日志:

# 本地存储模式下默认 ONES 数据目录是 /data/ones
ls /data/ones/ones-local-storage/ones-logging/ones-telemetry/data-volume-ones-logging-statefulset-0/logs/

ONES 可观测性系统配置监控访问端口

ONES 可观测性系统默认开启指标监控。通过配置 grafanaLocalNodePort 控制监控页面的访问端口。

修改 config/private.yaml 配置文件

grafanaLocalNodePort: "31380"

执行命令应用配置

make setup-ones-telemetry

使用 ONES 服务的 ip + grafanaLocalNodePort 访问 grafana 控制台。

ONES 可观测性系统关闭监控访问

修改 config/private.yaml 配置文件

# 注释如下配置
# grafanaLocalNodePort: "31380"

执行命令应用配置

make setup-ones-telemetry

ONES 可观测性系统开启告警

配置开启alertmanager监控告警

下面示范使用企业微信群Bot告警机器人功能

修改 config/private.yaml 配置文件


# 以下分别创建两组 receivers,其中Critical设置两组webhook接收地址
# 发送集群内企业微信Bot WebhookService服务,由服务转发告警至企业微信Bot
# 将P0-P1级别告警分别发送:Critical receivers
# 将P2-P3级别告警分别发送:Default receivers
# 添加如下配置
enableAlertWechatRobot: true # 打开集群内企业微信告警机器人功能,由服务转发到企业微信Bot

alertmanagerConfig: |
"global":
"resolve_timeout": "1m"
"inhibit_rules":
- "equal":
- "namespace"
- "alertname"
"source_match":
"severity": "critical"
"target_match_re":
"severity": "warning|info"
- "equal":
- "namespace"
- "alertname"
"source_match":
"severity": "warning"
"target_match_re":
"severity": "info"
"receivers":
- "name": "Default"
"webhook_configs":
- "url": "http://otlp-collector-service:8129/alerts"
"send_resolved": true
- "url": "http://wechatrobot-svc:13100/webhook?key=这里填写企微Bot Webhook Key"
"send_resolved": true
- "name": "Watchdog"
- "name": "Critical"
"webhook_configs":
- "url": "http://otlp-collector-service:8129/alerts"
"send_resolved": true
- "url": "http://wechatrobot-svc:13100/webhook?key=这里填写企微Bot Webhook Key"
"send_resolved": true
"route":
"group_by":
- "namespace"
"group_interval": "1m"
"group_wait": "30s"
"receiver": "Default"
"repeat_interval": "12h"
"routes":
- "match":
"alertname": "Watchdog"
"receiver": "Watchdog"
- "match":
"priority": "P0"
"receiver": "Critical"
"repeat_interval": "10m"
- "match":
"priority": "P1"
"receiver": "Critical"
"repeat_interval": "30m"
- "match":
"priority": "P2"
"receiver": "Critical"
"repeat_interval": "2h"
"templates":
- "/etc/alertmanager/config/default.tmpl"

应用配置

make setup-ones-telemetry

更多告警接收器配置方案,请参考 Alertmanager官方配置文档

取 ONES 离线诊断文件

如果没有配置混合云上报地址 onesTelemetryExportEndpoint,可以通过下面命令取 ONES 离线诊断文件:

# 本地存储模式下默认 ONES 数据目录是 /data/ones
which zip # 请确保已安装 zip
cd /data/ones/ones-local-storage/otlp-collector/ones-telemetry/data-volume-otlp-collector-statefulset-0/files
zip -r -0 "/tmp/telemetry-$(hostname)-$(date '+%Y%m%d').zip" ./

生成的离线压缩文件在 /tmp/ 目录下,例如 /tmp/telemetry-test1-20241008.zip

ONES 卸载可观测性系统

进入运行中的 ones 容器

ones-ai-k8s.sh

修改 config/private.yaml 配置文件

# 注释如下配置
# onesTelemetryExportEndpoint: "https://hybridcloud.ones.cn/telemetry/otlp/"
# onesTelemetryExportLogEnabled: true
# otlpExportGrpcAddr: "otlp-collector-service.ones-telemetry:4317"
# grafanaLocalNodePort: "31380"

关闭可观测性系统并删除数据

make setup-ones # 应用配置
make delete-ones-telemetry RETAIN_DATA=false # 卸载可观测性系统