1. 程式人生 > >graphite+grafana監控openstack和ceph

graphite+grafana監控openstack和ceph

openstack 監控

本文環境:CentOS 7.3.1611,openstack+ceph

架構圖如下,服務端部分可以分開也可以部署在同一臺主機上:

技術分享

一、添加epel源和base源,安裝carbon和whisper,whisper用於存儲監控的數據,類似rrd文件那樣固定大小:

yum install python-carbon python-whisper

編輯whisper存儲規則,以下是自己寫的規則:

vi /etc/carbon/storage-schemas.conf
[carbon]
pattern = ^carbon\.
retentions = 60:90d

[vms]
pattern = ^instances\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[cluster]
pattern = ^servers\..*\.CephCollector\.ceph\.mon\..*\.cluster\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[CephStats]
pattern = ^servers\..*\.CephStatsCollector\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[cpu]
pattern = ^servers\..*\.cpu\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[diskspace]
pattern = ^servers\..*\.diskspace\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[iostat]
pattern = ^servers\..*\.iostat\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[loadavg]
pattern = ^servers\..*\.loadavg\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[memory]
pattern = ^servers\..*\.memory\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[network]
pattern = ^servers\..*\.network\.
retentions = 60s:30d,1h:180d,1d:2y,30d:10y

[default_1min_for_1day]
pattern = .*
retentions = 60s:1d

註:監控字段可以在diamond的日誌(/var/log/diamond/archive.log)或者grafana查看。

60s:30d,1h:180d 就是30天內的數據保存間隔為60秒,一個月到半年的保存間隔為1小時,規則是按順序匹配,不是最長匹配,所以 default 規則一定要放最後,default設定為那麽小只是為了不存儲不需要的數據,diamond監控的字段太多,不需要全部存儲。

carbon配置:

vi /etc/carbon/carbon.conf

[cache]部分,MAX_UPDATES_PER_SECOND(每秒鐘最大更新條數)和MAX_CREATES_PER_MINUTE(每分鐘最大創建文件數,diamon客戶端首次推送數據的時候才會創建whisper數據文件)可能需要調整一下。

啟動carbon-cache:

systemctl start carbon-cache

二、客戶端安裝diamond

(1)每個被監控的客戶端都需要安裝agent程序

在python官網上有,附鏈接:https://pypi.python.org/pypi/diamond/4.0.515

解壓後 python setup.py install 即安裝完成。

(2)配置

cd /etc/diamond
cp diamond.conf.example diamond.conf
vi diamond.conf

# Graphite server host

host = 127.0.0.1 #填上carbon-cache服務器IP,本機的話可以不修改。

[[default]]

hostname = test-node1

# 60秒推送一次數據

interval = 60

(3)配置監控項,diamond可以監控的項目很多,包括ceph、libvirt、mysql、haproxy、nginx等等等等

diamond-setup

基本上一直按回車就可以,由於項目太多,用setup也是繁瑣,直接把需要監控的項目放到/etc/diamond/collectors/就可以,具體內容可以參照diamond-setup生成的配置文件。

(4)啟動

/etc/init.d/diamond start

至此,監控的服務端和客戶端已經部署好,接下來的是部署用於展示的web服務,可以使用 graphite-api + Grafana,也可以 graphite-web,graphite-web是基於django的,需要安裝的東西也是一大堆,而且用戶體驗遠遠不及Grafana這個專業展示軟件。

三、安裝 graphite-api

graphite-api的作用只是向grafana提供訪問whisper數據的接口。

(1)安裝

yum install graphite-api

(2)配置

graphite-api默認啟動 127.0.0.1:8888,故需要外部調用或者使用其他服務端口的話,修改/etc/sysconfig/graphite-api的GRAPHITE_API_ADDRESS=0.0.0.0或者GRAPHITE_API_PORT

配置文件 /etc/graphite-api.yaml 使用默認即可。

(3)啟動

systemctl start graphite-api

四、安裝grafana

grafana是個很流弊的畫圖軟件,支持很多種數據源,展示圖形也很多種。

官網下載地址:https://grafana.com/grafana/download

(1)yum本地安裝,自動安裝依賴包:

yum localinstall grafana-4.4.1-1.x86_64.rpm

(2)安裝mysql-server並創建數據庫:

由於我的grafana直接裝在openstack的控制節點上,已經安裝好了mysql-server,直接創建數據庫:

CREATE DATABASE grafana ;
GRANT ALL PRIVILEGES ON grafana.* TO ‘grafana‘@‘127.0.0.1‘ IDENTIFIED BY ‘grafana‘;
FLUSH PRIVILEGES;

mysql在這裏只是儲存grafana的用戶信息,dashboard信息等,不會保存監控的數據。

監控的數據是直接調用graphite-api接口讀取whisper數據文件。

(3)配置文件:/etc/grafana/grafana.ini

配置url、mysql連接信息,禁止檢查更新、自動發送"使用計數"給grafana,登錄界面不使用用戶註冊功能。

[server]
root_url = http://0.0.0.0:3000
[database]
type = mysql
host = 127.0.0.1:3306
name = grafana
user = grafana
password = grafana
[analytics]
reporting_enabled = false
check_for_updates = false
[security]
[snapshots]
external_enabled = false
[users]
allow_sign_up = false

(4)啟動 grafana :

/etc/init.d/grafana-server start

五、配置監控

(1)瀏覽器登錄 grafana,默認初始用戶名密碼是admin/admin,在grafana.ini可配置。

(2)添加數據源:Data Sources ->Add data sources,輸入自定義名稱,Type選擇【graphite】,url為graphite-api的地址和端口,默認本機8888端口即 【http://localhost:8888】,Access選擇【proxy】,其他不填,點擊保存並測試連接【Save&Test】,正常返回為綠色背景提示文字

"Success

Data source is working"

(3)至此,全部部署完成,直接在頁面上添加dashboard->添加panel->編輯panel即可。

附上監控圖兩張:

技術分享

技術分享


本文出自 “我的運維之路” 博客,請務必保留此出處http://ouziyou.blog.51cto.com/3008967/1977717

graphite+grafana監控openstack和ceph