91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Open-falcon原理介紹

發布時間:2020-03-31 01:27:40 來源:網絡 閱讀:1590 作者:賽里 欄目:系統運維

open-falcon是小米開源的監控工具。open-falcon有三種安裝方式,一種是單機安裝(分后端和前端安裝,建議各一臺服務器)、一種是Docker安裝、最后一種是在多臺機器上分布式安裝。


重點:本案介紹第一種,單機安裝(其實是分兩臺服務器,一臺安裝后端服務、一臺是安裝前端服務)。


分布式安裝也很簡單,就是把open-falcon二進制包git下來,每臺服務器只留需要的模塊文件夾和open-falcon執行腳本,然后更改模塊文件夾下配置文件,最后啟動即可。生成環境環境一般建議分布式部署,參考鏈接:https://book.open-falcon.org/zh_0_2/distributed_install/


open-falcon監控一般是用各種插件。




架構圖:

Open-falcon原理介紹Open-falcon原理介紹

open-falcon官網架構圖


Open-falcon原理介紹


Open-falcon原理介紹

互聯網上圖


組件描述表:

組件名稱

用途

服務端口

備注

Agent

部署在需要監控的服務器上

http: 1988

http://192.168.153.134:1988/

Transfer

數據接收端,轉發數據到后端的Graph和Judge

http: 6060

rpc: 8433

socket: 4444


Graph

操作rrd文件存儲監控數據

http: 6071

rpc:6070


Query

查詢各個Graph數據,提供統一http查詢接口

http: 9966


Dashboard

查詢監控歷史趨勢圖的web

http: 8081

需要python環境,需要連接數據庫dashborad實例、graph組件

Task

負載一些定時任務,索引全量更新、垃圾索引清理、自身組件監控等

http: 8082

需要連接數據庫graph實例

Aggregator

集群聚合模塊

http: 6055


Alarm

告警

http: 9912


Api

API

http: 8080


Gateway

Gateway

http: 16060


Hbs

心跳服務器

6030


Judge

告警判斷

http:?6081

rpc: 6080


Nodata

告警異常處理

http:?6090


Mysql

數據庫

3306


Redis

緩存服務器

6379




工作原理:


Falcon-agent(客戶端):

每臺服務器,都有安裝falcon-agent,falcon-agent是一個golang開發的daemon程序,用于自發現的采集單機的各種數據和指標,這些指標包括不限于以下幾個方面,共計200多項指標。

????CPU相關

????磁盤相關

????IO

????Load

????內存相關

????網絡相關

????端口存活、進程存活

????ntp offset(插件)

????某個進程資源消耗(插件)

????netstat、ss 等相關統計項采集

????機器內核配置參數

只要安裝了falcon-agent的機器,就會自動開始采集各項指標,主動上報,不需要用戶在server做任何配置(這和zabbix有很大的不同),這樣做的好處,就是用戶維護方便,覆蓋率高。當然這樣做也會server端造成較大的壓力,不過open-falcon的服務端組件單機性能足夠高,同時都可以水平擴展,所以自動多采集足夠多的數據,反而是一件好事情,對于SRE和DEV來講,事后追查問題,不再是難題。

另外,falcon-agent提供了一個proxy-gateway,用戶可以方便的通過http接口,push數據到本機的gateway,gateway會幫忙高效率的轉發到server端。

falcon-agent,可以在我們的github上找到 : https://github.com/open-falcon/falcon-plus


Transfer(傳輸者):

falcon-agent將數據上報給transfer,它們之間建立的長鏈接。


transfer,接收客戶端發送的數據,做一些數據規整,檢查之后,轉發到多個后端系統去處理。在轉發到每個后端業務系統的時候,transfer會根據一致性hash算法,進行數據分片,來達到后端業務系統的水平擴展。

transfer 提供jsonRpc接口和telnet接口兩種方式,transfer自身是無狀態的,掛掉一臺或者多臺不會有任何影響,同時transfer性能很高,每分鐘可以轉發超過500萬條數據。

transfer目前支持的業務后端,有三種,judge、graph、opentsdb。judge是我們開發的高性能告警判定組件,graph是我們開發的高性能數據存儲、歸檔、查詢組件,opentsdb是開源的時間序列數據存儲服務。可以通過transfer的配置文件來開啟。


transfer的數據來源,一般有三種:

????falcon-agent采集的基礎監控數據

????falcon-agent執行用戶自定義的插件返回的數據

????client library:線上的業務系統,都嵌入使用了統一的perfcounter.jar,對于業務系統中每個RPC接口的qps、latency都會主動采集并上報

說明:上面這三種數據,都會先發送給本機的proxy-gateway,再由gateway轉發給transfer。


Judge集群(告警判斷):

falcon-agent將數據上報給transfer后,transfer轉發給Judge集群,使用一致性hash做數據分片。一個實例只處理一部分數據。


Graph集群(數據存儲、規定、查詢接口):

falcon-agent將數據上報給transfer后,transfer轉發給Graph集群,使用一致性hash做數據分片。一個實例只處理一部分數據。rrdtool的數據歸檔方式存儲,同時提供RPC接口。


Alarm(告警):

Judge判斷后,放到redis隊列。alarm從redis隊列讀取報警事件做處理,該發短信發短信、該發郵件發郵件,該回調接口就回調。告警合并也在alarm里面做的,專門發送報警的sender模塊,告警合并依賴的links模塊。


Query:

因為Graph做過分片處理,query要采用和transfer一致的一致性hash數據分片。對外提供一個http接口。query是go寫的后端模塊。


Dashborad:

在dashborad里面查詢監控數據,是python做的web。


Portal:

portal是python做的web,配置監控策略,然后寫入數據庫。


Heartbeat server:

心跳服務器,falcon-agent每分鐘都會發送心跳給heartbeat server,上報自己的版本、hostname、ip等。從heartbeat拉取要執行的插件和特殊采集項等。這些信息需要heartbeat訪問 Portal的數據庫要獲取。Judge要做告警判斷,需要先從portal數據庫中讀取報警策略,但是Judge實例比較多,都去讀取數據庫會造成很大壓力,所以可以讓heartbeat成為db cache緩存,heartbeat從數據庫中讀取數據緩存到內存,Judge調用heartbeat的rpc接口,獲取報警策略。


數據存儲:

對于監控系統來講,歷史數據的存儲和高效率查詢,永遠是個很難的問題!

????數據量大:目前我們的監控系統,每個周期,大概有2000萬次數據上報(上報周期為1分鐘和5分鐘兩種,各占50%),一天24小時里,從來不會有業務低峰,不管是白天和黑夜,每個周期,總會有那么多的數據要更新。

????寫操作多:一般的業務系統,通常都是讀多寫少,可以方便的使用各種緩存技術,再者各類數據庫,對于查詢操作的處理效率遠遠高于寫操作。而監控系統恰恰相反,寫操作遠遠高于讀。每個周期幾千萬次的更新操作,對于常用數據庫(MySQL、postgresql、mongodb)都是無法完成的。

????高效率的查:我們說監控系統讀操作少,是說相對寫入來講。監控系統本身對于讀的要求很高,用戶經常會有查詢上百個meitric,在過去一天、一周、一月、一年的數據。如何在1秒內返回給用戶并繪圖,這是一個不小的挑戰。

open-falcon在這塊,投入了較大的精力。我們把數據按照用途分成兩類,一類是用來繪圖的,一類是用戶做數據挖掘的。

對于繪圖的數據來講,查詢要快是關鍵,同時不能丟失信息量。對于用戶要查詢100個metric,在過去一年里的數據時,數據量本身就在那里了,很難1秒之類能返回,另外就算返回了,前端也無法渲染這么多的數據,還得采樣,造成很多無謂的消耗和浪費。我們參考rrdtool的理念,在數據每次存入的時候,會自動進行采樣、歸檔。我們的歸檔策略如下,歷史數據保存5年。同時為了不丟失信息量,數據歸檔的時候,會按照平均值采樣、最大值采樣、最小值采樣存三份。

//?1分鐘一個點存?12小時
c.RRA("AVERAGE",?0.5,?1,?720)

//?5m一個點存2d
c.RRA("AVERAGE",?0.5,?5,?576)
c.RRA("MAX",?0.5,?5,?576)
c.RRA("MIN",?0.5,?5,?576)

//?20m一個點存7d
c.RRA("AVERAGE",?0.5,?20,?504)
c.RRA("MAX",?0.5,?20,?504)
c.RRA("MIN",?0.5,?20,?504)

//?3小時一個點存3個月
c.RRA("AVERAGE",?0.5,?180,?766)
c.RRA("MAX",?0.5,?180,?766)
c.RRA("MIN",?0.5,?180,?766)

//?1天一個點存1year
c.RRA("AVERAGE",?0.5,?720,?730)
c.RRA("MAX",?0.5,?720,?730)
c.RRA("MIN",?0.5,?720,?730)

對于原始數據,transfer會打一份到hbase,也可以直接使用opentsdb,transfer支持往opentsdb寫入數據。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蓬莱市| 长春市| 丽水市| 汶川县| 扶余县| 扎鲁特旗| 汉源县| 伊春市| 佛坪县| 大石桥市| 鹿邑县| 雷山县| 榕江县| 开平市| 荔波县| 舞阳县| 上饶县| 临汾市| 塔城市| 阳西县| 康定县| 亳州市| 朝阳区| 南平市| 斗六市| 濮阳县| 遵化市| 监利县| 杭锦后旗| 石渠县| 建平县| 怀宁县| 威远县| 保亭| 鸡泽县| 彰武县| 梨树县| 女性| 湘西| 子洲县| 云阳县|