开启/关闭 可观测性系统
前置约束
ONES版本 >= 6.5.0 || 6.1 LTS >= 6.1.94
配置参数
配置项 | 类型 | 示例 | 描述 |
---|---|---|---|
onesTelemetryLoggingEnabled | bool | false | 是否记录日志到本地,默认开启 |
grafanaLocalNodePort | number | 31380 | grafana 监控页面访问端口 |
alertmanagerConfig | 复合结构 | 参考文档模版 | alertmanager告警配置 |
otlpExportGrpcAddr | string | otlp-collector-service.ones-telemetry:4317 | otlp 服务地址,配置后会开启链路追踪,识别并采集有报错的链路 |
onesTelemetryExportEndpoint | string | https://hybridcloud.ones.cn/telemetry/otlp/ | 混合云 otlp 服务地址,配置后会上报监控数据到 ONES 混合云 |
onesTelemetryExportLogEnabled | bool | false | 是否上报报错链路日志到 ONES 混合云,默认关闭 |
onesTelemetryLoggingLogFileMaxAge | int | 7 | 本地日志文件最长保存天数,默认7天 |
onesTelemetryLoggingLogTotalMaxSize | int | 4096 | 本地日志文件最大大小,默认4096M |
onesTelemetryLoggingLogDiskIOTimeThreshold | int | 90 | 本地日志默认在磁盘IO时间高于90%时停止写入,低配环境遇到该负载限制无法写日志时可调整为200 |
onesTelemetryFluentElasticsearchEnabled | bool | false | 是否开启日志输出到 elasticsearch,默认关闭 |
onesTelemetryFluentCustomOutputConfigurations | string | 自定义日志输出配置 |
操作步骤
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 # 卸载可观测性系统