elasticsearch环境搭建

接下来我们在虚拟机CentOS中搭建Skywalking的可观测性分析平台OAP环境。Skywalking默认使用H2内存进行数据的存储,我们可以替换存储源为ElasticSearch保证其查询的高效及可用性。

1、创建目录

[root@izuf66wqqqhhqzkhd61vnoz ~]# mkdir /usr/local/skywalking
[root@izuf66wqqqhhqzkhd61vnoz ~]# cd /usr/local/skywalking/

2、将资源目录中的elasticsearch和skywalking安装包上传到虚拟机/usr/local/skywalking目录下。

elasticsearch-6.4.0.tar.gz — elasticsearch-6.4的安装包,Skywalking对es版本号有一定要求,最好使用6.3.2以上版本,如果是7.x版本需要额外进行配置。
apache-skywalking-apm-6.5.0.tar.gz — Skywalking的安装包

3、首先安装elasticsearch,将压缩包解压。

[root@izuf66wqqqhhqzkhd61vnoz skywalking]# tar -zxvf ./elasticsearch-6.4.0.tar.gz 

修改Linux系统的限制配置,将文件创建数修改为65535个。
(1) 修改系统中允许应用最多创建多少文件等的限制权限。Linux默认来说,一般限制应用最多创建的文件是65535个。但是ES至少需要65536的文件创建数的权限。
(2) 修改系统中允许用户启动的进程开启多个个线程。默认的Linux限制root用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为ES至少需要4096的线程池预备。

[root@izuf66wqqqhhqzkhd61vnoz skywalking]# vi /etc/security/limits.conf
# 新增如下内容在limits.conf文件中
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096

修改系统控制权限,ElasticSearch需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用程序直接开辟这么大的虚拟内存。

[root@izuf66wqqqhhqzkhd61vnoz skywalking]# vi /etc/sysctl.conf 
# 新增如下内容在sysctl.conf文件中,当前用户拥有的内存权限大小
vm.max_map_count=262144
# 让系统控制权限配置生效
[root@izuf66wqqqhhqzkhd61vnoz skywalking]# sysctl -p

建一个用户,用于ElasticSearch启动。
ES在5.x版本之后,强制要求在Linux中不能使用root用户启动ES进程。所以必须使用其他用户启动ES进程才可以。

# 创建用户
useradd es
# 修改上述用户的密码
passwd es
# 修改elasticsearch目录的拥有者
chown -R es elasticsearch-6.4.0

使用es用户启动elasticsearch

[root@izuf66wqqqhhqzkhd61vnoz ~]# java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
# 切换用户
su es
# 到ElasticSearch的bin目录下
cd elasticsearch-6.4.0
cd bin/
# 后台启动
./elasticsearch -d

默认ElasticSearch是不支持跨域访问的,所以在不修改配置文件的情况下我们只能从虚拟机内部进行访问测试ElasticSearch是否安装成功,使用curl命令访问9200端口:

curl http://localhost:9200

如果显示出如下信息,就证明ElasticSearch安装成功:

{
  "name" : "SQnkpIs",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "PGqTxh55TWSCEVUmrhyYzg",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Skywalking环境搭建

安装Skywalking,分为两个步骤:
(1) 安装Backend后端服务
(2) 安装UI

1、首先切回到root用户,切换到目录下,解压Skywalking压缩包。

# 切换到rootyongh
su root
# 切换到skywalking目录
cd /usr/local/skywalking
# 解压压缩包
tar -zxvf apache-skywalking-apm-6.5.0.tar.gz

2、修改Skywalking存储的数据源配置:

[root@izuf66wqqqhhqzkhd61vnoz skywalking]# cd apache-skywalking-apm-bin/
[root@izuf66wqqqhhqzkhd61vnoz apache-skywalking-apm-bin]# vi config/application.yml

3、我们可以看到默认配置中,使用了H2作为数据源。我们将其全部注释。

#  h2:
#    driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
#    url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
#    user: ${SW_STORAGE_H2_USER:sa}
#    metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}

4、将ElasticSearch对应的配置取消注释:

storage:
  elasticsearch:
    nameSpace: ${SW_NAMESPACE:""}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
    trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
    user: ${SW_ES_USER:""}
    password: ${SW_ES_PASSWORD:""}
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
#    # Those data TTL settings will override the same settings in core module.
    recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
    otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
    monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month
#    # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
    flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
    concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
    resultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}
    metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
    segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}

5、默认使用了localhost下的ES,所以我们可以不做任何处理,直接进行使用。

启动OAP程序:

bin/oapService.sh

6、这样安装Backend后端服务就已经完毕了,接下来我们安装UI。

先来看一下UI的配置文件:

[root@izuf66wqqqhhqzkhd61vnoz apache-skywalking-apm-bin]# vi webapp/webapp.yml
[root@izuf66wqqqhhqzkhd61vnoz apache-skywalking-apm-bin]# cat webapp/webapp.yml 
server:
  port: 9080
collector:
  path: /graphql
  ribbon:
    ReadTimeout: 10000
    # Point to all backend's restHost:restPort, split by ,
    listOfServers: 127.0.0.1:12800
#默认启动端口
server:
  port: 8080
  ribbon:
    ReadTimeout: 10000
    #OAP服务,如果有多个用逗号隔开
    listOfServers: 127.0.0.1:12800

7、启动UI程序:

/bin/webappService.sh

8、同时启动OAP程序和UI程序

[root@izuf66wqqqhhqzkhd61vnoz apache-skywalking-apm-bin]# ./bin/startup.sh 
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!

9、然后我们就可以通过浏览器访问Skywalking的可视化页面了,访问地址:http://虚拟机IP地址:9080,如果出现下面的图,就代表安装成功了。

到此这篇关于Skywalking环境搭建的文章就介绍到这了,更多相关Skywalking环境搭建内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部