SkyWalking安裝和使用

image

Skywalking中OAP的概念:OAP(Observability Analysis Platform)可觀測性分析平臺是一個新的概念,始于skywalking6.X。OAP可以從多種數(shù)據(jù)源接收數(shù)據(jù),分為兩組:Tracing和Metrics。從6.2.0開始因為登錄認證的安全漏洞問題炎码,移除了登錄認證。

1秋泳、下載

目前最新為6.5.0辅肾,下載地址http://skywalking.apache.org/downloads/

2、安裝和配置

    下載完成以后轮锥,解壓后進入/ apache-skywalking-apm-bin文件夾矫钓,得到如下圖所示文件夾列表:
image
    進入config文件夾修改application.yml文件,core.default模塊為默認配置舍杜,一般不需要修改新娜,如果要修改IP或者端口,則直接修改對應(yīng)的IP地址和端口即可既绩,修改restHost和restPort后也需要同步修改/webapp文件夾下webapp.yml文件中collector.ribbon.listOfServers的配置概龄。后端接收數(shù)據(jù)監(jiān)聽端口有restHost:restPort用于http rest APIs,gRPCHost:gRPCPort用于gRPC APIs饲握。UI監(jiān)聽端口8080(默認)和請求restHost:restPort用于GraphQL查詢私杜。

儲存數(shù)據(jù)庫注釋H2,放開ElasticSearch配置救欧,如下圖所示:

image

其中衰粹,nameSpace為elasticsearch的集群名稱cluster.name,clusterNodes處添加elasticsearch的【ip:端口】笆怠,多個es集群節(jié)點以逗號分隔铝耻。ElasticSearch需要6.3.2或更高版本,官方文檔寫的不高于7.0.0蹬刷,未驗證(Required ElasticSearch 6.3.2 or higher, excepted 7.0.0 or higher)瓢捉。官方文檔建議ES增加如下配置:

thread_pool.index.queue_size: 1000 # Only suitable for ElasticSearch 6
thread_pool.write.queue_size: 1000 # Suitable for ElasticSearch 6 and 7
index.max_result_window: 1000000

agent配置:進入/agent/config文件夾打開agent.config文件,設(shè)置agent.service_name办成,設(shè)置collector.backend_service 泡态,默認連接到 127.0.0.1:11800;

UI界面訪問端口設(shè)置:修改/webapp/webapp.yml文件中的server.port端口即可迂卢。

SkyWalking支持對以下內(nèi)容進行動態(tài)配置:

image

默認動態(tài)配置是關(guān)閉的某弦,在/config/application.yml中configuration處配置桐汤。已有的實現(xiàn)有Apollo、Nacos刀崖、Zookeeper惊科、Consul拍摇。其中nacos配置如下,此處的config key為nacos中的dataId亮钦,namespace即命名空間對應(yīng)的id,覆蓋yml配置則屬性文件后綴名選yaml,對于receiver-trace.default.slowDBAccessThreshold充活,文件后綴選text:

configuration:
  nacos:
    # Nacos Server Host
    serverAddr: 127.0.0.1
    # Nacos Server Port
    port: 8848
    # Nacos Configuration Group
    group: 'skywalking'
    # Nacos Configuration namespace
    namespace: ''
    # Unit seconds, sync period. Default fetch every 60 seconds.
    period : 60
    # the name of current cluster, set the name if you want to upstream system known.
    clusterName: "default"

3蜂莉、應(yīng)用中探針接入

agent支持的服務(wù)清單列表查看如下鏈接:https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/Supported-list.md

>>基于tomcat的服務(wù)

在tomcat的bin目錄下,查看是否存在setenv.bat文件(linux為setenv.sh)混卵,不存在創(chuàng)建映穗,并添加一行命令,set "CATALINA_OPTS=-javaagent:/path/to/skywalking-agent/skywalking-agent.jar",linux下添加以下命令CATALINA_OPTS="$CATALINA_OPTS-javaagent:/path/to/skywalking-agent/skywalking-agent.jar"; exportCATALINA_OPTS

>>基于jar file的服務(wù)

在啟動應(yīng)用程序的命令行添加-javaagent參數(shù)幕随,并確保在-jar參數(shù)之前添加它蚁滋。命令如下:java -javaagent: /path/to/skywalking-agent/skywalking-agent.jar-jar yourApp.jar

idea中配置:打開run->Edit Configurations面板,在VM options處輸入-javaagent:/path/to/skywalking-agent/skywalking-agent.jar命令赘淮,如下圖:

image

以上三種配置辕录,如果需要指定服務(wù)名稱,則增加

-Dskywalking.agent.service_name=application_name命令梢卸。

image
image

4走诞、skywalking初始化及啟動

當(dāng)集群部署SkyWalking的時候多實例同時啟動會存在并發(fā)初始化問題,所以在啟動之前運行一個單實例執(zhí)行初始化動作蛤高,通過執(zhí)行oapServiceInit.sh/oapServiceInit.bat進行初始化蚣旱,可初始化ES索引,MYSQL戴陡,TIDB以及一些初始化數(shù)據(jù)塞绿,執(zhí)行成功看到如下日志:

2018-11-09 23:04:39,465 -org.apache.skywalking.oap.server.starter.OAPServerStartUp -2214 [main] INFO []- OAP starts up in init mode successfully, exit now...。

/bin/oapService.bat:如果未進行初始化會進行初始化操作恤批,然后開啟監(jiān)聽提供服務(wù)位隶。
/bin/oapServiceInit.bat:進行初始化操作,然后會退出开皿。
/bin/oapServiceNoInit.bat:不進行初始化啟動涧黄,會等待es索引、或者mysql赋荆、TIDB表存在笋妥,然后開始監(jiān)聽并提供服務(wù)。意味著oap服務(wù)器等待其他oap服務(wù)器進行初始化窄潭。
/bin/webappService.bat:啟動UI服務(wù)春宣。
/bin/startup.bat:同時啟動oapService.bat和webappService.bat。

5、界面訪問

啟動ElasticSearch月帝,進入/bin文件夾運行startup.bat文件啟動skywalking躏惋,沒問題的話訪問http://localhost:8080即可看到skywalking控制臺,如下圖所示即啟動成功:

image

6嚷辅、日志中traceId輸出

關(guān)于trace相關(guān)概念看中文翻譯https://wu-sheng.gitbooks.io/opentracing-io/content/或者:https://github.com/opentracing-contrib/opentracing-specification-zh/blob/master/specification.md
traceId格式:{service_instance_id}.{thread_id}.({時間戳} * 10000 + 線程自增序列([0, 9999]))
日志為log4j2如果要在監(jiān)控的應(yīng)用中輸出traceId簿姨,首先引入如下依賴:

<dependency>
      <groupId>org.apache.skywalking</groupId>      
     <artifactId>apm-toolkit-log4j-2.x</artifactId>      
     <version>{project.release.version}</version>
</dependency>

然后修改log4j2.xml的日志輸出格式增加[%traceId]即可。更多信息查看官方文檔
https://github.com/apache/skywalking/blob/v6.5.0/docs/en/setup/service-agent/java-agent/Application-toolkit-log4j-2.x.md
日志為logback的話簸搞,引入如下依賴:

<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-logback-1.x</artifactId>
    <version>{project.release.version}</version>
</dependency>

修改logback.xml的日志輸出格式扁位,增加%tid即可。更多信息查看官方文檔https://github.com/apache/skywalking/blob/v6.5.0/docs/en/setup/service-agent/java-agent/Application-toolkit-logback-1.x.md

手動追蹤traceId趁俊,首先引入如下依賴:

<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>${skywalking.version}</version>
</dependency>

然后在想要追蹤的方法上增加@Trace注解域仇,該方法內(nèi)部即可通過TraceContext.traceId()方法獲取traceId,亦可通過ActiveSpan.tag("my_tag","my_value");增加標(biāo)簽標(biāo)記寺擂。

7暇务、集群配置

/config/application.yml文件下cluster處配置,默認為cluster.standalone單機模式怔软】严福可配置集群有zookeeper、kubernetes爽雄、consul蝠检、nacos。配置集群模式時注釋掉standalone模式挚瘟。集群模式下叹谁,各個實例的采樣率建議設(shè)置一致,否則可能會導(dǎo)致數(shù)據(jù)丟失風(fēng)險乘盖。采樣率配置在/config/application.yml中焰檩,receiver-trace.Default.sampleRate。agent配置:/agent/config/agent.config文件中的collector.backend_service多個節(jié)點以英文逗號分隔订框。示例如下:collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800,127.0.0.1:11801}
webapp配置:/webapp/webapp.yml文件中collector.ribbon.listOfServers多個逗號分隔析苫,示例:127.0.0.1:12800,127.0.0.1:12801
以nacos集群為例:
啟動nacos以后,SkyWalking的webapp服務(wù)啟動一個即可穿扳,collector服務(wù)分別執(zhí)行每個節(jié)點的/bin/oapService.bat啟動衩侥。成功啟動以后就會在nacos服務(wù)列表看到collector啟動的服務(wù)實例,如下圖:


image

8矛物、告警配置

Alarm模塊由兩部分組成:
Alarm rules: 定義了如何觸發(fā)度量警告茫死,應(yīng)該考慮什么條件。
Webhooks:警告被觸發(fā)以后web服務(wù)的端點列表中哪一個端點應(yīng)該被調(diào)用履羞。
Alarm rule由以下key組成:
Rule name: 在告警信息中顯示的唯一名稱峦萎。必須以_rule結(jié)尾屡久。
Metrics name: 是oal腳本中的度量名。只支持long,double和int類型爱榔。
Include names:以下實體名稱包含在此規(guī)則中被环,如服務(wù)名、端點名详幽。
Exclude names:以下實體名稱不包含在此規(guī)則中筛欢,如服務(wù)名、端點名妒潭。
Threshold:閾值悴能。
OP: 操作符支持 >, <, =揣钦。
Period: 多久告警規(guī)則需要被核實一下雳灾。這是一個時間窗口,與后端部署環(huán)境時間相匹配冯凹。
Count: 在一個Period窗口中谎亩,如果超過Threshold值(按op)的次數(shù)等于Count值,需要發(fā)送警報宇姚。
Slience period:靜默時間匈庭。在某個時間點出發(fā)告警以后,在接下來period的時間段內(nèi)將會保持靜默浑劳。默認值與period相同阱持,意味著在一段時間內(nèi),相同的告警(相同的度量名稱相同的id)只會觸發(fā)一次魔熏。
Webhook要求對等方是一個 Web 容器. 告警的消息會通過 HTTP請求進行發(fā)送, 請求方法為 POST, Content-Type 為 application/json, JSON 格式基于List<org.apache.skywalking.oap.server.core.alarm.AlarmMessage, 包含以下信息:
scopeId衷咽,scope:所有scope定義在org.apache.skywalking.oap.server.core.source.DefaultScopeDefine類中。
name:目標(biāo)scope實體名稱蒜绽。
id0:scope
實體的ID镶骗。
id1:暫未用。
ruleName: 配置在alarm-settings.yml中的規(guī)則名稱躲雅。
alarmMessage: 告警文本信息
startTime: 當(dāng)前時間到UTC 1970年1月1日半夜12點毫秒值鼎姊。
示例:
[{
"scopeId": 1,
"scope": "SERVICE",
"name": "serviceA",
"id0": 12,
"id1": 0,
"ruleName": "service_resp_time_rule",
"alarmMessage": "alarmMessage xxxx",
"startTime": 1560524171000
}, {
"scopeId": 1,
"scope": "SERVICE",
"name": "serviceB",
"id0": 23,
"id1": 0,
"ruleName": "service_resp_time_rule",
"alarmMessage": "alarmMessage yyy",
"startTime": 1560524171000
}]

9、參考鏈接

https://cloud.tencent.com/developer/article/1536086 skywalking與pinpoint對比以及它的概念相赁、使用相寇。

https://www.youtube.com/watch?v=JC-Anlshqx8 skywalking的UI界面使用視頻

https://github.com/apache/skywalking/blob/master/docs/en/guides/How-to-build.md 本地編譯調(diào)試。

https://blog.csdn.net/weixin_41618475/article/details/90263316

需要安裝npm環(huán)境和awk軟件钮科。

https://gitee.com/OpenSkywalking/sky-walking 碼云skywalking地址

http://122.112.182.72:8080 skywalkingUI界面體驗

10唤衫、UI界面介紹

CPM:每分鐘請求調(diào)用次數(shù)(平均吞吐量)。

SLA: 服務(wù)等級協(xié)議(簡稱:SLA跺嗽,全稱:service level agreement)战授。是在一定開銷下為保障服務(wù)的性能和可用性页藻,服務(wù)提供商與用戶間定義的一種雙方認可的協(xié)定。通常這個開銷是驅(qū)動提供服務(wù)質(zhì)量的主要因素植兰。即服務(wù)可用性份帐,如99.9,99.99,99.999

CLR:(公共語言運行庫,Common Language Runtime)和 Java 虛擬機一樣也是一個運行時環(huán)境,是一個可由多種編程語言使用的運行環(huán)境楣导。CLR 的核心功能包括:內(nèi)存管理废境、程序集加載、安全性筒繁、異常處理和線程同步噩凹,可由面向 CLR 的所有語言使用。并保證應(yīng)用和底層操作系統(tǒng)之間必要的分離毡咏。

百分位數(shù):skywalking中有P50驮宴,P75,P90呕缭,P95堵泽,P99這種統(tǒng)計口徑,就是百分位數(shù)的概念恢总。

圖例:如下圖迎罗,表示12月16日,14:53分這個時間點探針反饋的統(tǒng)計結(jié)果來看片仿,有50%的請求響應(yīng)時間低于1020ms纹安,有75%的請求響應(yīng)時間低于1200ms,有90%的請求響應(yīng)時間低于2150ms砂豌,有95%的請求響應(yīng)時間低于3140ms厢岂,有99%的請求響應(yīng)時間低于3220ms。

image
image
image
image
image
image
image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奸鸯,一起剝皮案震驚了整個濱河市咪笑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娄涩,老刑警劉巖窗怒,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蓄拣,居然都是意外死亡扬虚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門球恤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辜昵,“玉大人,你說我怎么就攤上這事咽斧】爸茫” “怎么了躬存?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舀锨。 經(jīng)常有香客問我岭洲,道長,這世上最難降的妖魔是什么坎匿? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任盾剩,我火速辦了婚禮,結(jié)果婚禮上替蔬,老公的妹妹穿的比我還像新娘告私。我一直安慰自己,他們只是感情好承桥,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布驻粟。 她就那樣靜靜地躺著,像睡著了一般快毛。 火紅的嫁衣襯著肌膚如雪格嗅。 梳的紋絲不亂的頭發(fā)上番挺,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天唠帝,我揣著相機與錄音,去河邊找鬼玄柏。 笑死襟衰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粪摘。 我是一名探鬼主播瀑晒,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼徘意!你這毒婦竟也來了苔悦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤椎咧,失蹤者是張志新(化名)和其女友劉穎玖详,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勤讽,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡蟋座,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了脚牍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片向臀。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诸狭,靈堂內(nèi)的尸體忽然破棺而出券膀,到底是詐尸還是另有隱情君纫,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布芹彬,位于F島的核電站庵芭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雀监。R本人自食惡果不足惜双吆,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望会前。 院中可真熱鬧好乐,春花似錦、人聲如沸瓦宜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽临庇。三九已至反璃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間假夺,已是汗流浹背淮蜈。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留已卷,地道東北人梧田。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像侧蘸,于是被迫代替她去往敵國和親裁眯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容