本帖最后由 da11 于 2025-4-25 00:13 编辑
Apache SkyWalking 监控 Linux 实战 转载作者:Geek_ymv、顾振印
SkyWalking 从 8.4 版本开始支持监控主机,用户可以轻松从 dashboard 上检测可能的问题,例如当 CPU 使用过载、内存或磁盘空间不足或者当网络状态不健康时等。
与监控 MySQL Server 类似,SkyWalking 也是利用 Prometheus 和 OpenTelemetry 收集主机的 metrics 数据。
同时 SkyWalking 也提供了使用 InfluxDB Telegraf 通过 Telegraf receiver 接收主机的 metrics 数据,telegraf receiver 插件负责接收、处理和转换 metrics,
然后将转换后的数据发送给 SkyWalking MAL 处理。
1.我们需要先安装node_exporter和docker pull otel/opentelemetry-collector
node_exporter下载地址如下:
wget https://github.com/prometheus/no ... .linux-amd64.tar.gz
docker pull otel/opentelemetry-collector命令:
docker pull otel/opentelemetry-collector:0.86.0
2.下载完毕后解压
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
3.进入对应的文件夹
cd node_exporter-1.7.0.linux-amd64
4.注册服务
vim /etc/systemd/system/node_exporter.service
===============================================================
[Unit]
Description=node exporter service
Documentation=https://prometheus.io
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/data/linux-monitoring/node_exporter-1.7.0.linux-amd64/node_exporter --collector.textfile.directory=/data/linux-monitoring/node_exporter-1.7.0.linux-amd64/ --web.listen-address=:19100
Restart=on-failure
[Install]
WantedBy=multi-user.target
================================================================
--web.listen-address=:19100 是将端口9100修改为19100,一般只能通过此方法修改端口。
执行命令刷新系统服务命令:
systemctl daemon-reload
开启node_exporter服务命令:
systemctl start node_exporter
启动成功后访问 http://IP:19100/metrics 可以看到采集到的 metrics 信息。
5.部署 OpenTelemetry Collector,首先需要创建 OpenTelemetry Collector配置文件
mkdir -p /data/linux-monitoring/otel-collector/config/
vim otel-collector-config.yaml
- receivers:
- prometheus:
- config:
- scrape_configs:
- - job_name: "vm-monitoring" # make sure to use this in the vm.yaml to filter only VM metrics,一般不能修改此名称
- scrape_interval: 10s
- static_configs:
- - targets: ["192.168.233.128:19100"] # node_exporter监测的地址
- processors:
- batch:
- exporters:
- otlp:
- endpoint: "oap:11800" # SkyWalking采集端口地址,这里的oap是容器直连名称,之后运行容器需要link连接!!
- tls:
- insecure: true
- logging:
- loglevel: debug
- service:
- pipelines:
- metrics:
- receivers: [prometheus]
- processors: [batch]
- exporters: [otlp, logging]
复制代码
6.启动 OpenTelemetry Collector服务
docker run -d -p 55678:55678 --name otel-collector --link oap:oap -v /data/linux-monitoring/otel-collector/config/otel-collector-config.yaml:/etc/otel-collector-config.yaml -e TZ=Asia/Shanghai otel/opentelemetry-collector:0.86.0 --config=/etc/otel-collector-config.yaml
7.在SkyWalking-ui查看linux主机是否刷新进去了,如看到主机则代表成功,但是图表样式需要自行一个个点击编辑才能看到具体的数据效果
需要手动输入指标,关键词为vm才能监控,右侧“铅笔”按钮的计算选项“Percentage”为百分比选项
疑难问答:保存图表样式报错:The dashboard update has been disabled. Check SW_ENABLE_UPDATE_UI_TEMPLATE on configuration-vocabulary.md(https://skywalking.apache.org/do ... guration-vocabulary) to activate it.
这是因为SkyWalking默认禁用了样式更改,需要重新指定 SW_ENABLE_UPDATE_UI_TEMPLATE参数为true 运行skywalking-oap-server
需要删掉旧的skywalking-oap-server,再重新运行,解除SW_ENABLE_UPDATE_UI_TEMPLATE参数运行命令如下:
docker run --name oap --restart always -p 11800:11800 -p 12800:12800 --link es:es --privileged=true -d -e TZ=Asia/Shanghai -e SW_ES_USER= -e SW_ES_PASSWORD= -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=es:9200 -e SW_ENABLE_UPDATE_UI_TEMPLATE=true -v /etc/localtime:/etc/localtime:ro apache/skywalking-oap-server:9.3.0
这时启动完成后就可以保存样式了~
|