skywalking 8.5 部署

前言
本文以非容器方式部署skywalking
K8S部署方式见 《helm离线部署skywalking》

官网地址:
https://skywalking.apache.org/downloads/

1. 安装准备

进入8.5 下载如下文件:
image.png

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)。
然后关闭容器,重新创建logsdata两个目录,属主设置成用户A。

  • web查看

image.png

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

设置定时任务每天执行即可

posted on   运维开发玄德公  阅读(61)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示