1. 程式人生 > >分散式監控CAT服務端的本地部署

分散式監控CAT服務端的本地部署

一、CAT簡介

CAT(Central Application Tracking),是美團點評基於 Java 開發的一套開源的分散式實時監控系統。美團點評基礎架構部希望在基礎儲存、高效能通訊、大規模線上訪問、服務治理、實時監控、容器化及叢集智慧排程等領域提供業界領先的、統一的解決方案,CAT 目前在美團點評的產品定位是應用層的統一監控元件,在中介軟體(RPC、資料庫、快取、MQ 等)框架中得到廣泛應用,為各業務線提供系統的效能指標、健康狀況、實時告警等服務。

二、部署環境

  • Windows 7
  • CAT 3.0
  • Java 8
  • Tomcat 8.5
  • Maven 3
  • MySQL 5.7
  • 內網IP:192.168.1.111

三、開始部署

1.下載CAT原始碼

git clone https://github.com/dianping/cat.git

2.初始化資料庫

在MySQL中建立cat資料庫,然後執行script/Cat.sql中的SQL語句。

3.建立配置檔案

在Tomcat所在的盤中建立/data/appdatas/cat資料夾,然後建立/data/appdatas/cat/client.xml檔案,寫入如下內容:

<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
    <servers>
        <server ip="192.168.1.111" port="2280" http-port="8080"/>
    </servers>
</config>

其中,192.168.1.111改為你電腦的內網IP,2280是預設的CAT服務端接受資料的埠,不允許修改,http-port是Tomcat啟動的埠,預設是8080,建議使用預設埠。

再建立/data/appdatas/cat/datasources.xml檔案,寫入如下內容:

<?xml version="1.0" encoding="utf-8"?>
<data-sources>
    <data-source id="cat">
        <maximum-pool-size>3</maximum-pool-size>
        <connection-timeout>1s</connection-timeout>
        <idle-timeout>10m</idle-timeout>
        <statement-cache-size>1000</statement-cache-size>
        <properties>
            <driver>com.mysql.jdbc.Driver</driver>
            <url><![CDATA[jdbc:mysql://192.168.1.111:3306/cat]]></url>  <!-- 請替換為真實資料庫URL及Port  -->
            <user>root</user>  <!-- 請替換為真實資料庫使用者名稱  -->
            <password>root</password>  <!-- 請替換為真實資料庫密碼  -->
            <connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
        </properties>
    </data-source>
</data-sources>

其中,需要替換的有:資料庫IP、port、使用者名稱和密碼。

4.CAT的war部署

使用Maven構建AT的war:

mvn clean install -DskipTests

構建成功後,將cat-home/target/cat-alpha-3.0.0.war重新命名為cat.war,複製到Tomcat的webapps下,啟動tomcat。

5.修改路由配置

訪問http://192.168.1.111:8080/cat/s/config?op=routerConfigUpdate,預設使用者名稱:admin 預設密碼:admin,修改客戶端路由配置:

<?xml version="1.0" encoding="utf-8"?>
<router-config backup-server="192.168.1.111" backup-server-port="2280">
   <default-server id="192.168.1.111" weight="1.0" port="2280" enable="true"/>
   <network-policy id="default" title="預設" block="false" server-group="default_group">
   </network-policy>
   <server-group id="default_group" title="default-group">
      <group-server id="192.168.1.111"/>
   </server-group>
   <domain id="cat">
      <group id="default">
         <server id="192.168.1.111" port="2280" weight="1.0"/>
      </group>
   </domain>
</router-config>

配置說明:

  • backup-server屬性:設定為當前伺服器對外IP地址,埠固定為2280
  • default-server屬性:定義可跳轉的路由地址,可以設定多個。default-server的id屬性配置可路由的cat-home服務IP地址,埠固定為2280;若需要禁用路由地址,可把enable設定為false
  • network-policy 這邊可以配置多個不同網段,表示這個網段使用server-group的cat節點,這裡面的作用主要是當多機房部署cat的時候,可以將cat分為多個多個子叢集,然後多個子叢集處理不同的客戶端,避免跨專線訪問
  • domain id=cat 這部分主要是定製路由,當發現一些專案資料量特別大,或者其他場景,可以將這些domain的監控請求單獨隔離處理

6.修改服務端配置

訪問http://192.168.1.111:8080/cat/s/config?op=serverConfigUpdate,修改服務端配置:

<?xml version="1.0" encoding="utf-8"?>
<server-config>
   <server id="default">
      <properties>
         <property name="local-mode" value="false"/>
         <property name="job-machine" value="true"/>
         <property name="send-machine" value="false"/>
         <property name="alarm-machine" value="true"/>
         <property name="hdfs-enabled" value="false"/>
         <property name="remote-servers" value="192.168.1.111:8080"/>
      </properties>
      <storage local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="2" local-logivew-storage-time="1" har-mode="true" upload-thread="5">
         <hdfs id="dump" max-size="128M" server-uri="hdfs://127.0.0.1/" base-dir="/user/cat/dump"/>
         <harfs id="dump" max-size="128M" server-uri="har://127.0.0.1/" base-dir="/user/cat/dump"/>
         <properties>
            <property name="hadoop.security.authentication" value="false"/>
            <property name="dfs.namenode.kerberos.principal" value="hadoop/[email protected]"/>
            <property name="dfs.cat.kerberos.principal" value="[email protected]"/>
            <property name="dfs.cat.keytab.file" value="/data/appdatas/cat/cat.keytab"/>
            <property name="java.security.krb5.realm" value="value1"/>
            <property name="java.security.krb5.kdc" value="value2"/>
         </properties>
      </storage>
      <consumer>
         <long-config default-url-threshold="1000" default-sql-threshold="100" default-service-threshold="50">
            <domain name="cat" url-threshold="500" sql-threshold="500"/>
            <domain name="OpenPlatformWeb" url-threshold="100" sql-threshold="500"/>
         </long-config>
      </consumer>
   </server>
   <server id="192.168.1.111">
      <properties>
         <property name="job-machine" value="true"/>
         <property name="send-machine" value="false"/>
         <property name="alarm-machine" value="true"/>
      </properties>
   </server>
</server-config>

配置說明:
server節點:代表一臺機器的配置。如果id為default,代表預設配置;如果id為ip,代表該臺伺服器的配置

  • local-mode : 定義服務是否為本地模式(開發模式),在生產環境時,設定為false,啟動遠端監聽模式。預設為 false;
  • hdfs-machine : 定義是否啟用HDFS儲存方式,預設為 false;
  • job-machine : 定義當前服務是否為報告工作機(開啟生成彙總報告和統計報告的任務,只需要一臺服務機開啟此功能),預設為 false;
  • alarm-machine : 定義當前服務是否為報警機(開啟各類報警監聽,只需要一臺服務機開啟此功能),預設為 false;
  • send-machine : 定義當前服務告警是否傳送(當時為了解決測試環境開啟告警執行緒,但是最後告警不通知,此配置後續會逐步去除,建議alarm-machine開啟為true的時候,這個同步為true)

storage節點: 定義資料儲存配置資訊

  • local-report-storage-time : 定義本地報告存放時長,單位為(天)
  • local-logivew-storage-time : 定義本地日誌存放時長,單位為(天)
  • local-base-dir : 定義本地資料儲存目錄
  • hdfs : 定義HDFS配置資訊,便於直接登入系統
  • server-uri : 定義HDFS服務地址
  • console : 定義服務控制檯資訊
  • remote-servers : 定義HTTP服務列表,(遠端監聽端同步更新服務端資訊即取此值)
  • ldap : 定義LDAP配置資訊(這個可以忽略)
  • ldapUrl : 定義LDAP服務地址(這個可以忽略)

重新啟動Tomcat。

四、驗證

訪問http://192.168.1.111:8080/cat/r,點選“State”,可以看到“CAT服務端正常”和CAT一些基本狀態,如下圖:

點選“Transaction”,CAT自身的監控資訊,如下圖:

相關推薦

分散式監控CAT服務本地部署

一、CAT簡介 CAT(Central Application Tracking),是美團點評基於 Java 開發的一套開源的分散式實時監控系統。美團點評基礎架構部希望在基礎儲存、高效能通訊、大規模線上訪問、服務治理、實時監控、容器化及叢集智慧排程等領域提供業界領先的、統一的解決方案,CAT 目前在美團

深入詳解美團點評CAT跨語言服務監控(二) CAT服務初始化

Cat模組 Cat-client : cat客戶端,編譯後生成 cat-client-2.0.0.jar ,使用者可以通過它來向cat-home上報統一格式的日誌資訊,可以整合到 mybatis、spring、微服務 dubbo 的監控等等流行框架。  C

Zabbix 3.4 服務安裝部署

www. img setup ide 16px 導入 圖片 position reat 關於zabbix的安裝部署官方也提供了詳細的安裝文檔,鏈接如下: https://www.zabbix.com/download 選擇zabbix的版本,服務器平臺及使用的數據庫

java服務程式部署伺服器以及壓力測試過程

這段時間負責公司的服務端Java程式開發,做了一個遊戲的登入、註冊、支付、token驗證以及相關統計介面的服務端程式。 考慮到遊戲中如果是多使用者的情況下登入註冊介面在開服的時候會產生很大的併發,所以再上線之前做了一些壓力測試。 伺服器配置:亞馬遜雲伺服器8核心、15G記憶體、200G硬碟、

基於supersocket、C#對JT808協議進行解析構建gps監控平臺服務

       GPS監控平臺、車聯網、物聯網系統中GPRS網路資料的併發通訊和處理解析,主要功能有socket的UDP和TCP鏈路建立和維持,網路資料協議包接收與解析,分發上傳到其他業務規則伺服器,在物

cat服務配置

1.相關的參考文件 2.服務端下載和配置 執行環境及開發工具如下: Jdk8 ,tomcat8,windows10,itellij idea,maven3.3.9 ,mysql5.5 1.下載原始碼到本地下載地址:https://github.com/dian

深度剖析開源分散式監控CAT

CAT(Central Application Tracking)是一個實時和接近全量的監控系統,它側重於對Java應用的監控,基本接入了美團上海側所有核心應用。目前在中介軟體(MVC、RPC、資料庫、快取等)框架中得到廣泛應用,為美團各業務線提供系統的效能指標、健康狀況、監

你需要精通一種監控-prometheus服務相關內容

[root@aliyun-hk-yabo-prod-jiranew prometheus210]# ll total 117924 drwxr-xr-x 2 3434 3434 4096 May 25 21:54 console_libraries drwxr-xr-x 2 3434 3

穩定性 耗時 監控原因分析-- dubbo rpc 框架 的線程池,io 連接模型. 客戶,服務

情況 現在 src tcp協議 時間 .cn 關系 1.0 繼續 上次 提到的Nagle算法特性有可能是dubbo調用”網絡耗時高“的始作俑者,後來又仔細看了下dubbo的代碼,發現dubbo在consumer端已經將tcp設置成非延遲(即關閉Nag

zabbix服務監控搭建(一)

zabbix第1章 環境搭建[[email protected] zabbix]# uname -mx86_64[[email protected] zabbix]# uname -r2.6.32-642.el6.x86_64[[email protected] zabbix]#

統一用戶登錄管理認證LDAP 服務部署

ldap 統一賬戶 管理 網上找了好多關於LDAP統一賬戶管理的文件,好多都是粘貼復制,能用得上的少之又少,正好最近又用到這個,於是著手看了郭老師的視頻,順便把自己學習的過程記錄下來,供大家學習參考。1、實驗環境:[root@localhost ~]# cat /etc/redhat-rel

Java 服務監控方案(四. Java 篇)

競爭 get @override ida area json 成本 nds 在線 http://jerrypeng.me/2014/08/08/server-side-java-monitoring-java/ 這個漫長的系列文章今天要迎來最後一篇了,也是真正與 Java

Nuxt.js服務渲染實踐,從開發到部署

atd 格式 驗證 for replace 註冊 ear coo java 感悟 經過幾個周六周日的嘗試,終於解決了服務端渲染中的常見問題,也成功說服了公司新項目采用前後端分離的解決方案,當SEO不在是問題的時候,或許才是我們搞前端的真正的春天,其中也遇到了一些小坑,Nux

zabbix系列之服務的安裝部署(一)

zabbix zabbix_server zabbix1、zabbix的定義zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。zabbix

nagios 服務與客戶監控安裝與詳細配置,各配置文件詳解

this sql 引入 apache2 cpu load fine 宕機 pri require nagios 安裝與部署—————— 1、安裝前準備(1)創建nagios用戶和用戶組 [root@localhost ~]#groupadd nagios

Https系列之二:https的SSL證書在服務部署,基於tomcat,spring boot

onf 基於 分享 height 轉化 自簽名 size class ont 一:本文的主要內容介紹 CA證書的下載及相應文件的介紹 CA證書在tomcat的部署 CA證書在spring boot的部署 自簽名證書的部署 二:一些內容的回顧 在Https系列之一中已介

CentOS 7 部署inotify實時監控(NFS服務器上部署,rsync服務器測試)

楓雨1.簡介1.1inotify 一個 Linux 內核特性,它監控文件系統,並且及時向專門的應用程序發出相關的事件警告,比如刪除、讀、寫和卸載操作等。2.環境準備[root@nfs01 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (C

zabbix服務客戶部署

html finish 綠色 new 語言 柔軟 重新登錄 execution character zabbix是一個基於WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。 zabbix由zabbix server與可選組件zabbix ag

jenkins+gitlab自動化編譯部署方案探索及服務編譯webpack實戰

width 代碼量 條件 correct parameter 錯誤 req 格式 提前 一. 背景 之前我們的開發流程為在本地進行webpack打包編譯,然後svn提交源代碼和編譯後的代碼。同時每次提交前也會從svn更新源代碼和編譯後的代碼。這樣做有幾個缺點: 1. s

SpringCloud系列四:Eureka 服務發現框架(定義 Eureka 服務、Eureka 服務信息、Eureka 發現管理、Eureka 安全配置、Eureka-HA(高可用) 機制、Eureka 服務打包部署

pac elf figure 傳遞 uri rect body 情況 服務組 1、概念:Eureka 服務發現框架 2、具體內容 對於服務發現框架可以簡單的理解為服務的註冊以及使用操作步驟,例如:在 ZooKeeper 組件,這個組件裏面已經明確的描述了一個服務的註冊以及發