在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux 9自動化部署Pinpoint APM

CHANBAEK ? 來源:魏文第 ? 作者:魏文第 ? 2023-12-04 14:54 ? 次閱讀

信息技術(shù)和系統(tǒng)管理領(lǐng)域,使用 Application Performance Management(應(yīng)用程序性能管理)來監(jiān)控和管理應(yīng)用程序的性能和可用性。APM 致力于檢測和診斷復(fù)雜的應(yīng)用程序性能問題,以保持預(yù)期的服務(wù)級別,將 IT 指標(biāo)轉(zhuǎn)化為業(yè)務(wù)價值。

Pinpoint 是一個開源的、主流的 APM 實現(xiàn),靈感來自 Google Dapper,使用 Java、PHP、Python 開發(fā)。全球有數(shù)百萬用戶使用它分析架構(gòu)以及跨分布式應(yīng)用程序組件之間的互聯(lián)。

本文將通過以下主題,介紹 Pinpoint 的自動化部署,以及如何配置它監(jiān)控應(yīng)用:

  • Pinpoint 介紹
  • 自動化部署 Pinpoint
  • 訪問 Pinpoint Web UI
  • 配置監(jiān)控
  • 總結(jié)

39.1 PinPoint 介紹

本節(jié)主要從兩方面討論 Pinpoint。

39.1.1 Pinpoint 架構(gòu)

Pinpoint 架構(gòu)如下:

圖片
圖39.1, PinPoint 架構(gòu)圖,圖片來自 PinPoint 官網(wǎng)

從圖中可以看到四個主要組件:

  • Pinpoint Collector:Web 應(yīng)用程序,收集應(yīng)用數(shù)據(jù)
  • HBase Storage:開源的非關(guān)系數(shù)據(jù)庫,存儲 Pinpoint 數(shù)據(jù)
  • Pinpoint Web UI:Pinpoint 前端
  • Pinpoint Agent:將應(yīng)用程序的數(shù)據(jù)發(fā)送到 Pinpoint Collector

39.1.2 Pinpoint 特性

以下是 Pinpoint 的相關(guān)特性,也是它為什么在眾多 APM 中脫穎而出的原因:

  • 提供云和主機監(jiān)控;
  • 分布式事務(wù)跟蹤,用于跨分布式應(yīng)用程序跟蹤;
  • 應(yīng)用程序拓?fù)涓庞[,跟蹤所有組件之間的事務(wù),以識別潛在的問題;
  • 輕量級,對系統(tǒng)性能影響較小;
  • 提供代碼級可見性,輕松識別故障點和瓶頸;
  • 事務(wù)代碼級可見性,響應(yīng)模式和請求計數(shù);
  • 提供字節(jié)碼檢測技術(shù),使用中無需修改應(yīng)用程序代碼
  • 自動檢測應(yīng)用程序拓?fù)洌瑤椭夹g(shù)人員了解應(yīng)用程序配置;
  • 實時監(jiān)控,實時觀察活動線程;
  • 水平可擴展,支持大規(guī)模服務(wù)器組。

39.2 自動化部署 Pinpoint

本節(jié)演示如何使用 Ansible 與 Docker,完成 Pinpoint 的自動化部署。

文中使用的代碼已提交至 GitHub,可以在對應(yīng)目錄中查詢。

39.2.1 要求

Ansible 主機可通過具有 sudo 權(quán)限的用戶免密登錄 Pinpoint 主機。

有關(guān) sudo 及免密的配置,可以參考之前的文章,或在 GitHub 代碼中查看。

39.2.2 克隆代碼到 Ansible 節(jié)點

在 Ansible 節(jié)點上執(zhí)行以下命令,將自動化代碼克隆到本地:

$ git clone https://github.com/weiwendi/automate.git

進(jìn)入 automate/playbook/ 目錄,里面包含了很多組件的自動化部署。在本篇文章中,主要用到了 dockerpinpoint 兩個目錄。

39.2.3 安裝 Docker

進(jìn)入 docker/ 目錄,修改 hosts 文件,指定 Pinpoint 主機名或 IP。例如我的 Pinpoint 主機 IP 為 10.211.55.69、主機名為 common.server.aiops.red,hosts 文件內(nèi)容如下:

[nodes]
common.server.aiops.red

需要根據(jù)實際的 IP 或主機名稱替換 'common.server.aiops.red'。

安裝 Docker:

ansible-playbook -i hosts playbook.yaml

39.2.4 安裝 Pinpoint

切換到 pinpoint 目錄:

cd ../pinpoint/

首先修改 hosts 文件,就像安裝 Docker 時那樣,將 Pinpoint 主機的 IP 或主機名寫入該文件。

然后執(zhí)行 possibleReboot.yaml 文件,它的作用是:

  • 關(guān)閉 Selinux
  • 關(guān)閉 Firewalld
  • 更新軟件包

關(guān)閉 Selinux 和更新軟件包的過程,都可能會重啟服務(wù)器,因此把這個文件獨立出來,用于初次部署時執(zhí)行。

執(zhí)行 possibleReboot.yaml 文件:

ansible-playbook -i hosts possibleReboot.yaml

最后,執(zhí)行以下命令安裝 Pinpoint:

ansible-playbook -i hosts playbook.yaml

該命令執(zhí)行時間比較長,執(zhí)行過程中可能會遇到報錯。報錯很可能是從 GitHub 下載 pinpoint-docker 項目時的網(wǎng)絡(luò)原因?qū)е隆?/p>

注意:

要想在自動化過程中避免下載 GitHub 代碼的網(wǎng)絡(luò)超時引發(fā)的錯誤,可以提前手動將 pinpoint-docker 項目的代碼克隆到 Pinpoin 主機指定的目錄下,然后注釋 ../../roles/pinpoint/tasks/main.yml 文件中以下內(nèi)容:

- name: clone pinpoint-docker project task
    ansible.builtin.git:
      repo: 'https://github.com/pinpoint-apm/pinpoint-docker.git'
      dest: "{{ deployDir }}"
      single_branch: true
      version: "{{ version }}"

../../roles/pinpoint/defaults/main.yml 文件中定義了兩個變量:

---
# defaults file for pinpoint
#
deployDir: /software/repos/pinpoint-docker
version: 2.5.2
  • deployDir:存放 pinpoint-docker 項目的目錄
  • version:Pinpoint 版本

39.3 訪問 Pinpoint Web UI

在瀏覽器中輸入 Pinpoint 主機 IP:8080 訪問 Pinpoint Web UI。如果能正常打開頁面,說明部署順利完成。如果打不開頁面,需要通過 docker ps -a 命令和 docker logs 等命令查看 Pinpoint 容器的運行情況,以及檢查網(wǎng)絡(luò)連通性。

此時 Pinpoint 并沒有監(jiān)控數(shù)據(jù),需要通過 Pinpoint Agent,收集監(jiān)控對象的數(shù)據(jù)。下一節(jié)我會通過三個示例演示如何監(jiān)控 Java 程序。

39.4 配置監(jiān)控

本節(jié)通過演示配置 Pinpoint APM 監(jiān)控 Zookeeper、Kafka 和 Tomcat,來介紹 Pinpoin 如何使用、以及它的易用性。

39.4.1 下載 Pinpoint Agent

在 GitHub pinpoint-apm 中下載對應(yīng)版本的 Agent。

示例中解壓到了被監(jiān)控組件主機的 /opt/pagent252/

修改 /opt/pagent252/profiles/release/pinpoint.config 文件,把文件中所有 127.0.0.1 的地址,修改為 Pinpoint 主機的 IP 地址。

39.4.2 監(jiān)控 Zookeeper

修改 Zookeeper 的啟動文件,進(jìn)入 Zookeeper 主目錄,編輯 bin/zkServer.sh,增加以下內(nèi)容:

start)
    echo  -n "Starting zookeeper ... "
    if [ -f "$ZOOPIDFILE" ]; then
      if kill -0 `cat "$ZOOPIDFILE"` > /dev/null 2 >&1; then
         echo $command already running as process `cat "$ZOOPIDFILE"`.
         exit 1
      fi
    fi
    nohup "$JAVA" $ZOO_DATADIR_AUTOCREATE "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" 
    "-Dzookeeper.log.file=${ZOO_LOG_FILE}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" 
    -javaagent:/opt/pagent252/pinpoint-bootstrap-2.5.2.jar  # 新增內(nèi)容
    -Dpinpoint.agentId=zk01  # 新增內(nèi)容
    -Dpinpoint.applicationName=zk  # 新增內(nèi)容
    -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='kill -9 %p' 
    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2 >&1 < /dev/null &
...
  • -javaagent :指定 Pinpoint Agent 包路徑;
  • -Dpinpoint.agentId :全局唯一 ID,可以與 applicationName 關(guān)聯(lián)定位應(yīng)用;
  • -Dpinpoint.applicationName :應(yīng)用名稱,對于多副本部署的應(yīng)用,該名稱應(yīng)設(shè)置為相同的值,通過 -Dpinpoint.agentId 的不同進(jìn)行區(qū)分。

重啟 Zookeeper 服務(wù),使配置生效。

查看 Pinpoint Web UI,可以看到類似以下界面:

圖片
圖39.2, 監(jiān)控 zk

39.4.3 監(jiān)控 Kafka

在 Kafka 主機上準(zhǔn)備好 Pinpoint Agent。修改 Kafka 的啟動文件,通常位于 Kafka 目錄的 bin/kafka-run-class.sh。修改以下內(nèi)容:

if [ "x$DAEMON_MODE" = "xtrue" ]; then
  nohup "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS -javaagent:/opt/pagent252/pinpoint-bootstrap-2.5.2.jar -Dpin
point.agentId=kafka2 -Dpinpoint.applicationName=kafka $KAFKA_LOG4J_OPTS -cp "$CLASSPATH" $KAFKA_OPTS "$@" > "$CONSOLE_OUTPUT_FILE" 2 >&1 < /dev/null &
else
  exec "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS -javaagent:/opt/pagent252/pinpoint-bootstrap-2.5.2.jar -Dpinp
oint.agentId=kafka2 -Dpinpoint.applicationName=kafka $KAFKA_LOG4J_OPTS -cp "$CLASSPATH" $KAFKA_OPTS "$@"
fi

-javaagent:/opt/pagent252/pinpoint-bootstrap-2.5.2.jar -Dpin point.agentId=kafka2 -Dpinpoint.applicationName=kafka 為新增內(nèi)容。

重啟 Kafka 服務(wù),使配置生效。再次查看 Web UI:

圖片
圖39.3, 監(jiān)控 Kafka

39.4.4 監(jiān)控 Tomcat

在 Tomcat 節(jié)點上,準(zhǔn)備好 Pinpoint Agent。

修改 Tomcat bin/catalina.sh 文件,在文件開始部分增加以下內(nèi)容:

#!/bin/sh
# 新增內(nèi)容
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/opt/pagent252/pinpoint-bootstrap-2.5.2.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=tomcat1"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=tomcat"

保存并重啟 Tomcat 服務(wù),然后查看 Web UI:

圖片
圖39.4 監(jiān)控 Tomcat 內(nèi)存堆棧等使用

再來看看 Tomcat 調(diào)用鏈路拓?fù)浼?a target="_blank">接口響應(yīng)信息:

圖片
圖39.5, 鏈路追蹤與自動生成拓?fù)?/p>

39.5 總結(jié)

Pinpoint APM 是常用的鏈路跟蹤及監(jiān)控工具,本教程演示了 Pinpoint APM 的自動化部署,以及如何配置 Pinpoint 監(jiān)控 Java 程序。教程同樣適用于其他基于 RPM 的 Linux 發(fā)行版。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11351

    瀏覽量

    210507
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3412

    瀏覽量

    42742
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3297

    瀏覽量

    57946
  • APM
    APM
    +關(guān)注

    關(guān)注

    1

    文章

    71

    瀏覽量

    13049
收藏 人收藏

    評論

    相關(guān)推薦

    工控儀器自動化

    工控儀器自動化自動化:化學(xué)吸附micromeritics.com.cn/products_view.aspx?id=9產(chǎn)業(yè)控制自動化技術(shù)是一種運用控制理論、儀器儀表、計算機和其它信息
    發(fā)表于 09-17 15:37

    招聘自動化、電氣自動化自動化控制工程師

    招聘自動化、電氣自動化自動化控制工程師,掛證,不坐班,要求持有相關(guān)專業(yè)的中級職稱證,用于我司資質(zhì)申報工作上,湊資質(zhì)人員申報資質(zhì),不存在風(fēng)險。聯(lián)系電話***,Q1580479594李經(jīng)理
    發(fā)表于 10-24 18:06

    實現(xiàn)工業(yè)自動化的市場阻礙

    很多人把工業(yè)自動化等同于了物聯(lián)網(wǎng),實際上物聯(lián)網(wǎng)只是實現(xiàn)工業(yè)自動化的一種手段,而非目的。現(xiàn)在物聯(lián)網(wǎng)的實際應(yīng)用只存在于大型的制造商中間。中小企業(yè)資源和能力的缺失阻礙了中國工業(yè)自動化整體前進(jìn)。現(xiàn)在市場上
    發(fā)表于 09-11 15:54

    七個步驟實現(xiàn)自動化測試

    本文介紹自動化測試的 7 個步驟:改進(jìn)自動化測試過程,定義需求,驗證概念,支持產(chǎn)品的可測試性,具有可延續(xù)性的設(shè)計( design for sustainability ),有計劃的部署和面對成功的挑戰(zhàn)。按照以上 7 個步驟,安排
    發(fā)表于 07-18 07:42

    七個步驟完成自動化測試

    ),有計劃的部署和面對成功的挑戰(zhàn)。按照以上 7 個步驟,安排你的人員、工具和制定你的自動化測試項目計劃,你將會通往一條成功之路。
    發(fā)表于 07-19 06:12

    如何搭建DotNet Core 21自動化構(gòu)建和部署環(huán)境

    邊緣搭建DotNet Core 21 自動化構(gòu)建和部署環(huán)境(上)
    發(fā)表于 04-23 14:53

    基于IAR EW編譯工具實現(xiàn)Linux系統(tǒng)上自動化構(gòu)建

    框架的自動化編譯和測試過程,進(jìn)而支持關(guān)鍵軟件編譯和測試的大規(guī)模部署。 現(xiàn)在支持ARM、瑞薩RH850和RX內(nèi)核的編譯工具鏈可以在Linux系統(tǒng)上運行。1IAR Linux系統(tǒng)編譯工具鏈
    發(fā)表于 11-27 13:41

    風(fēng)河Linux平臺構(gòu)建新型家庭自動化網(wǎng)關(guān)

    風(fēng)河Linux平臺構(gòu)建新型家庭自動化網(wǎng)關(guān) Intel全資子公司風(fēng)河系統(tǒng)公司(WindRiver)日前宣布,比利時fifthplay公司選擇WindRiverLinux作為構(gòu)建其新型家庭自動化網(wǎng)關(guān)。  &
    發(fā)表于 11-06 16:13 ?998次閱讀

    jenkins自動化部署

    本文詳細(xì)介紹Jenkins的簡單使用—jenkins自動化部署
    的頭像 發(fā)表于 02-06 11:27 ?4813次閱讀
    jenkins<b class='flag-5'>自動化</b><b class='flag-5'>部署</b>

    云平臺的自動化部署設(shè)計與實現(xiàn)

    基于簡化部署操作、節(jié)省部署時間、提高部署效率的目的,對云平臺架構(gòu)和網(wǎng)絡(luò)拓?fù)溥M(jìn)行設(shè)計,對云平臺自動化系統(tǒng)的需求進(jìn)行分析,重點對自動化
    發(fā)表于 02-23 10:07 ?0次下載
    云平臺的<b class='flag-5'>自動化</b><b class='flag-5'>部署</b>設(shè)計與實現(xiàn)

    數(shù)據(jù)中心如何實現(xiàn)自動化部署

    數(shù)據(jù)中心里設(shè)備千萬,并需要不斷進(jìn)行擴容,而一般數(shù)據(jù)中心運維也就十幾個人,要反復(fù)重復(fù)著這樣的工作,所以有人設(shè)計了自動化部署的架構(gòu)。就是在數(shù)據(jù)中心新增設(shè)備時,即插即用,只要將設(shè)備上電,網(wǎng)線連接好,就可以
    的頭像 發(fā)表于 03-15 11:43 ?3102次閱讀

    5G承載網(wǎng)絡(luò)建設(shè)向自動化部署的方向邁出堅實的步伐

    近日,中興通訊聯(lián)合福建省移動和寧德市移動在寧德現(xiàn)網(wǎng)完成創(chuàng)新SPN網(wǎng)絡(luò)自動化部署方案的驗證,將網(wǎng)元開通和部署效率提升70%以上,標(biāo)志著5G承載網(wǎng)絡(luò)建設(shè)向自動化
    的頭像 發(fā)表于 11-19 09:28 ?1746次閱讀

    部署Linux的最佳實踐探索

    編者按:本文節(jié)選自節(jié)選自《基于Linux的企業(yè)自動化》第五章。“第5章,使用Ansible構(gòu)建用于部署的虛擬機模板,通過構(gòu)建虛擬機模板來探索部署Li
    的頭像 發(fā)表于 05-16 09:35 ?611次閱讀

    Jenkins 與 SonarQube 集成部署自動化代碼質(zhì)量監(jiān)控

    的性能表現(xiàn),為 Jenkins 與 SonarQube 的集成部署提供強大支撐。在 Flexus X 的助力下,自動化代碼掃描與質(zhì)量問題即時反饋成為可能,顯著提升團(tuán)隊開發(fā)效率與軟件質(zhì)量。立即體驗華為云
    的頭像 發(fā)表于 01-07 17:24 ?286次閱讀
    Jenkins 與 SonarQube 集成<b class='flag-5'>部署</b>,<b class='flag-5'>自動化</b>代碼質(zhì)量監(jiān)控

    基于 Docker 與 Jenkins 實現(xiàn)自動化部署

    前言 重塑自動化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服務(wù)器的加持下,引領(lǐng)持續(xù)集成與部署的新紀(jì)元。Flexus X 以其卓越的性能、靈活的資源配置和高效的成本
    的頭像 發(fā)表于 01-07 17:25 ?230次閱讀
    基于 Docker 與 Jenkins 實現(xiàn)<b class='flag-5'>自動化</b><b class='flag-5'>部署</b>
    主站蜘蛛池模板: 色婷婷久久免费网站 | а中文在线天堂 | 男啪女色黄无遮挡免费观看 | 222www免费观看 | 五月婷综合 | 久久国产成人午夜aⅴ影院 久久国产福利 | 天天操天天操天天操天天操 | 亚洲欧美日韩在线精品2021 | 四虎永久网址影院 | 国产一级免费视频 | 特黄特色三级在线播放 | 道区二区三区四区 | 国产成人亚洲毛片 | 狠狠色丁香婷婷综合小时婷婷 | 色秀视频免费高清网站 | 日本亚洲卡一卡2卡二卡三卡四卡 | 亚洲精品老司机综合影院 | 扒开双腿疯狂进出爽爽爽 | 色综合网天天综合色中文男男 | 婷婷丁香色 | 狠狠操欧美| 婷婷综合激六月情网 | 亚洲精品久久久久午夜 | 日本精品视频一视频高清 | 青草悠悠视频在线观看 | 天天干天天拍天天操 | 三级网在线 | 丁香婷婷激情五月 | 日韩成人免费一级毛片 | 深夜一级毛片 | 起碰成人免费公开网视频 | 久久综合五月开心婷婷深深爱 | 国产精品久久久久久一级毛片 | 国产真实乱偷人视频 | 午夜毛片网站 | 国产午夜精品理论片久久影视 | 国产一区二区三区免费大片天美 | 狠狠色综合久久久久尤物 | 日本三级香港三级人妇99视 | 欧美黑人巨大xxx猛交 | 97午夜理伦片在线影院 |