目錄
1、環境及介質說明
本次部署採用單機模式,因此只需要一臺機器,部署ES過程中發現ES必須部署在/root/usr/local目錄下,否則無法啓動。
注意:JDK版本必須爲1.8,ES版本爲5.X,本次採用ES爲5.6.13版本。
部署服務路徑:
ES-5.6.13:/opt/elasticsearch/elasticsearch-5.6.13
Apache Skywalking 5.0.0-GA:/root/apache/apache-skywalking-apm-incubating
2、部署ElasticSearch
2.1、ElasticSearch配置文件修改
文件位置:\elasticsearch-5.6.13\config\elasticsearch.yml
vim elasticsearch.yml 打開elasticsearch.yml修改爲如下:
#cluster.name集羣名稱
cluster.name: CollectorDBCluster
#node名稱
node.name: node-1
##########推薦配置,請勿修改############
network.host: 0.0.0.0
network.publish_host: 26.47.30.127
network.bind_host: 0.0.0.0
#線程池隊列大小
thread_pool.bulk.queue_size: 1000
2.2、ES啓動
說明:ES的啓動不能使用root賬號啓動,需要新建用戶,並修改es目錄權限。詳細步驟見下。
2.2.1、添加用戶加入組
#1)添加一個用戶:elasticsearch
useradd elasticsearch
#2)給用戶elasticsearch設置密碼,連續輸入2次
passwd elasticsearch
#3)創建一個用戶組 es
groupadd es
#4)分配 elasticsearch 到 es 組
usermod -G elasticsearch es
#5)這裏注意下,如果提示用戶“es”不存在,那麼是因爲服務器版本問題,你可以換成
usermod -G es elasticsearch ,也就是用戶和用戶組對調一下使用。
#6)在elasticsearch 根目錄下,給定用戶權限。-R表示逐級(N層目錄), * 表示 任何文件
chown -R elasticsearch.es *
2.2.2、切用戶啓動
elasticsearch@pub1:/opt/elasticsearch/elasticsearch-5.6.13/bin# ./elasticsearch
#1) 切換到elasticsearch用戶
su elasticsearch
#2) 切到elasticsearch-5.6.13目錄下執行命令
elasticsearch@ch3:~/elasticsearch-5.6.13$ chmod +x bin/elasticsearch
#3) 切到bin目錄下執行
./elasticsearch -d
若啓動報錯參考:https://blog.csdn.net/weixin_38447578/article/details/84293526
2.2.3、查看ES服務是否啓動成功
方式1:執行以下命令
ps aux | grep elasticsearch
方式2:瀏覽器訪問 http://192.168.98.1:9200,
看返回結果是否爲以下值,build_date 時間根據實際時間顯示。
http:192.168.98.1:9200
{
"name" : "node-1",
"cluster_name" : "CollectorDBCluster",
"cluster_uuid" : "0PjTNtPEQrCfb2bd0Xzysw",
"version" : {
"number" : "5.6.13",
"build_hash" : "4d5320b",
"build_date" : "2018-10-30T19:05:08.237Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
2.2.4、關閉ES服務
查看進程號,然後殺死進程。
3、部署Apache Skywalking
3.1、application.yml
文件位置:\apache-skywalking-apm-incubating\config\application.yml
注:application.yml中所有host節點的值都配置爲真實的IP地址。
3.2、webapp.xml
文件位置:\apache-skywalking-apm-incubating\webapp\webapp.xml
修改訪問ip:listOfServers: 192.168.98.1:10800
配置用戶名和密碼,訪問skywalking UI界面時候登陸時候需要輸入。默認用戶名:admin,密碼:admin。
3.3、啓動Apache Skywalking
root@pub1:~/apache-skywalking-apm-incubating/bin# ./startup.sh
切到\apache-skywalking-apm-incubating的bin目錄下,執行./statup.sh
UI使用8080端口,收集器使用10800端口
啓動後查看8080和10800端口占用情況
netstat -nlp|grep 8080、netstat -nlp|grep 10800
web地址,IP:8080(有時機器自帶tomcat,佔用了8080,需要換一個端口,在webapp.xml中)
4、Skywalking探針Agent
配置文件位置:\apache-skywalking-apm-incubating\agent\config\agent.config
#1)agent.namespace名稱,這裏需要注意,相關聯的微服務需要配置成同一個名稱,否則會導致調用鏈斷開,例如項目中有六個微服務,則統一配置成xxx-namespace。
agent.namespace=xxx-namespace
#2)微服務應用名稱(該名稱就是顯示在skywalking界面上的)
agent.application_code=application1
#3)Skywalking收集器server的端口
collector.servers=192.168.98.1:10800
5、微服務啓動方式
以以下demo爲例,紅色部分爲探針應用於微服務中。
java -javaagent:/root/microservice/spring-cloud-department/agent/skywalking-agent.jar -jar depart-micro-0.0.1-SNAPSHOT
6、部署過程中遇到的問題
6.1、時間一致性
如果ES和Skywalking分開部署,需要保證服務器的時間完全一致,否則回導致服務調用鏈滯後顯示。假設ES時間比Sky walking時間晚了5分鐘,調用請求鏈在2019-12-10 10:00, ES的時間爲2019-12-10 10:00,skywalking服務器爲2019-12-10 10:05。UI界面上是看不到本次調用信息的,5分鐘後才能看到。
6.2、網絡互通性
需要保證ES服務器和Skywalking服務器之間網絡是互通的,否則調用鏈信息無法寫入ES中,可以查看探針agent的日誌。
6.3、xshell連接服務器斷開連接問題
如果是使用xshell登陸遠程機器執行,防止xshell窗口關閉導致應用down掉,比如以下命令(根據實際情況修改skywalking-agent.jar位置,微服務jar名稱)
nohup java -javaagent:/opt/soft/apache-skywalking-apm-incubating/agent/skywalking-agent.jar -jar service-registry-0.0.1-SNAPSHOT.jar >> registry.log 2>&1 &
7、集羣部署
參考官網部署方案: