链路追踪,监控SkyWalking与Elasticsearch

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

第一章 Elasticsearch安装

1.下载elasticsearch-7.15.0,下载地址:www.elastic.co/cn/download…

2.上传下载的压缩包到linux服务器,解压文件

# 解压压缩包
tar -zxvf elasticsearch-7.15.0-linux-x86_64.tar.gz
# 进入目录
cd elasticsearch-7.15.0
# 创建data文件夹,保存数据
mkdir data
复制代码

3.修改Elasticsearch配置:config/elasticsearch.yml

cluster.name: apm-application
node.name: node-1
path.data: /app/elasticsearch/elasticsearch-7.2.0/data
path.logs: /app/elasticsearch/elasticsearch-7.2.0/logs
# ES监听的ip地址
network.host: 0.0.0.0
# 需要将node-2节点删除
cluster.initial_master_nodes: ["node-1"]
# 需要开启跨域才能给elasticsearch-head,kibana等连接
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
复制代码

4.es不允许Linux通过root用户启动,原因是处于系统安全考虑设置的条件,由于Elasticsearch可以接收用户输入的脚本并且执行,为了系统安全考虑,直接使用root权限会带来很大分险,所以我们创建一个elsearch用户并设置权限

# 创建用户
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
# 设置权限
chown -R elsearch:elsearch elasticsearch-7.15.0
复制代码

5.设置参数

# 1、修改/etc/security/limits.conf文件,添加或修改如下行
elsearch hard nofile 65535
elsearch soft nofile 65535
​
# 2、修改/etc/sysctl.conf文件,添加如下行
vm.max_map_count=262144
​
# 3、修改内存大小config/jvm.options(根据自己需要,Elasticsearch默认内存是1G)
-Xms200m
-Xms200m
复制代码

以上配置完成后,基本没什么问题了,在这里我遇到了一个比较特殊的问题,我的jdk是使用yum安装,在启动es的时候老是读取不到jdk,最后有本地安装了jdk11,并在该文件夹bin/elasticsearch中进行了配置解决了问题。

# 指定jdk11
export JAVA_HOME=/usr/local/jdk-11.0.12
export PATH=$JAVA_HOME/bin:$PATH
​
​
# 添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/usr/local/jdk-11.0.12/bin/java"
else
        JAVA=`which java`
fi
复制代码

6.使用启动命令,在elasticsearch-7.15.0目录下,切换到elsearch用户

su elsearch
./bin/elasticsearch -d
复制代码

7.查看是否成功:访问ip:9200,出现以下信息即为启动成功

{
  "name": "node-1",
  "cluster_name": "my-application",
  "cluster_uuid": "",
  "version": {
    "number": "7.15.0",
    "build_flavor": "default",
    "build_type": "tar",
    "build_hash": "79d629",
    "build_date": "2021-09-16T03:05:29.143308416Z",
    "build_snapshot": false,
    "lucene_version": "8.9.0",
    "minimum_wire_compatibility_version": "6.8.0",
    "minimum_index_compatibility_version": "6.0.0-beta1"
  },
  "tagline": "You Know, for Search"
}
复制代码

第二章 SkyWalking安装

1.下载SkyWalking安装包,下载地址: skywalking.apache.org/downloads/

我这里下载的是apache-skywalking-apm-es7-8.7.0.tar.gz,以Elasticsearch7版本作为存储

2.上传下载好的压缩包到Linux服务器,解压文件

tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz
复制代码

3.SkyWalking OAP搭建

3.1修改OAP配置文件config/application.yml

vim config/application.yml
​
# 配置文件中默认选择是H2数据源,切换成elasticsearch7,把elasticsearch7配置成自己安装的信息
storage:
  selector: ${SW_STORAGE:elasticsearch7}
复制代码

3.2启动OAP

$ bin/oapService.sh
​
​
SkyWalking OAP started successfully!
复制代码

3.SkyWalking UI搭建

3.1修改SkyWalking UI端口,默认是8080

# 修改webapp/webapp.yml
server:
  port: 18080
复制代码

3.2启动SkyWalking UI服务

$ bin/webappService.sh
​
​
SkyWalking Web Application started successfully!
复制代码

4.SkyWalking Agent

4.1修改探针默认配置agent/config/agent.config

collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.0.4:11800}
agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:1}
复制代码

4.2放置探针,我们需要将agent目录,拷贝到Java应用所在的服务器上,这样,Java应用才可以配置使用该SkyWalking Agent,通过启动参数的方式检测系统,没有代码侵入

# 在服务的启动命令中添加参数javaagent、Dskywalking.agent.service_name
nohup java -javaagent:agent/skywalking-agent.jar -Dskywalking.agent.service_name=a  -jar a.jar > a.log 2>&1 &
复制代码

后续持续更新原理以及其他一些操作,包括对数据库的监控,日志监控,告警功能的实现。

猜你喜欢

转载自juejin.im/post/7018001289774628901