介绍
skywalking支持 Elasticsearch 和 OpenSearch 作为存储。
OpenSearch 是 ElasticSearch 7.11 的一个分支,但在 Apache 2.0 中获得许可。 OpenSearch 存储与 ElasticSearch 共享相同的配置。为了激活 OpenSearch 作为存储,请将存储提供程序设置为elasticsearch。
目前,SkyWalking支持ElasticSearch 7.x、ElasticSearch 8.x和OpenSearch 1.x。
skywalking相关版本信息
- jdk:17
- skywalking:10.1.0
- apache-skywalking-java-agent:9.3.0
- ElasticSearch : 8.8.2
java17的安装请参照:【linux】centos7 安装openjdk-17-CSDN博客
ElasticSearch安装请参考:【linux】麒麟v10安装ELKB 8.8.X版本(ARM架构)-CSDN博客
Elasticsearch 8.x 默认使用自签名证书,但你也可以使用 CA 颁发的证书。如果你使用自签名证书,Elasticsearch 会自动生成并配置这些证书。
进入配置文件目录
cd /usr/local/skywalking/skywalking-apm-10.1.0/config
编辑配置
vim application.yml
修改红框的内容
修改后的配置实例
storage:
# 这里默认是h2 改为 下面的 elasticsearch
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
#指定 Elasticsearch 索引的前缀。默认情况下,SkyWalking 创建的索引名称会以 skywalking 为前缀。
namespace: ${SW_NAMESPACE:"elasticsearch"}
# 这里要修改为 http://es的IP:9200
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:http://192.168.22.1:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"https"}
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}
#这里填写用户名称,一般没做修改就是elastic
user: ${SW_ES_USER:"elastic"}
#这里是ES密码
password: ${SW_ES_PASSWORD:"es#123#es"}
trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:"/usr/local/skywalking/skywalking-apm-10.1.0/certs/truststore.jks"}
trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:"es#123#es"}
进入ES证书目录
cd /opt/es/config/certs
生成证书
证书:truststore.jks
keytool -import -alias elasticsearch -file http_ca.crt -keystore truststore.jks
输入自己的口令:XXX 。就是上面配置文件中trustStorePass 的参数
是否信任此证书? [否]: 是
将生成的证书放到对应的目录
把这个truststore.jks到 /usr/local/skywalking/skywalking-apm-10.1.0/certs
也就是上面配置文件中的trustStorePath
启动服务
sh startup.sh
访问页面
http://IP:端口
http://192.168.22.1:8080/
查看skywalking 是否接入了es
日志文件在 logs 目录下
tail -f logs/skywalking-oap-server.log
Elasticsearch API 查看索引
curl -X GET "localhost:9200/_cat/indices?v"
OK 启动完成!!!
附件学习
查看cluster_name
curl -X GET "localhost:9200/_cluster/state"