devops/skywalking/README.md

3.4 KiB
Raw Permalink Blame History

SkyWalking 安装指南

概述

SkyWalking 是一个开源的 APM应用性能监控系统用于监控、追踪和诊断分布式系统。

组件

  • Elasticsearch 7.9.0: 数据存储后端
  • SkyWalking OAP Server 8.9.1: 后端分析处理服务
  • SkyWalking UI 8.9.1: Web 管理界面

安装

快速安装

# 进入 skywalking 目录
cd newinstall/skywalking

# 1. 在 master 节点上设置存储目录
sudo ./setup-storage.sh

# 2. 执行安装脚本
./install-skywalking.sh

手动安装

# 1. 部署 Elasticsearch
kubectl apply -f elasticsearch-deployment.yaml
kubectl apply -f elasticsearch-service.yaml

# 2. 等待 Elasticsearch 就绪
kubectl wait --for=condition=ready pod -l app=elasticsearch --timeout=300s

# 3. 部署 SkyWalking OAP
kubectl apply -f skywalking-oap-deployment.yaml
kubectl apply -f skywalking-oap-service.yaml

# 4. 等待 OAP 就绪
kubectl wait --for=condition=ready pod -l app=skywalking-oap --timeout=300s

# 5. 部署 SkyWalking UI
kubectl apply -f skywalking-ui-deployment.yaml
kubectl apply -f skywalking-ui-service.yaml

# 6. 配置 Ingress
kubectl apply -f skywalking-ingress.yaml

访问

配置说明

存储配置

  • 存储类型: HostPath (单节点)
  • 存储位置: Master 节点的 /opt 目录
  • Elasticsearch 数据: /opt/elasticsearch
  • SkyWalking OAP 数据: /opt/skywalking-oap
  • 数据持久性: 持久化存储Pod 重启后数据保留

Elasticsearch

  • 端口: 9200 (HTTP), 9300 (Transport)
  • 内存: 1-2GB
  • 存储: 单节点模式,数据存储在 /opt/elasticsearch

SkyWalking OAP

  • 端口: 11800 (gRPC), 12800 (REST)
  • 内存: 1-2GB
  • 存储后端: Elasticsearch
  • 数据存储: /opt/skywalking-oap

SkyWalking UI

  • 端口: 8080
  • 内存: 256-512MB
  • 后端: SkyWalking OAP

监控应用

Java 应用

在 Java 应用启动时添加以下 JVM 参数:

-javaagent:/path/to/skywalking-agent.jar
-Dskywalking.agent.service_name=your-service-name
-Dskywalking.collector.backend_service=skywalking-oap:11800

Spring Boot 应用

application.properties 中添加:

# SkyWalking 配置
skywalking.agent.service_name=your-service-name
skywalking.collector.backend_service=skywalking-oap:11800

故障排除

检查服务状态

# 查看所有 Pod 状态
kubectl get pods | grep -E "(elasticsearch|skywalking)"

# 查看服务状态
kubectl get svc | grep -E "(elasticsearch|skywalking)"

# 查看日志
kubectl logs -l app=elasticsearch
kubectl logs -l app=skywalking-oap
kubectl logs -l app=skywalking-ui

常见问题

  1. Elasticsearch 启动失败

    • 检查内存限制
    • 检查存储权限
  2. OAP 连接 Elasticsearch 失败

    • 检查 Elasticsearch 是否就绪
    • 检查网络连接
  3. UI 无法访问

    • 检查 Ingress 配置
    • 检查 OAP 服务状态

卸载

# 删除所有资源
kubectl delete -f skywalking-ingress.yaml
kubectl delete -f skywalking-ui-deployment.yaml
kubectl delete -f skywalking-ui-service.yaml
kubectl delete -f skywalking-oap-deployment.yaml
kubectl delete -f skywalking-oap-service.yaml
kubectl delete -f elasticsearch-deployment.yaml
kubectl delete -f elasticsearch-service.yaml