devops/skywalking/README.md

149 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```