Skywalking 6.0+elasticsearch6 环境搭建

原文:https://yangxx.net/?p=3825

 

所需环境

jdk1.8
elasticsearch6.5.4 下载地址
skywalking-6.2.0 下载地址
centos 7.6

JDK安装

安装及配置过程省略

 

es 安装

下载解压并ES文件

配置文件

修改${es_home}/config/elasticsearch.yml

# 集群名称
cluster.name: es-cluster
# 节点名称
node.name: node1
#指定该节点是否有资格被选举成为master节点,默认是true,
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
# 数据的默认存放路径
path.data: /home/skywaling/soft/elasticsearch-6.5.4/data/
 # 日志的默认存放路径
path.logs: /home/skywaling/soft/elasticsearch-6.5.4/log/
# bind IP地址
network.host: 0.0.0.0
# 服务端口
http.port: 9200
# 集群服务的端口
transport.tcp.port: 9300
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
# 集群master节点IP地址
discovery.zen.ping.unicast.hosts: ["192.168.2.179:9300"]
YAML

注意
服务器环境是CentOS 6时,不支持SecComp,CentOS7已经解决这个问题,当前服务器不能换系统,只能禁用:
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

bootstrap.memory_lock: false 
bootstrap.system_call_filter: false
.properties

系统参数修改

/etc/sysctl.conf:

vm.max_map_count=262144
.properties

/etc/security/limits.conf

* hard    nofile           65536
* soft    nofile           65536
.properties

/etc/security/limits.d/90-nproc.conf

*          soft    nproc     4096
root       soft    nproc     unlimited
.properties

测试

检查启动是否正常

curl -XGET "http://127.0.0.1:9200/_cat/nodes?v&pretty"
Bash

返回结果

{
  "name" : "node1",
  "cluster_name" : "es-cluster",
  "cluster_uuid" : "3jvfHCQGRUyUoIawKIG3xg",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
JSON

skywalking服务端安装

配置文件

  • 在skywalking的config目录找到application.yml
  • 修改application.yml文件
  • 找到storage节点下的,elasticsearch节点
  • 修改nameSpace为sky_Collector_cluster,必须与es配置的cluster.那么一致
  • 修改clusterNodes为es的ip和端口
  • 修改indexShardsNumber 值必须大于1
  • 注释掉storage下的其他节点

application.yml

  elasticsearch:
    nameSpace: ${SW_NAMESPACE:"es-cluster"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
#    user: ${SW_ES_USER:""}
#    password: ${SW_ES_PASSWORD:""}
    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
YAML

启动Skywalking

在Skywalking的bin目录中存在collectorService和webAppService的启动脚本么,使用startup 可以同时启动两个脚本
./bin/startup.sh

启动问题

Q1:启动遇到一个错误是在webapp.log中提示:无法访问127.0.0.1

org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:10800 [/127.0.0.1] failed: 拒绝连接 (Connection refused)
...
Txt

A1:通过修改webapp.yml进行解决,配置如下所示:

server:
  port: 8080

collector:
  path: /graphql
  ribbon:
    ReadTimeout: 10000
    # #此处修改为固定 ip,不为127.0.01
    listOfServers: 192.168.2.179:12800

security:
  user:
    admin:
      password: admin
YAML

Q2:

graphql.execution.SimpleDataFetcherExceptionHandler -1061995 [qtp1609086753-159] WARN [] - Exception while fetching data (/latencyS) : IDs can't be null java.lang.RuntimeException: IDs can't be null

A2:
此问题为ui端的问题,无需解决,对SkyWalking后端无影响

skywalking agent安装

每一个 jar包获取应用都应该单独使用一个 agent,所以将agent 这个目录拷贝到各自对应的 jar包路径下。
核心部分的目录信息如下:

├── activations
├── config
│   └── agent.config
├── logs
│   └── skywalking-api.log
├── optional-plugins
├── plugins
└── skywalking-agent.jar
XML

其中 config/agent.config是最重要的,需要修改的核心参数如下所示

# 应用名称,当前代理的应用名称,用于 UI界面分类和展示
agent.service_name=${SW_AGENT_NAME:test-door}
# 收集器的地址,这个根据实际情况设置,上述`Collector`在哪台服务器启动,ip就设置为多少。
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.2.179:11800}
.properties

设置好参数后,对于 Java 应用,添加核心的-javaagent进行启动

java -javaagent:agent/skywalking-agent.jar -jar xxx.jar
posted @ 2020-05-23 18:39  这个名字想了很久~  阅读(2673)  评论(0编辑  收藏  举报