SkyWalking安裝
結構
首先SkyWalking主要需要oapService、webApp、Elasticsearch(可選存儲)三個,接下來講一下這三個的安裝步驟,安裝過程中出現了一些細小的配置錯誤,導致用了快兩天才弄好,麻木了(主要是不同版本有差異性)。
版本及對應下載:
名稱 | 版本 | 下載地址(個人存放地址,不穩定) |
---|---|---|
SkyWalking | 8.5.0 | apache-skywalking-apm-9.5.0.tar.gz |
SkyWalking-agent | 8.16.0 | apache-skywalking-java-agent-8.16.0.tgz |
Elasticsearch | 8.5.3 | elasticsearch-8.5.3-linux-x86_64.tar |
解壓文件:
# 創建存儲目錄
mkdir -p /opt/skywalking /opt/elasticsearch# 解壓壓縮包
tar -xvf apache-skywalking-apm-9.5.0.tar.gz
tar -xvf apache-skywalking-java-agent-8.16.0.tgz
tar -xvf elasticsearch-8.5.3-linux-x86_64.tar # 移動到指定位置
mv apache-skywalking-apm /opt/skywalking
mv apache-skywalking-java-agent /opt/skywalking
mv elasticsearch-8.5.3 /opt/elasticsearch
安裝
Elasticsearch
修改配置文件:
# 設置不需要ce認證,可以根據場景選擇,這里我選擇取消
# xpack.security.enabled: true
xpack.security.enabled: false
添加用戶:
# 添加用戶
adduser elasticsearch# 設置文件權限
chown -R elasticsearch:elasticsearch /opt/elasticsearch
運行:
# 設置后臺運行
sh elasticsearch -c '/opt/elasticsearch/elasticsearch-8.5.3/bin/elasticsearch -d'
第一次運行,會顯示:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
? Elasticsearch security features have been automatically configured!
? Authentication is enabled and cluster connections are encrypted.?? Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):aaaaa*?? HTTP CA certificate SHA-256 fingerprint:asdfasdfasdfasdfasdvcdxvsdfhfgfghsdfgvadfvad?? Configure Kibana to use this cluster:
? Run Kibana and click the configuration link in the terminal when Kibana starts.
? Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):eyJ2ZXIiOiI4LjUuMyIsImasdfasdfasdfsdvjadfkvajlvjladfjvdfvjadlfjvadifQ==?? Configure other nodes to join this cluster:
? On this node:? Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.? Uncomment the transport.host setting at the end of config/elasticsearch.yml.? Restart Elasticsearch.
? On other nodes:? Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
注意:這里的aaaaa*
位置就是elastic用戶的初始密碼。
(可選項):
- 配置Elasticsearch服務
vim /usr/lib/systemd/system/elasticsearch.service# 服務文件內容:
[Unit]
Description=elasticsearch service
After=syslog.target network.target rc-local.service[Service]
Type=forking
User=elasticsearch
Group=elasticsearch
ExecStart=/bin/bash -c "/opt/elasticsearch/elasticsearch-8.5.3/bin/elasticsearch > /opt/elasticsearch/elasticsearch-8.5.3/logs/startup.log &"
ExecReload=/bin/sh -c "/bin/kill -d HUP $MAINPID"
ExecStop=/bin/sh -c "/bin/kill -s TERM $MAINPID"
SuccessExitStatus=143[Install]
WantedBy=multi-user.target# 殺死正在運行Elasticsearch程序
ps -ef | grep elasticsearch# 殺死查詢到的pid,xxx填寫是ps -ef查到的內容
kill xxx# 配置服務
systemctl daemon-reload
systemctl restart elasticsearch.service
systemctl enable elasticsearch.service# 查詢服務狀態
systemctl status elasticsearch.service
- 修改默認密碼
Elasticsearch修改密碼有兩種,第一種是用http請求的方式,第二種是使用bin
目錄下的可執行文件操作,具體的可以搜下相關文章
skywalking
修改oap服務配置文件:
# 編輯配置application.yml文件
vim /opt/skywalking/apache-skywalking-apm-bin/config/application.yml
storage:selector: ${SW_STORAGE:elasticsearch} # 選擇ES存儲elasticsearch:namespace: ${SW_NAMESPACE:"skywalking-index"} # 命名空間#namespace: ${SW_NAMESPACE:"elasticsearch"}clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} # 節點地址,多個用,逗號間隔protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}connectTimeout: ${SW_STORAGE_ES_CONNECT_TIMEOUT:3000}socketTimeout: ${SW_STORAGE_ES_SOCKET_TIMEOUT:30000}responseTimeout: ${SW_STORAGE_ES_RESPONSE_TIMEOUT:15000}numHttpClientThread: ${SW_STORAGE_ES_NUM_HTTP_CLIENT_THREAD:0}user: ${SW_ES_USER:"elastic"} # 賬號password: ${SW_ES_PASSWORD:"76B6UvSrcp1N5dX3nuq*"} # 密碼
更改安裝好的ES信息:storage.selector
存儲方式使用elasticsearch
、storage.elasticsearch.namespace
命名空間根據個人喜好填寫、storage.elasticsearch.clusterNodes
ES集群節點地址、storage.elasticsearch.user
ES賬號、storage.elasticsearch.password
ES密碼。
修改ui配置文件:
# 編輯配置application.yml文件
vim /opt/skywalking/apache-skywalking-apm-bin/wabapp/application.yml
修改內容:
# 避免沖突,將默認的8080修改為12880
serverPort: ${SW_SERVER_PORT:-12880}
運行服務:
# 單獨運行oap服務
/opt/skywalking/apache-skywalking-apm-bin/bin/oapService.sh# 單獨運行webapp(UI)
/opt/skywalking/apache-skywalking-apm-bin/bin/webappService.sh# 直接運行等于運行oap服務與webapp服務
/opt/skywalking/apache-skywalking-apm-bin/bin/startup.sh
查看日志是否運行成功:
oap服務日志位置/opt/skywalking/apache-skywalking-apm-bin/logs/skywalking-oap-server.log
、webapp服務日志位置/opt/skywalking/apache-skywalking-apm-bin/logs/skywalking-webapp.log
打開ui地址:http://192.168.254.130:12880就會出現安裝好后的界面啦(注意:這里192.168.254.130是我安裝的服務器地址,12880是webapp配置文件中配置的端口)。
agent探針
/opt/skywalking/skywalking-agent/skywalking-agent.jar是探針的jar包,使用java -jar
運行jar包時添加參數-javaagent:/opt/skywalking/skywalking-agent/skywalking-agent.jar=agent.service_name=OS_Gateway,collector.backend_service=192.168.1.80:11800
,例:
nohup java -Xms8G -Xmx8G -XX:MetaspaceSize=512M -XX:MaxNewSize=512m -XX:MaxMetaspaceSize=1G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump.hprof -XX:+PrintGCDetails -Xloggc:loggc-apic.log -javaagent:/opt/skywalking/skywalking-agent/skywalking-agent.jar=agent.service_name=OS_Gateway,collector.backend_service=192.168.1.80:11800 -jar ${jar_name} >> ${log_name} 2>&1 &