# SkyWalking 安装指南 ## 概述 SkyWalking 是一个开源的 APM(应用性能监控)系统,用于监控、追踪和诊断分布式系统。 ## 组件 - **Elasticsearch 7.9.0**: 数据存储后端 - **SkyWalking OAP Server 8.9.1**: 后端分析处理服务 - **SkyWalking UI 8.9.1**: Web 管理界面 ## 安装 ### 快速安装 ```bash # 进入 skywalking 目录 cd newinstall/skywalking # 1. 在 master 节点上设置存储目录 sudo ./setup-storage.sh # 2. 执行安装脚本 ./install-skywalking.sh ``` ### 手动安装 ```bash # 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 ``` ## 访问 - **Web UI**: https://skywalking-ops.t-aaron.com - **OAP REST API**: http://skywalking-oap:12800 - **OAP gRPC**: http://skywalking-oap:11800 ## 配置说明 ### 存储配置 - **存储类型**: 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 参数: ```bash -javaagent:/path/to/skywalking-agent.jar -Dskywalking.agent.service_name=your-service-name -Dskywalking.collector.backend_service=skywalking-oap:11800 ``` ### Spring Boot 应用 在 `application.properties` 中添加: ```properties # SkyWalking 配置 skywalking.agent.service_name=your-service-name skywalking.collector.backend_service=skywalking-oap:11800 ``` ## 故障排除 ### 检查服务状态 ```bash # 查看所有 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 服务状态 ## 卸载 ```bash # 删除所有资源 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 ```