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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM