摘要:為了發(fā)布以上列出的示例數(shù)據(jù)點(diǎn),運(yùn)行以下命令日志文件將包含關(guān)于新的被接收到的度量值的信息,信息被存儲(chǔ)在與交互來(lái)存儲(chǔ)時(shí)間序列數(shù)據(jù)到文件系統(tǒng)。
標(biāo)簽(空格分隔): Graphite Carbon Whisper 監(jiān)控
注:該系列文章絕對(duì)是學(xué)習(xí) Graphite 的好文章,是我見(jiàn)過(guò)的將的最全面,最清晰,最簡(jiǎn)單明了的系列文章。我會(huì)把該系列的所有文章全部翻譯完成,但是還是推薦各位讀讀原文。
在 Graphite 系列博客中,我將提供一個(gè)指南,以幫助使用 Graphite 技術(shù)棧完成搭建一個(gè)監(jiān)控和報(bào)警系統(tǒng)的所有步驟。聲明:我不是一個(gè)專(zhuān)家,我僅僅是通過(guò)提供更詳細(xì)的文檔幫助 Graphite 社區(qū)發(fā)展。如果出現(xiàn)一些錯(cuò)誤,請(qǐng)?jiān)谖恼孪旅嬖u(píng)論或者是給我發(fā)送一封郵件到 [email protected]。
Graphite 是由多個(gè)后端和前端組件組合而成。后端組件被用于存儲(chǔ)數(shù)值的時(shí)間序列數(shù)據(jù)。前端組件被用于檢索度量數(shù)據(jù)和可選的圖像渲染。在這篇博客文章中,我將重點(diǎn)介紹后端組件:Carbon 和 Whisper。
安裝 Carbon度量指標(biāo)可以被發(fā)布到一個(gè)負(fù)載均衡器或者是直接到一個(gè) Carbon 進(jìn)程。Carbon 進(jìn)程與 Whisper 數(shù)據(jù)庫(kù)包交互來(lái)存儲(chǔ)時(shí)間序列數(shù)據(jù)到文件系統(tǒng)。
Carbon 是一個(gè) daemon,其使用一個(gè)名為 Twisted 的事件驅(qū)動(dòng)網(wǎng)絡(luò)引擎來(lái)監(jiān)聽(tīng)時(shí)間序列數(shù)據(jù)。Twisted 框架支持 Carbon 進(jìn)程以較低的開(kāi)銷(xiāo)處理大量的客戶(hù)端和處理大量的流量。
Carbon Github 項(xiàng)目:點(diǎn)擊這里
為了安裝 Carbon,運(yùn)行以下命令(假設(shè)是 RHEL 操作系統(tǒng)):
# sudo yum groupinstall "Development Tools" # sudo yum install python-devel # sudo yum install git # sudo easy_install pip # sudo pip install twisted # cd /tmp # git clone https://github.com/graphite-project/carbon.git # cd /tmp/carbon # sudo python setup.py install
/opt/graphite 現(xiàn)在應(yīng)該有 carbon 的 lib 包和配置文件:
# ls -l /opt/graphite total 16 drwxr-xr-x. 2 root root 4096 May 18 23:56 bin drwxr-xr-x. 2 root root 4096 May 18 23:56 conf drwxr-xr-x. 4 root root 4096 May 18 23:56 lib drwxr-xr-x. 6 root root 4096 May 18 23:56 storage安裝 Whisper
Whisper 是一個(gè)用于存儲(chǔ)時(shí)間序列數(shù)據(jù)的數(shù)據(jù)庫(kù)包,它被應(yīng)用通過(guò)使用 create, update, 和 fetch 操作來(lái)檢索以及操作。
Whisper Github 項(xiàng)目:點(diǎn)擊這里
為了安裝 Whisper,運(yùn)行以下命令:
# cd /tmp # git clone https://github.com/graphite-project/whisper.git # cd /tmp/whisper # sudo python setup.py install
Whisper 腳本現(xiàn)在應(yīng)該在應(yīng)有的位置上:
# ls -l /usr/bin/whisper* -rwxr-xr-x. 1 root root 1711 May 19 00:00 /usr/bin/whisper-create.py -rwxr-xr-x. 1 root root 2902 May 19 00:00 /usr/bin/whisper-dump.py -rwxr-xr-x. 1 root root 1779 May 19 00:00 /usr/bin/whisper-fetch.py -rwxr-xr-x. 1 root root 1121 May 19 00:00 /usr/bin/whisper-info.py -rwxr-xr-x. 1 root root 674 May 19 00:00 /usr/bin/whisper-merge.py -rwxr-xr-x. 1 root root 5982 May 19 00:00 /usr/bin/whisper-resize.py -rwxr-xr-x. 1 root root 1060 May 19 00:00 /usr/bin/whisper-set-aggregation-method.py -rwxr-xr-x. 1 root root 969 May 19 00:00 /usr/bin/whisper-update.py啟動(dòng)一個(gè) Carbon 進(jìn)程
Carbon 安裝自帶了默認(rèn)的端口和很多其他的配置文件??截愐呀?jīng)存在的示例文件。
# cd /opt/graphite/conf # cp aggregation-rules.conf.example aggregation-rules.conf # cp blacklist.conf.example blacklist.conf # cp carbon.conf.example carbon.conf # cp carbon.amqp.conf.example carbon.amqp.conf # cp relay-rules.conf.example relay-rules.conf # cp rewrite-rules.conf.example rewrite-rules.conf # cp storage-schemas.conf.example storage-schemas.conf # cp storage-aggregation.conf.example storage-aggregation.conf # cp whitelist.conf.example whitelist.conf # vi carbon.conf
在 cache 段下面,line receiver port 已經(jīng)被指定:
[cache] LINE_RECEIVER_INTERFACE = 0.0.0.0 LINE_RECEIVER_PORT = 2003
通過(guò)運(yùn)行以下命令啟動(dòng)一個(gè) carbon-cache 進(jìn)程:
# cd /opt/graphite/bin # ./carbon-cache.py start Starting carbon-cache (instance a)
該進(jìn)程現(xiàn)在應(yīng)該監(jiān)聽(tīng)在 2003 端口上:
# ps -efla | grep carbon-cache 1 S root 2674 1 0 80 0 - 75916 ep_pol 00:18 ? 00:00:03 /usr/bin/python ./carbon-cache.py start # netstat -nap | grep 2003 tcp 0 0 0.0.0.0:2003 0.0.0.0:* LISTEN 2674/python發(fā)布度量指標(biāo)
一個(gè)度量值是任何可以隨時(shí)間變化的可測(cè)量的值:
每秒的請(qǐng)求數(shù)
進(jìn)程請(qǐng)求時(shí)間
CPU 利用率
一個(gè)數(shù)據(jù)點(diǎn)是一個(gè)元組包含:
一個(gè)度量值的名字
一個(gè)可度量的值
在一個(gè)指定時(shí)間點(diǎn)(通常是一個(gè) timestamp)
客戶(hù)端應(yīng)用通過(guò)發(fā)送數(shù)據(jù)點(diǎn)到一個(gè) Carbon 進(jìn)程來(lái)發(fā)布度量值。這個(gè)應(yīng)用在 Carbon 進(jìn)程的端口上建立一個(gè) TCP 連接并以一個(gè)簡(jiǎn)單的純文本格式發(fā)送數(shù)據(jù)點(diǎn)。在我們的例子中,端口是 2003。TCP 連接或許依舊是打開(kāi)并根據(jù)需要重復(fù)多次使用。Carbon 進(jìn)程監(jiān)聽(tīng)進(jìn)入的數(shù)據(jù)但是不給客戶(hù)端發(fā)送任何響應(yīng)。
數(shù)據(jù)點(diǎn)格式被定義成:
每個(gè)數(shù)據(jù)點(diǎn)是一個(gè)單行文本
在位置 0 是一個(gè)帶點(diǎn)的度量名稱(chēng)
在位置 1 是一個(gè)值
在位置 2 是一個(gè) Unix Epoch 的 timestamp
以空格作為位置的分隔符
比如,這里有一些有效的數(shù)據(jù)點(diǎn):
carbon.agents.graphite-tutorial.metricsReceived 28198 1400509108
carbon.agents.graphite-tutorial.creates 8 1400509110
PRODUCTION.host.graphite-tutorial.responseTime.p95 0.10 1400509112
客戶(hù)端應(yīng)用有多個(gè)方式來(lái)發(fā)布度量值:
使用一個(gè)純文本協(xié)議工具比如 netcat (nc) 命令
使用 pickle 協(xié)議
使用高級(jí)消息隊(duì)列協(xié)議(AMQP)
使用 lib 包比如 Coda Hale metrics library
為了簡(jiǎn)單起見(jiàn),在這個(gè)教程中我將通過(guò) netcat 命令使用純文本協(xié)議。為了發(fā)布以上列出的示例數(shù)據(jù)點(diǎn),運(yùn)行以下命令:
sudo yum install nc echo "carbon.agents.graphite-tutorial.metricsReceived 28198 `date +%s`" | nc localhost 2003 echo "carbon.agents.graphite-tutorial.creates 8 `date +%s`" | nc localhost 2003 echo "PRODUCTION.host.graphite-tutorial.responseTime.p95 0.10 `date +%s`" | nc localhost 2003
carbon-cache 日志文件將包含關(guān)于新的被接收到的度量值的信息,信息被存儲(chǔ)在:
# tail -f /opt/graphite/storage/log/carbon-cache/carbon-cache-a/creates.log 19/05/2014 10:42:44 :: creating database file /opt/graphite/storage/whisper/carbon/agents/graphite-tutorial/metricsReceived.wsp (archive=[(60, 129600)] xff=0.5 agg=average) 19/05/2014 10:42:53 :: creating database file /opt/graphite/storage/whisper/carbon/agents/graphite-tutorial/creates.wsp (archive=[(60, 129600)] xff=0.5 agg=average) 19/05/2014 10:42:57 :: creating database file /opt/graphite/storage/whisper/PRODUCTION/host/graphite-tutorial/responseTime/p95.wsp (archive=[(60, 1440)] xff=0.5 agg=average)
Carbon 與 Whisper 交互來(lái)存儲(chǔ)時(shí)間序列數(shù)據(jù)到文件系統(tǒng)。操作文件系統(tǒng)來(lái)確保數(shù)據(jù)文件已經(jīng)被創(chuàng)建:
# ls -l /opt/graphite/storage/whisper/carbon/agents/graphite-tutorial/ total 3040 -rw-r--r--. 1 root root 1555228 May 19 10:42 creates.wsp -rw-r--r--. 1 root root 1555228 May 19 10:42 metricsReceived.wsp # ls -l /opt/graphite/storage/whisper/PRODUCTION/host/graphite-tutorial/responseTime/ total 20 -rw-r--r--. 1 root root 17308 May 19 10:42 p95.wsp
最后,你可以檢索關(guān)于 Whisper 文件的元數(shù)據(jù)信息,使用 whisper-info 腳本:
# whisper-info.py /opt/graphite/storage/whisper/PRODUCTION/host/graphite-tutorial/responseTime/p95.wsp maxRetention: 86400 xFilesFactor: 0.5 aggregationMethod: average fileSize: 17308 Archive 0 retention: 86400 secondsPerPoint: 60 points: 1440 size: 17280 offset: 28
whisper-dump 腳本是一個(gè)更完整的腳本,其可以輸出所有存儲(chǔ)保留時(shí)期的原始數(shù)據(jù)以及關(guān)于 Whisper 文件的元數(shù)據(jù)信息:
# whisper-dump.py /opt/graphite/storage/whisper/PRODUCTION/host/graphite-tutorial/responseTime/p95.wsp Meta data: aggregation method: average max retention: 86400 xFilesFactor: 0.5 Archive 0 info: offset: 28 seconds per point: 60 points: 1440 retention: 86400 size: 17280 Archive 0 data: 0: 1400609220, 0.1000000000000000055511151231257827 1: 0, 0 2: 0, 0 3: 0, 0 4: 0, 0 5: 0, 0 ... 1437: 0, 0 1438: 0, 0 1439: 0, 0
弄明白 Aggregation 方法,最大的保留期, xFilesFactor 和 Whisper 文件的所有其他屬性是非常重要的。不要擔(dān)心,就算你在這點(diǎn)上沒(méi)有學(xué)習(xí)到,我將會(huì)在接下來(lái)的博客文章會(huì)更詳細(xì)地講訴這些。
Graphite 系列 :
Provision Hardware
Carbon & Whisper
Whisper Storage Schemas & Aggregations
Graphite Webapp
Stress Testing Carbon Caches
Carbon Aggregators
本文的作者是 franklinangulo,本文的原文是 GRAPHITE SERIES #2: CARBON & WHISPER
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37505.html
摘要:在上安裝標(biāo)簽空格分隔監(jiān)控首先說(shuō)一句,在上安裝真的很坑爹。。?;蛉绻厦孢@個(gè)方法無(wú)法安裝那就用源碼安裝的方法。安裝開(kāi)始好幾次就死在安裝這個(gè)上面,版本的通過(guò)命令安裝的不行,對(duì)應(yīng)版本的包的名字叫做。 在 CentOS 5.8 上安裝 Graphite 標(biāo)簽(空格分隔): 監(jiān)控 monitor CentOS 5.8 Graphite 首先說(shuō)一句,在 CentOS 5.8 上安裝真的很坑爹...
摘要:眾所周知,負(fù)責(zé)收集并聚合測(cè)量值。每個(gè)都有一個(gè),該值的解釋方式依賴(lài)于。計(jì)時(shí)器的一大好處在于,你可以得到平均值總值計(jì)數(shù)值和上下限值。給傳一個(gè)數(shù)字,它會(huì)不經(jīng)處理地將該數(shù)字傳到后端。由三部分組成監(jiān)聽(tīng)時(shí)間序列的數(shù)據(jù)的后臺(tái)程序。 眾所周知,StatsD 負(fù)責(zé)收集并聚合測(cè)量值。之后,它會(huì)將數(shù)據(jù)傳給 Graphite,后者以時(shí)間序列為依據(jù)存儲(chǔ)數(shù)據(jù),并繪制圖表。但是,我們不知道,基于 http 訪(fǎng)問(wèn)的圖...
摘要:由于公司沒(méi)有運(yùn)維又需要監(jiān)控服務(wù)器的一些數(shù)據(jù)信息想盡快的啟動(dòng)一個(gè)數(shù)值監(jiān)控系統(tǒng)技術(shù)評(píng)估了下打算的方式來(lái)建設(shè)是一個(gè)時(shí)間數(shù)列數(shù)據(jù)庫(kù)并且自帶一些簡(jiǎn)單圖形展示功能雖然展示方面不是很完美但是在收集時(shí)間數(shù)據(jù)上非常的方便和簡(jiǎn)單根據(jù)官網(wǎng)的例子只需要一個(gè)連接就能 由于公司沒(méi)有運(yùn)維, 又需要監(jiān)控服務(wù)器的一些數(shù)據(jù)信息, 想盡快的啟動(dòng)一個(gè)數(shù)值監(jiān)控系統(tǒng). 技術(shù)評(píng)估了下打算 graphite + grafana 的...
摘要:的展示非常炫酷,絕對(duì)是運(yùn)維提升逼格的一大利器。另外的可視化功能比強(qiáng)得多,而且以上版本將集成報(bào)警功能。它由寫(xiě)成,著力于高性能地查詢(xún)與存儲(chǔ)時(shí)序型數(shù)據(jù)。被廣泛應(yīng)用于存儲(chǔ)系統(tǒng)的監(jiān)控?cái)?shù)據(jù),行業(yè)的實(shí)時(shí)數(shù)據(jù)等場(chǎng)景。 原有監(jiān)控系統(tǒng) showImg(https://segmentfault.com/img/remote/1460000011082384); 整個(gè)系統(tǒng)以 Graphite (carbon ...
摘要:正式上線(xiàn)已經(jīng)大約兩年,基本已經(jīng)成熟,為宜信大數(shù)據(jù)創(chuàng)新中心各個(gè)團(tuán)隊(duì)提供了統(tǒng)一的測(cè)試和生產(chǎn)環(huán)境,簡(jiǎn)化了服務(wù)的部署與上線(xiàn)流程,也降低了運(yùn)維人員對(duì)系統(tǒng)管理的復(fù)雜度。地址白皮書(shū)原文發(fā)布于高可用架構(gòu)作者宜信大數(shù)據(jù)創(chuàng)新中心團(tuán)隊(duì)王超一 一、基于Docker的PaaS平臺(tái)LAIN 在金融的場(chǎng)景下,LAIN 是為解放各個(gè)團(tuán)隊(duì)和業(yè)務(wù)線(xiàn)的生產(chǎn)力而設(shè)計(jì)的一個(gè)云平臺(tái)。LAIN 正式上線(xiàn)已經(jīng)大約兩年,基本已經(jīng)成熟,...
閱讀 2847·2023-04-25 20:02
閱讀 1447·2021-11-11 16:55
閱讀 634·2021-09-26 09:46
閱讀 6226·2021-09-22 15:55
閱讀 1831·2021-08-09 13:41
閱讀 1585·2019-08-30 15:52
閱讀 2387·2019-08-30 14:13
閱讀 3307·2019-08-26 13:48