skywalking 8.5 部署
前言
本文以非容器方式部署skywalking
K8S部署方式见 《helm离线部署skywalking》
1. 安装准备
进入8.5 下载如下文件:
2. 安装ES
-
私有镜像
下载共有镜像:elasticsearch:7.11.2
上传私有仓库:harbocto.xxx.com.cn/public/elasticsearch:7.11.2
-
docker-compose文件
version: '3' services: elasticsearch: image: 'harbocto.xxx.com.cn/public/elasticsearch:7.11.2' restart: always container_name: elasticsearch volumes: - ./data:/usr/share/elasticsearch/data - ./logs:/usr/share/elasticsearch/logs ports: - '9200:9200' - '9300:9300' environment: JAVA_OPTS: "-Xms2g -Xmx2g" discovery.type: single-node
- 持久化存储
上边挂载了两个目录:
- ./data:/usr/share/elasticsearch/data - ./logs:/usr/share/elasticsearch/logs
需要提前在宿主机创建这两个目录,并且把属主权限改成"容器里边用户所映射的宿主机用户",通常是1001这个id的用户。(当然,不改属主的话,你也可以给777权限,但是不提倡。)
如何确定属主改成哪个用户呢?
你可以先给logs目录777权限,然后启动容器,再查看容器在logs目录下创建文件的属主(假设为用户A)。
然后关闭容器,重新创建logs
、data
两个目录,属主设置成用户A。
- web查看
3. 安装skywalking
- 修改配置文件
/opt/skywalking/config/application.yml
selector: ${SW_STORAGE:h2}
改为
selector: ${SW_STORAGE:elasticsearch7}
- 启动服务
# cd /opt/skywalking/bin # ./startup.sh
4. 后期维护
ES定时清理
- 查看ES中数据命
# curl -s -XGET http://127.0.0.1:9200/_cat/indices?v
可见skywalking数据格式如:sw_xxxxx-20210628
,因此写定时清理脚本如下:
- 清理脚本
#!/bin/bash DATE=`date -d "6 days ago" +%Y%m%d` curl -s -XGET http://127.0.0.1:9200/_cat/indices?v| grep $DATE | awk '{print $3}' >/tmp/elk.log for elk in `cat /tmp/elk.log` do curl -XDELETE "http://127.0.0.1:9200/$elk" done
设置定时任务每天执行即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?