? ? ? ?隨著業(yè)務(wù)系統(tǒng)越來越多飞涂,系統(tǒng)化的監(jiān)控需求就來了渣窜。前天看了一下graphite,感覺整體架構(gòu)還是不錯(cuò)的课锌。廢話不多講,如下圖:
這里簡單總結(jié)一下各個(gè)組件的作用:
?carbon:
負(fù)責(zé)后端數(shù)據(jù)采集,可以通過以下客戶端來采集數(shù)據(jù)
客戶端應(yīng)用有多個(gè)方式來發(fā)布度量值:
使用一個(gè)純文本協(xié)議工具比如 netcat (nc) 命令
使用 pickle 協(xié)議
使用高級消息隊(duì)列協(xié)議(AMQP)
使用 lib 包比如 Dropwizard metrics library(http://metrics.dropwizard.io/3.2.2/getting-started.html)
?whisper:
結(jié)構(gòu)化的文件存儲(chǔ)祈秕,主要用來存儲(chǔ)時(shí)間序列數(shù)據(jù)的數(shù)據(jù)庫包渺贤,它被應(yīng)用通過使用 create, update请毛, 和 fetch 操作來檢索以及操作
?graphite-web:
官方的圖表展示(比較丑陋)
下面志鞍,我們來介紹一下安裝
因?yàn)間raphite是用python來實(shí)現(xiàn)的,所以要驗(yàn)證一下python ?版本:python -v?
我的是2.7.12方仿,切記固棚,一定要安裝2.7系例的版本,我的服務(wù)器環(huán)境是Ubuntu 5.4.0-6ubuntu1~16.04.4.官方的文檔地址是:http://graphite.readthedocs.io/en/latest/overview.html
仙蚜,請大家一定耐著頭皮看一下此洲,英文不好,查詞典也要弄懂呜师。我是使用pip的方式安裝的,下面是過程
1 pip安裝(安裝工具)
下載https://bootstrap.pypa.io/get-pip.py艳丛,執(zhí)行python get-pip.py
2 pip安裝好了匣掸,就可以進(jìn)入正題,分別安裝三個(gè)組件
export PYTHONPATH="/opt/graphite/lib/:/opt/graphite/webapp/"
pip install --no-binary=:all: https://github.com/graphite-project/whisper/tarball/master
pip install --no-binary=:all: https://github.com/graphite-project/carbon/tarball/master
pip install --no-binary=:all: https://github.com/graphite-project/graphite-web/tarball/master
安裝過程提示libffi未安裝氮双,然后手動(dòng)下載安裝
wget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz
下載之后解壓libffi之后碰酝,
./configure或者./config
make
make install(有可能還會(huì)報(bào)錯(cuò),可以試著執(zhí)行下面的命令)
sudo apt-get install libffi-dev
提示安裝成功4鞑睢(以上安裝基本是傻瓜式送爸,重點(diǎn)是配置)
3 數(shù)據(jù)庫初始化
PYTHONPATH=/opt/graphite/webapp django-admin.py migrate --settings=graphite.settings
另外,當(dāng)graphite-web安裝好,可以使用graphite-manage createsuperuser來創(chuàng)建超級用戶
4 配置文件初始化:
因?yàn)槭侨齻€(gè)組件袭厂,分別說明一下
carbon的配置文件是在/user/local/conf下面
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp aggregation-rules.conf.example aggregation-rules.conf
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp blacklist.conf.example blacklist.conf
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp carbon.amqp.conf.example carbon.amqp.conf
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp carbon.conf.example carbon.conf
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp relay-rules.conf.example relay-rules.conf
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp rewrite-rules.conf.example rewrite-rules.conf
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp storage-aggregation.conf.example storage-aggregation.conf
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp storage-schemas.conf.example storage-schemas.conf
root@iZbp10upl89i15wfkj8luzZ:/usr/local/conf# cp whitelist.conf.example whitelist.conf
graphite-web的配置:
daashboard.conf:這個(gè)主是展示頁面的UI配置墨吓,基本不用改。
local_settings.py:修改時(shí)區(qū)纹磺,whisper的數(shù)據(jù)存儲(chǔ)地址(這個(gè)地方的坑比較深帖烘,默認(rèn)情況下,不指定橄杨,是讀的/opt/graphite/storage/下面的)秘症,實(shí)際上carbon啟動(dòng)之后,數(shù)據(jù)是在
不然式矫,你的carbon把數(shù)據(jù)采集到了乡摹,但在graphite-web那邊就一直不顯示。
5 服務(wù)啟動(dòng)
carbon:主要是三個(gè)python后臺進(jìn)程的啟動(dòng)采转,官方說明:http://graphite.readthedocs.io/en/latest/carbon-daemons.html
graphite-web:圖標(biāo)展示只需要啟 ?動(dòng)兩個(gè)
最后一個(gè)腳本啟動(dòng)命令:
PYTHONPATH=`pwd`/storage/whisper ./bin/run-graphite-devel-server.py --port=8085 --libs=`pwd`/webapp /opt/graphite 1>/opt/graphite/storage/log/webapp/process.log 2>&1 &
6 客戶端數(shù)據(jù)采集:使用dropwizard metric來構(gòu)建指標(biāo)數(shù)據(jù)聪廉,我這里主要是數(shù)據(jù)庫相關(guān)參數(shù)
采集源接入:
數(shù)據(jù)上報(bào)方式:
7 效果如圖:
接下來,考慮使用grafana來做展現(xiàn)故慈。
參考地址:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-graphite-on-an-ubuntu-14-04-server
http://graphite.readthedocs.io/en/latest/overview.html
http://www.infoq.com/cn/articles/graphite-intro