SkyWalking全鏈路監控java項目


一、安裝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/ 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM