一、安裝elasticsearch
1、創建文件夾:# mkdir /usr/local/skywalking
2、上傳apache-skywalking-apm-6.5.0.tar.gz 和 elasticsearch-6.4.2.tar.gz到服務器
3、解壓文件:# tar -zxvf elasticsearch-6.4.2.tar.gz
4、修改linux系統限制配置,ES至少需要65536的文件創建數的權限和4096的線程預備
# vim /etc/security/limits.conf
新增內容:
es soft nofile 65536 es hard nofile 65536 es soft nproc 4096 es hard nproc 4096
5、開辟65536字節以上的內存空間:# vi /etc/sysctl.conf
新增內容: vm.max_map_count=262144
6、使配置生效:# sysctl -p
7、增加es用戶 # useradd es
8、添加用戶密碼 # passwd es
9、修改elasicsearch擁有者 # chown -R es elasticsearch-6.4.2
10、切換用戶# su es
11、進入bin目錄啟動:./elasticsearch -d
12、查看日志# tail -f logs/ elasticsearch.log
13、訪問:curl http://localhost:9200
運行正常:
{ "name" : "kDV1-PC", "cluster_name" : "elasticsearch", "cluster_uuid" : "cNMLPvzNQsuYOKIEOtQJrQ", "version" : { "number" : "6.4.2", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "04711c2", "build_date" : "2018-09-26T13:34:09.098244Z", "build_snapshot" : false, "lucene_version" : "7.4.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
二、安裝skywalking
1、解壓安裝包 # tar -zxvf apache-skywalking-apm-6.5.0.tar.gz
2、進入目錄 # cd apache-skywalking-apm-bin
3、編輯application文件:# vim config/application.yml
# 將enableDatabaseSession注釋請除,將h2添加注釋
enableDatabaseSession: ${SW_CORE_ENABLE_DATABASE_SESSION:true}
storage:
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
user: ${SW_ES_USER:""}
password: ${SW_ES_PASSWORD:""}
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:1000} # Execute the bulk every 1000 requests
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}
# h2:
# driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
# url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
# user: ${SW_STORAGE_H2_USER:sa}
#metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
4、編輯webapp.yml文件# vim webapp/webapp.yml
# 修改端口
server:
port: 9010
5、進入bin目錄啟動:./startup.sh
三、agent探針
1、目錄說明:config存放配置文件,plugins存放執行的jar包,optional-plugins存放備用jar包(需要放入plugins才能執行)
2、修改探測的應用名稱 # vim config/agent.conf
agent.service_name=${SW_AGENT_NAME:skywalking_xxx}
3、在tomcat中引入探針監控,修改文件tomcat/bin/catalina.sh,在文件頭部加入以下內容:
CATALINA_OPTS="CATALINA_OPTS -javaagent:/usr/loacl/skywalking/apache-skywalking-apm-bin-skywalking/agent/skywalking.jar";export CATALINA_OPTS
4、監控Spring boot項目
java -javaagnet:/usr/loacl/skywalking/apache-skywalking-apm-bin-skywalking/agent/skywalking-agent.jar -Dserver.port=9092 -jar xxxx.jar &
5、配置覆蓋啟動
以探針的方式啟動(不需要去agent.conf指定名字)
java -javaagnet:/usr/loacl/skywalking/apache-skywalking-apm-bin-skywalking/agent/skywalking-agent.jar=agent.server_name=config_xxx -Dserver.port=9092 -jar xxxx.jar &
以系統配置方式啟動(不需要去agent.conf指定名字)
java -javaagnet:/usr/loacl/skywalking/apache-skywalking-apm-bin-skywalking/agent/skywalking-agent.jar -Dskywalking.agent.server_name=config_xxx -Dserver.port=9092 -jar xxxx.jar &
6、其他插件使用
獲取追蹤id:首先在項目工程中加入依賴包apm-toolkit-trace,對應的版本需要和skywalking一致,在代碼中使用裝飾器的形式獲取traceid
過濾不需要的端點:將/agent/optional-plugins/apm-trace-ignore-plugins-6.4.2.jar拷貝到plugins目錄中,重啟skywalking,在代碼中需要使用裝飾器的形式忽略端點
7、告警
告警規則查看:config/alarm-settings.yml,需要在代碼中配置webhooks方法並配置查看方法或者郵件觸發等方法
rules:
# Rule unique name, must be ended with `_rule`.
service_resp_time_rule: # 規則名稱
metrics-name: service_resp_time # 監控數據
op: ">" # 比較值
threshold: 1000 # 閾值
period: 10 # 多久檢查一次 min
count: 3 # 達到多少次之后告警
silence-period: 5 # 多久之內不會忽略相同的告警
message: Response time of service {name} is more than 1000ms in 3 minutes of last 10 minutes. # 告警消息
webhooks:
- http://127.0.0.1:9090/webhooks/
