devops/skywalking/README.md

149 lines
3.4 KiB
Markdown
Raw Normal View History

2025-09-10 13:11:51 +08:00
# 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
```