環境介紹
下面是架構圖:
軟件版本信息:
- nacos:1.3.0
- skywalking:8.5.0
- elastcisearch:7.7.1
nacos+keepalived+haproxy高可用集群搭建
可參考:https://www.cnblogs.com/wwjj4811/p/14610307.html
nacos安裝完成后,創建出skywalking
命名空間,供后續skywalking使用
ES環境搭建
可參考:https://www.cnblogs.com/wwjj4811/p/13054685.html
skywalking安裝
三台機器都需要執行:
cd /opt
wget https://mirrors.bfsu.edu.cn/apache/skywalking/8.5.0/apache-skywalking-apm-es7-8.5.0.tar.gz
tar -zxvf apache-skywalking-apm-es7-8.5.0.tar.gz
配置oap
修改配置(三台機器的skywalking配置文件都需要修改)
vi /opt/apache-skywalking-apm-bin-es7/config/application.yml
## 主要修改了三處配置,因為文件太長,這里只貼出修改的部分
cluster:
selector: ${SW_CLUSTER:nacos}
# 中間部分省略。。。
nacos:
serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:192.168.1.56:18848}
# Nacos Configuration namespace
namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"skywalking"}
# Nacos auth username
username: ${SW_CLUSTER_NACOS_USERNAME:"nacos"}
password: ${SW_CLUSTER_NACOS_PASSWORD:"nacos"}
# Nacos auth accessKey
accessKey: ${SW_CLUSTER_NACOS_ACCESSKEY:""}
secretKey: ${SW_CLUSTER_NACOS_SECRETKEY:""}
storage:
selector: ${SW_STORAGE:elasticsearch7}
elasticsearch7:
nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.1.43:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
# 后面省略。。。。
configuration:
selector: ${SW_CONFIGURATION:nacos}
none:
# 中間部分省略。。。
nacos:
# Nacos Server Host
serverAddr: ${SW_CONFIG_NACOS_SERVER_ADDR:192.168.1.56}
# Nacos Server Port
port: ${SW_CONFIG_NACOS_SERVER_PORT:18848}
# 組信息
group: ${SW_CONFIG_NACOS_SERVER_GROUP:skywalking}
# nacos命名空間
namespace: ${SW_CONFIG_NACOS_SERVER_NAMESPACE:skywalking}
# Unit seconds, sync period. Default fetch every 60 seconds.
period: ${SW_CONFIG_NACOS_PERIOD:60}
# Nacos auth username
username: ${SW_CONFIG_NACOS_USERNAME:""}
password: ${SW_CONFIG_NACOS_PASSWORD:""}
# Nacos auth accessKey
accessKey: ${SW_CONFIG_NACOS_ACCESSKEY:""}
secretKey: ${SW_CONFIG_NACOS_SECRETKEY:""}
配置UI
vi /opt/apache-skywalking-apm-bin-es7/webapp/webapp.yml
#注釋部分省略
server:
port: 8888
collector:
path: /graphql
ribbon:
ReadTimeout: 10000
# Point to all backend's restHost:restPort, split by ,
listOfServers: 192.168.1.53:12800,192.168.1.54:12800,192.168.1.55:12800
啟動skywalking
其中一台執行:
/opt/apache-skywalking-apm-bin-es7/bin/startup.sh
另外兩台執行:
/opt/apache-skywalking-apm-bin-es7/bin/oapServiceNoInit.sh
/opt/apache-skywalking-apm-bin-es7/bin/webappService.sh
查看啟動日志:
tail -500f /opt/apache-skywalking-apm-bin-es7/logs/skywalking-oap-server.log
tail -500f /opt/apache-skywalking-apm-bin-es7/logs/webapp.log
動態配置
可以配置的配置文件如下:
agent-analyzer.default.uninstrumentedGateways
configuration-discovery.default.agentConfigurations
core.default.endpoint-name-grouping
core.default.apdexThreshold
agent-analyzer.default.slowDBAccessThreshold
agent-analyzer.default.sampleRate
alarm.default.alarm-settings
此外:官網文檔對這些配置做了詳細解釋:https://skywalking.apache.org/docs/main/v8.5.0/en/setup/backend/dynamic-config/
我這里就不贅述了
動態配置測試
新建一個配置,在skywalking命名空間中:
新建一個data-id叫做agent-analyzer.default.uninstrumentedGateways
,group信息是skywalking
,配置格式yaml
配置內容:
gateways:
- name: proxy0
instances:
- host: 127.0.0.1 # the host/ip of this gateway instance
port: 9099 # the port of this gateway instance, defaults to 80
點擊發布:
發布成功后,注意三台機器skywalking-oap-server.log
的日志信息,控制台打印了配置的變化,這里就達到了不重啟Skywalking而動態刷新配置的效果。
一個小問題
三個skywalking oap服務都注冊到了nacos中,服務名稱都為SkyWalking_OAP_Cluster
,按道理來說有三個實例,可以nacos注冊中心一直只有一個實例,有點奇怪,目前找不到原因。
而且三台nacos,每一台的服務信息一模一樣,都只有同一個實例。
三台機器的skywalking日志也沒有任何錯誤日志。非常奇怪!!!!!!
不過目前沒有影響到基本使用,后續我先在公司的環境再搭建一套,再監控具體服務看看。