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 2021-09-16 04:56  运维开发玄德公  阅读(40)  评论(0编辑  收藏  举报  来源

导航