其他相关文档:《helm离线部署skywalking》
1. 安装准备
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权限,但是不提倡。)
- web查看
3. 安装skywalking
- 修改配置文件
/opt/skywalking/config/application.yml
selector: ${SW_STORAGE:h2}
改为
selector: ${SW_STORAGE:elasticsearch7}
- 启动服务
# cd /opt/skywalking/bin
# ./startup.sh
4. 后期维护
4.1 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
设置定时任务每天执行即可