skywalking-3-存储改为elasticsearch

使用banyandb的standalone模式时,文件是存储到/tmp目录下,有点不方便,还是改回用es吧。

安装es

步骤一:下载和解压Elasticsearch

复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.0-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.17.0-linux-x86_64.tar.gz
sudo mv elasticsearch-7.17.0 /usr/local/elasticsearch

步骤二:创建Elasticsearch用户和目录

创建用户和组:

复制代码
groupadd elasticsearch
useradd -g elasticsearch -d /usr/local/elasticsearch -s /sbin/nologin elasticsearch

设置目录权限:

复制代码
chown -R elasticsearch:elasticsearch /usr/local/elasticsearch

步骤三:创建Elasticsearch的数据和日志目录

复制代码
mkdir -p /var/lib/elasticsearch
mkdir -p /var/log/elasticsearch
chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
chown -R elasticsearch:elasticsearch /var/log/elasticsearch

步骤四:创建systemd服务文件

创建一个新的systemd服务文件:

复制代码
vi /etc/systemd/system/elasticsearch.service

在文件中添加以下内容:

复制代码
[Unit]
Description=Elasticsearch
Documentation=https://www.elastic.co
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=elasticsearch
Group=elasticsearch
ExecStart=/usr/local/elasticsearch/bin/elasticsearch -d
StandardOutput=journal
StandardError=inherit
TimeoutStopSec=20
LimitNOFILE=65536
LimitNPROC=4096
TimeoutStartSec=75
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
WorkingDirectory=/

[Install]
WantedBy=multi-user.target

步骤五:重新加载systemd并启动Elasticsearch

重新加载systemd配置:

复制代码
systemctl daemon-reload

步骤六:调整vm.max_map_count

检查当前的大小:

复制代码
sysctl vm.max_map_count

如果小于262144则执行如下步骤

  1. 打开并编辑 /etc/sysctl.conf 文件:

    vi /etc/sysctl.conf

  2. 在文件末尾添加以下行:

    vm.max_map_count=262144

保存并关闭文件。

  1. 应用配置更改:

    sysctl -p

步骤七:限制Elasticsearch的内存

es很吃内存,限制下

复制代码
vi /usr/local/elasticsearch/config/jvm.options

在文件中找到以下两行,或在文件末尾添加它们:

复制代码
-Xms4g
-Xmx4g

这表示将最小和最大堆内存都设置为4GB

步骤八:启用并启动Elasticsearch服务

复制代码
systemctl enable elasticsearch
systemctl start elasticsearch

检查Elasticsearch服务状态:

复制代码
 systemctl status elasticsearch

你应该会看到Elasticsearch服务的运行状态。如果一切正常,Elasticsearch应该已经成功安装并在后台运行。

通过发送HTTP请求验证Elasticsearch是否成功启动:

复制代码
curl -X GET "localhost:9200/"

你应该会看到Elasticsearch的相关信息,表明它已成功启动并运行。

复制代码
{
  "name" : "node-1",
  "cluster_name" : "my-cluster",
  "cluster_uuid" : "YiFrowgmQ5OMNVhiBH24Yw",
  "version" : {
    "number" : "7.17.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "bee86328705acaa9a6daede7140defd4d9ec56bd",
    "build_date" : "2022-01-28T08:36:04.875279988Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

将skywalking的存储配置改为es

回到apache-skywalking-apm-bin目录,打开config/application.yml文件,找到以下部分,并进行修改:

复制代码
storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    nameSpace: ${SW_NAMESPACE:""}
    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}
    user: ${SW_ES_USER:""}
    password: ${SW_ES_PASSWORD:""}
    trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
    trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
    dayStep: ${SW_STORAGE_ES_DAY_STEP:1}
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1}
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:1}
    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000}
    flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10}
    concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2}
    metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
    segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
    advanced:
      - ${SW_STORAGE_ES_ADVANCED:""}

修改完成后重启下:由于之前是直接nohup启动的,所以要先找到进程kill掉,再执行启动命令:

复制代码
nohup ./bin/oapService.sh start &
相关推荐
fallwind_of_july8 小时前
java项目分享-分布式电商项目附软件链接
java·redis·分布式·mongodb·elasticsearch·微服务·rabbitmq
爱编程的王小美9 小时前
Elasticsearch详解
大数据·elasticsearch·搜索引擎
小诸葛的博客11 小时前
es中节点类型有哪些
大数据·elasticsearch·jenkins
死磕java的孤行者12 小时前
Git 分布式版本控制工具
分布式·git·elasticsearch
Elasticsearch20 小时前
使用 Elastic 实现端到端的大语言模型(LLM)可观测性:洞察生成式 AI 应用这个不透明的世界
elasticsearch
Red丶哞1 天前
Stitching Together Multiple Input and Output Plugins
elasticsearch
2401_897930061 天前
Kibana 连接 Elasticsearch(8.11.3)教程
大数据·elasticsearch·jenkins
Elastic 中国社区官方博客2 天前
Elasticsearch:使用机器学习生成筛选器和分类标签
大数据·人工智能·elasticsearch·机器学习·搜索引擎·ai·分类
Elasticsearch3 天前
Elasticsearch:使用机器学习生成筛选器和分类标签
elasticsearch
浮尘笔记3 天前
go-zero使用elasticsearch踩坑记:时间存储和展示问题
大数据·elasticsearch·golang·go