1、服務器配置
- 服務器規劃
2 skywalking服務端安裝
2.1 zookeeper安裝
2.1.1 jdk安裝
在服務器上安裝jdk1.8,由於系統模板已經集成jdk 1.8.0_221,這裏不在單獨安裝
2.1.2 獲取zookeeper安裝程序
將安裝程序分別上傳到zookeeper服務器的/workspaces目錄下
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz
2.1.3 解壓zookeeper應用到/root目錄下
tar zxvf apache-zookeeper-3.5.5-bin.tar.gz -C /root
2.1.4 配置zookeeper
修改如下:
tickTime=2000
dataLogDir=/var/zookeeper/logs
dataDir=/var/zookeeper/data
clientPort=2181
initLimit=10
syncLimit=5
autopurge.snapRetainCount=500
autopurge.purgeInterval=24
server.1=zk服務1ip:2888:3888
server.2= zk服務2ip:2888:3888
server.3= zk服務3ip:2888:3888
cd /root/apache-zookeeper-3.5.5-bin/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
配置詳細說明請參考:
配置集羣信息是存在一定的格式:service.N =YYY: A:B
N:代表服務器編號(也就是myid裏面的值)
YYY:服務器地址
A:表示 Flower 跟 Leader的通信端口,簡稱服務端內部通信的端口(默認2888)
B:表示 是選舉端口(默認是3888)
參考文檔:
2.1.5 生成數據文件目錄和myid文件
在每個zookeeper節點上創建zookeeper的數據目錄,並且在數據目錄下創建myid文件,文件中存放當前節點的server-id,
下面命令中server-id,根據節點信息調整
mkdir -p /var/zookeeper/data && echo “1”> /var/zookeeper/data/myid
2.1.6 啓動zookeeper
進入到/root/apache-zookeeper-3.5.5-bin/bin/下啓動 zookeeper
cd /root/apache-zookeeper-3.5.5-bin/bin
./zkServer.sh start
2.1.7 測試
cd /root/apache-zookeeper-3.5.5-bin/bin
./zkCli.sh -server 集羣機器1IP地址:2181,集羣機器2IP地址:2181,集羣機器3IP地址:2181
./zkServer.sh status
2.2 elasticsraech安裝
2.2.1 jdk安裝
在服務器上安裝jdk1.8,由於系統模板已經集成jdk 1.8.0_221,這裏不在單獨安裝
2.2.2 獲取elasticsearch 安裝程序
將安裝程序上傳到elasticsearch服務器的/workspaces目錄下
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-x86_64.rpm
2.2.3 安裝elasticsearch
Yum install -y elasticsearch-7.5.1-x86_64.rpm
2.2.4 配置elasticsearch集羣
只需要根據實際情況修改node.name 即可
cluster.name: skywalking
node.name: P-MAINTENANCE-SKY-ZK-ES-229
node.master: true
node.data: true
path.data: /var/elasticsearch/data
path.logs: /var/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["es服務器ip1", " es服務器ip2", " es服務器ip3"]
cluster.initial_master_nodes: ["P-MAINTENANCE-SKY-ZK-ES-229", "P-MAINTENANCE-SKY-ZK-ES-230", "P-MAINTENANCE-SKY-ZK-ES-231"]
discovery.zen.minimum_master_nodes: 2
cd /etc/elasticsearch/
vim elasticsearch.yml
es詳細配置參數說明(https://blog.csdn.net/yjclsx/article/details/81319454
https://my.oschina.net/Yumikio/blog/805877)
2.2.5 配置jvm信息
注意:初始化和最大必須一樣否則無法啓動
cd /etc/elasticsearch/
vim jvm.options
-Xms4g
-Xmx4g
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-Djava.io.tmpdir=${ES_TMPDIR}
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/elasticsearch
-XX:ErrorFile=/var/elasticsearch/logs/hs_err_pid%p.log
9-:-Xlog:gc*,gc+age=trace,safepoint:file=/var/elasticsearch/logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
具體說明:https://www.cnblogs.com/hapjin/archive/2019/07/12/11135187.html
2.2.6 創建相關目錄
創建elasticsearch的數據目錄和日誌目錄並設置權限
mkdir -p /var/elasticsearch/data
mkdir -p /var/elasticsearch/logs
chowm -R elasticsearch: elasticsearch /var/elasticsearch
2.2.7 啓動服務
systemctl start elasticsearch
2.2.8 驗證服務
curl 主節點ip:9200/_cluster/stats?pretty
curl 主節點ip:9200/_nodes/process?pretty
2.3 skywalkingcollector安裝
2.3.1 jdk安裝
在服務器上安裝jdk1.8,由於系統模板已經集成jdk 1.8.0_221,這裏不在單獨安裝
2.3.2 獲取安裝文件
將安裝程序上傳到collector服務器的/workspaces目錄下
wget http://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/6.6.0/apache-skywalking-apm-es7-6.6.0.tar.gz
2.3.3 解壓collector到/root目錄
tar zxvf apache-skywalking-apm-es7-6.6.0.tar.gz -C /root
2.3.4 配置collector連接zookeeper
cluster下注釋掉standalone,打開zookeeper相關,並配置zookeeper集羣地址
cluster:
zookeeper:
nameSpace: ${SW_NAMESPACE:""}
hostPort: ${SW_CLUSTER_ZK_HOST_PORT:zk服務器IP地址1:2181,zk服務器IP地址2:2181,zk服務器IP地址3:2181}
# Retry Policy
baseSleepTimeMs: 1000 # initial amount of time to wait between retries
maxRetries: 3 # max number of times to retry
# Enable ACL
enableACL: ${SW_ZK_ENABLE_ACL:false} # disable ACL in default
schema: ${SW_ZK_SCHEMA:digest} # only support digest schema
expression: ${SW_ZK_EXPRESSION:skywalking:skywalking}
cd /root/apache-skywalking-apm-bin-es7/conf
vim application.yml
2.3.5 配置collector連接elasticsearch
storage下注釋掉h2相關,打開elasticsearch相關
storage:
elasticsearch7:
# nameSpace: ${SW_NAMESPACE:""}
# user: ${SW_ES_USER:""} # User needs to be set when Http Basic authentication is enabled
# password: ${SW_ES_PASSWORD:""} # Password to be set when Http Basic authentication is enabled
#trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:""}
#trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:es服務器地址1:9200, es服務器地址2:9200, es服務器地址3:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# Those data TTL settings will override the same settings in core module.
recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month
# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000} # Execute the bulk every 2000 requests
bulkSize: ${SW_STORAGE_ES_BULK_SIZE:20} # flush the bulk every 20mb
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
resultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}
metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
advanced: ${SW_STORAGE_ES_ADVANCED:""}
cd /root/apache-skywalking-apm-bin-es7/conf
vim application.yml
2.3.6修改collector啓動腳本
修改初始化內存2G, 最大可用6G
vim oapService.sh
JAVA_OPTS=”-Xms2G -Xmx6G”
註釋掉webapp的啓動
vim startup.sh
#!/usr/bin/env sh
PRG=”$0”
PRGDIR=’dirname “$PRG”’
OAP_EXE=oapService.sh
#WEBAPP_EXE=webappService.sh
“$PRGDIR/$OAP_EXE”
#“$ PRGDIR/$ WEBAPP_EXE”
2.3.7 啓動colletcot
cd /root/apache-skywalking-apm-bin-es7/bin
./ startup.sh
2.3.8 驗證
tail -f /root/apache-skywalking-apm-bin-es7/logs/skywalking-oap-server.log
2.4 skywalking ui部署
2.4.1 jdk安裝
在服務器上安裝jdk1.8,由於系統模板已經集成jdk 1.8.0_221,這裏不在單獨安裝
2.4.2 獲取安裝文件
將安裝程序上傳到UI服務器的/workspaces目錄下
wget http://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/6.6.0/apache-skywalking-apm-es7-6.6.0.tar.gz
2.4.3 解壓UI到/root目錄
tar zxvf apache-skywalking-apm-es7-6.6.0.tar.gz -C /root
2.4.4 配置ui
cd /root/apache-skywalking-apm-bin-es7/webapp
vim webapp.yml
listOfServers: collector服務器地址1:12800,collector服務器地址2:12800,collector服務器地址3:12800
2.4.5 修改UI啓動腳本
註釋掉oap服務的啓動
cd /root/apache-skywalking-apm-bin-es7/bin
vim startup.sh
文件如下:
#!/usr/bin/env sh
PRG=”$0”
PRGDIR=’dirname “$PRG”’
#OAP_EXE=oapService.sh
WEBAPP_EXE=webappService.sh
#“$PRGDIR/$OAP_EXE”
“$ PRGDIR/$ WEBAPP_EXE”
2.4.6 啓動UI
cd /root/apache-skywalking-apm-bin-es7/bin
./ startup.sh
2.4.7 驗證
tail -f /root/apache-skywalking-apm-bin-es7/logs/webapp.log
3 agent安裝
3.1 獲取程序
拷貝/root/apache-skywalking-apm-bin-es7/agent 文件夾到目標服務器上/root/agent
3.2 如果爲oracle數據庫需要上傳oracle插件
將自己編譯的apm-oracle-10.x-plugin-1.0.1.jar包放入agent程序的plugins目錄下
鏈接:https://pan.baidu.com/s/1f1j7-PXiXUGtrKeBZZFhWQ
提取碼:ot6p
3.3 修改配置
修改配置文件中註冊到後臺的服務名和後臺的地址端口,
服務根據實際情況進行修改,格式環境-服務名,例如
Pro-portal
Uat-portal
其他項暫時保持默認不變
vi /root/agent/config/agent.config
agent.service_name=${SW_AGENT_NAME:Uat-portal}
collect,or.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:1 collector服務器ip地址:11800, collector服務器ip地址:11800, collector服務器ip地址:11800}
3.3 修改tomcat啓動腳本
修改tomcat的bin/catalina.sh,在第一行加入
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/root/agent/skywalking-agent.jar"; export CATALINA_OPTS
3.4 重啓tomcat
重啓tomcat加載agent。
備註:skywalking具體配置說明參考官網:https://github.com/apache/skywalking/blob/5.x/docs/README_ZH.md 或者https://github.com/apache/skywalking/blob/6.x/README.md
參數配置可以參考博客:https://smooth.blog.csdn.net/article/details/96479544