SkyWalking 部署(包含ES)

SkyWalking安装

结构

首先SkyWalking主要需要oapService、webApp、Elasticsearch(可选存储)三个,接下来讲一下这三个的安装步骤,安装过程中出现了一些细小的配置错误,导致用了快两天才弄好,麻木了(主要是不同版本有差异性)。

版本及对应下载:

名称 版本 下载地址(个人存放地址,不稳定)
SkyWalking 8.5.0 apache-skywalking-apm-9.5.0.tar.gz
SkyWalking-agent 8.16.0 apache-skywalking-java-agent-8.16.0.tgz
Elasticsearch 8.5.3 elasticsearch-8.5.3-linux-x86_64.tar

解压文件:

shell 复制代码
# 创建存储目录
mkdir -p /opt/skywalking /opt/elasticsearch

# 解压压缩包
tar -xvf apache-skywalking-apm-9.5.0.tar.gz
tar -xvf apache-skywalking-java-agent-8.16.0.tgz
tar -xvf elasticsearch-8.5.3-linux-x86_64.tar 

# 移动到指定位置
mv apache-skywalking-apm /opt/skywalking
mv apache-skywalking-java-agent /opt/skywalking
mv elasticsearch-8.5.3 /opt/elasticsearch

安装

Elasticsearch

修改配置文件:

yaml 复制代码
# 设置不需要ce认证,可以根据场景选择,这里我选择取消
# xpack.security.enabled: true 
xpack.security.enabled: false

添加用户:

shell 复制代码
# 添加用户
adduser elasticsearch

# 设置文件权限
chown -R elasticsearch:elasticsearch /opt/elasticsearch

运行:

shell 复制代码
# 设置后台运行
sh elasticsearch -c '/opt/elasticsearch/elasticsearch-8.5.3/bin/elasticsearch -d'

第一次运行,会显示:

tex 复制代码
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.

ℹ️  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  aaaaa*

ℹ️  HTTP CA certificate SHA-256 fingerprint:
  asdfasdfasdfasdfasdvcdxvsdfhfgfghsdfgvadfvad

ℹ️  Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjUuMyIsImasdfasdfasdfsdvjadfkvajlvjladfjvdfvjadlfjvadifQ==

ℹ️  Configure other nodes to join this cluster:
• On this node:
  ⁃ Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.
  ⁃ Uncomment the transport.host setting at the end of config/elasticsearch.yml.
  ⁃ Restart Elasticsearch.
• On other nodes:
  ⁃ Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

注意:这里的aaaaa*位置就是elastic用户的初始密码。

(可选项):

  1. 配置Elasticsearch服务
shell 复制代码
vim /usr/lib/systemd/system/elasticsearch.service

# 服务文件内容:
[Unit]
Description=elasticsearch service
After=syslog.target network.target rc-local.service

[Service]
Type=forking
User=elasticsearch
Group=elasticsearch
ExecStart=/bin/bash -c "/opt/elasticsearch/elasticsearch-8.5.3/bin/elasticsearch > /opt/elasticsearch/elasticsearch-8.5.3/logs/startup.log  &"
ExecReload=/bin/sh -c "/bin/kill -d HUP $MAINPID"
ExecStop=/bin/sh -c "/bin/kill -s TERM $MAINPID"
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

# 杀死正在运行Elasticsearch程序
ps -ef | grep elasticsearch

# 杀死查询到的pid,xxx填写是ps -ef查到的内容
kill xxx

# 配置服务
systemctl daemon-reload
systemctl restart elasticsearch.service
systemctl enable elasticsearch.service

# 查询服务状态
systemctl status elasticsearch.service
  1. 修改默认密码

Elasticsearch修改密码有两种,第一种是用http请求的方式,第二种是使用bin目录下的可执行文件操作,具体的可以搜下相关文章

skywalking

修改oap服务配置文件:

shell 复制代码
# 编辑配置application.yml文件
vim /opt/skywalking/apache-skywalking-apm-bin/config/application.yml
yaml 复制代码
storage:
  selector: ${SW_STORAGE:elasticsearch} # 选择ES存储
  elasticsearch:
    namespace: ${SW_NAMESPACE:"skywalking-index"} # 命名空间
    #namespace: ${SW_NAMESPACE:"elasticsearch"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} # 节点地址,多个用,逗号间隔
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}
    socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}
    responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}
    numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}
    user: ${SW_ES_USER:"elastic"} # 账号
    password: ${SW_ES_PASSWORD:"76B6UvSrcp1N5dX3nuq*"} # 密码

更改安装好的ES信息:storage.selector存储方式使用elasticsearchstorage.elasticsearch.namespace命名空间根据个人喜好填写、storage.elasticsearch.clusterNodesES集群节点地址、storage.elasticsearch.userES账号、storage.elasticsearch.passwordES密码。

修改ui配置文件:

shell 复制代码
# 编辑配置application.yml文件
vim /opt/skywalking/apache-skywalking-apm-bin/wabapp/application.yml

修改内容:

yaml 复制代码
# 避免冲突,将默认的8080修改为12880
serverPort: ${SW_SERVER_PORT:-12880}

运行服务:

shell 复制代码
# 单独运行oap服务
/opt/skywalking/apache-skywalking-apm-bin/bin/oapService.sh

# 单独运行webapp(UI)
/opt/skywalking/apache-skywalking-apm-bin/bin/webappService.sh

# 直接运行等于运行oap服务与webapp服务
/opt/skywalking/apache-skywalking-apm-bin/bin/startup.sh

查看日志是否运行成功:

oap服务日志位置/opt/skywalking/apache-skywalking-apm-bin/logs/skywalking-oap-server.log、webapp服务日志位置/opt/skywalking/apache-skywalking-apm-bin/logs/skywalking-webapp.log

打开ui地址:http://192.168.254.130:12880就会出现安装好后的界面啦(注意:这里192.168.254.130是我安装的服务器地址,12880是webapp配置文件中配置的端口)。

agent探针

/opt/skywalking/skywalking-agent/skywalking-agent.jar是探针的jar包,使用java -jar运行jar包时添加参数-javaagent:/opt/skywalking/skywalking-agent/skywalking-agent.jar=agent.service_name=OS_Gateway,collector.backend_service=192.168.1.80:11800,例:

nohup java -Xms8G -Xmx8G -XX:MetaspaceSize=512M -XX:MaxNewSize=512m -XX:MaxMetaspaceSize=1G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump.hprof -XX:+PrintGCDetails -Xloggc:loggc-apic.log -javaagent:/opt/skywalking/skywalking-agent/skywalking-agent.jar=agent.service_name=OS_Gateway,collector.backend_service=192.168.1.80:11800 -jar ${jar_name} >> ${log_name} 2>&1 &

相关推荐
喵叔哟8 分钟前
重构代码之移动字段
java·数据库·重构
喵叔哟9 分钟前
重构代码之取消临时字段
java·前端·重构
fa_lsyk11 分钟前
maven环境搭建
java·maven
Daniel 大东30 分钟前
idea 解决缓存损坏问题
java·缓存·intellij-idea
wind瑞36 分钟前
IntelliJ IDEA插件开发-代码补全插件入门开发
java·ide·intellij-idea
HappyAcmen37 分钟前
IDEA部署AI代写插件
java·人工智能·intellij-idea
马剑威(威哥爱编程)42 分钟前
读写锁分离设计模式详解
java·设计模式·java-ee
鸽鸽程序猿43 分钟前
【算法】【优选算法】前缀和(上)
java·算法·前缀和
修道-032344 分钟前
【JAVA】二、设计模式之策略模式
java·设计模式·策略模式
九圣残炎1 小时前
【从零开始的LeetCode-算法】2559. 统计范围内的元音字符串数
java·算法·leetcode