1. 程式人生 > >大眾點評cat接入記錄

大眾點評cat接入記錄

背景

因為公司api介面時不時的被人攻擊,頻繁的撞庫,所以需要一套完整的監控體系來管理所有的介面。組內其他人正在快速迭代一個初期的監控報警體系,而我閒著沒事就順便看了下大眾點評的cat,剛好以前的同事他們公司的目前使用的架構裡面就用到了cat,大大加深了我想研究的心。cat能查到的文件太少了,可能是官網提供的文件足夠使用了,但是對於小白使用者來說,官網的文件還是需要一些實際程式碼的理解,不過等細入之後才發現cat是多麼靈活,算是大眾點評的良心之作啊。

搭建、文件

cat github地址:https://github.com/dianping/cat
相關文件:搭建文件
怎麼搭建就不細說了,這裡記錄下大家cat-home 需要注意的地方

  • data/appdatas/cat 目錄是存放cat-home 配置檔案的相對地址,如果是window就是相對於專案部屬所在的磁碟
  • data/applogs/cat 目錄是存放cat-home 的log日誌

cat有個很重要的概念,就是domain,一個domain可以對應成一個project,比如cat-home打包成war
也是一個domain, cat-home預設是服務端 也是客戶端,也就是說cat-home自身也會被監控,這就是
為什麼cat-home /META-INF/cat目錄裡面會有clinet.xml

  • cat-home 也就是cat伺服器端是支援叢集的,如果有多個服務端那麼在client.xml就得配置多個
    服務端的資訊
<config mode="client">
    <servers>
       <server ip="10.1.1.1" port="2280" http-port="8080"/>
       <server ip="10.1.1.2" port="2280" http-port="8080"/>
       <server ip="10.1.1.3" port="2280" http-port="8080"/>
    </servers>
</config>

-cat服務端的server.xml,如果是叢集remote-servers 就配置多個,如果用到了hdfs 就配置,需要注意的就是local-mode=”false” 如果配置成true 就不會使用資料庫了

<config local-mode="false" hdfs-machine="false" job-machine="false" alert-machine="false">
    <storage  local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7">
        <hdfs id="logview" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="logview"/>
        <hdfs id="dump" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="dump"/>
        <hdfs id="remote" max-size="128M" server-uri="hdfs://10.1.77.86/user/cat" base-dir="remote"/>
    </storage>
    <console default-domain="Cat" show-cat-domain="true">
        <remote-servers>10.1.1.1:8080,10.1.1.2:8080,10.1.1.3:8080</remote-servers>      
    </console>
</config>
  • 客戶端路由修改下,叢集和單個都需要修改成對於的ip

這裡寫圖片描述

  • 客戶端整合其實文件已經說的很詳細了,基本配置下就可以。

使用

  • 如果客戶端已經接入了,比如名字叫domain=mobileapi,首先要新增專案,然後專案組分配
    這裡寫圖片描述

  • 告警的介面需要我們自己去實現

-我們可以對埋點進行監控,什麼是埋點,其實就是這個

  Cat.logMetricForCount(key

我們可以對埋的點進行指標監控,比如這個方法在一定時間內被執行多少次就直接報警啊
這裡寫圖片描述

  • 報警級別和聯絡人設定 和報警介面
    這裡寫圖片描述
    這裡寫圖片描述
    這裡寫圖片描述
    報警介面程式碼 我們可以重寫

監控效果

client端接入程式碼