儀表盤和圖形編輯器 Grafana

Grafana 詳細介紹

Grafana 是 Graphite 和 InfluxDB 儀表盤和圖形編輯器。Grafana 是開源的,功能齊全的度量儀表盤和圖形編輯器,支持 Graphite,InfluxDB 和 OpenTSDB

Grafana 主要特性:靈活豐富的圖形化選項;可以混合多種風格;支持白天和夜間模式;多個數據源;Graphite 和 InfluxDB 查詢編輯器等等。

Graphite 指標編輯器

  • Graphite 指標表達解析器

  • 功能齊全的查詢功能

  • 快速添加和編輯函數和參數

  • 模板化查詢

  • See it in action

圖形化

  • 快速渲染,甚至是較大的時間跨度

  • 點擊和拖拽縮放

  • 多個 Y 軸 

  • 條形,折線,點 

  • 智能 Y 軸格式化

  • 系列切換和顏色選擇 

  • Legend values 和格式化選項

  • 網格閾值,軸標籤

  • Annotations

儀表盤

  • 創建,編輯,保存和搜索儀表盤

  • 修改列寬和行高

  • 拖拽面板重新編排

  • 使用 InfluxDB 或者 Elasticsearch 作爲儀表盤存儲

  • 導入和導出儀表盤(JSON 文件)

  • 從 Graphite 導入儀表盤

  • 模板

  • Scripted dashboards

  • Dashboard playlists

  • 時間範圍控制

Grafana是什麼?一個類似Kibana的東西,也是對後端的數據進行實時展示,那麼Grafana和Kibana有什麼區別?在我看來區別不大,不過在大家的日常使用中Kibana是跟着Logstash、ElasticSearch等組件一起使用做日誌展示、索引、分析的,造成了一種假象就是Kibana就只有這種用法了,Kibana也可以接入其他數據源的,不過大家最長用的還是展示日誌,Grafana是什麼呢?該項目你可能沒聽過,也比較年輕,他一般是和一些時間序列數據庫進行配合來展示數據的,例如:Graphite、OpenTSDB、InfluxDB等。下面看看官方是怎麼解釋Grafana的:

  • grafana是用於可視化大型測量數據的開源程序,他提供了強大和優雅的方式去創建、共享、瀏覽數據。dashboard中顯示了你不同metric數據源中的數據。
  • grafana最常用於因特網基礎設施和應用分析,但在其他領域也有機會用到,比如:工業傳感器、家庭自動化、過程控制等等。
  • grafana有熱插拔控制面板和可擴展的數據源,目前已經支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。

下面我們就練練手,先安裝:

    grafana官方已經有打包好的deb和rpm包以及編譯好的二進制包,同時grafana還支持Mac OS X、windows等等,下載頁面在:download

    作爲第一次嘗試,我們選擇編譯好的二進制包:grafana-2.1.3.linux-x64.tar.gz,後面熟練後可選擇deb或者rpm。二進制包解壓後,進入其中的conf目錄,裏面有一個defaults.ini文件,在grafana的conf目錄下,把defaults.ini配置文件重命名爲custom.ini。進入grafana的bin目錄下,有一個grafana-server二進制文件,直接執行./grafana-server web即可啓動應用程序。更詳細的安裝在這裏:here

grafana和LDAP集成:

    可惜我們這公司竟沒有使用AD/LDAP的習慣,在這裏看過程:here

批量安裝配置:

    grafana支持puppet、ansible、docker、chef等安裝,感覺沒啥用就不介紹了

grafana後端數據源配置:

    grafana主要是支持一些時間序列數據庫,我們調研的是influxdb,所以就以influxdb爲例了,界面上點點就配置好了,主要過程看這裏:here


grafana的配置文件:

    grafana後端的配置文件可以是多個以.ini結尾的配置文件,主要從三個配置文件讀取配置:默認是$WORKING_DIR/conf/defaults.ini,其次用戶配置是$WORKING_DIR/conf/custom.ini,用戶配置則可以在命令行啓動grafana時通過--config參數重新指定配置文件來覆蓋。如果你是以deb或者rpm安裝的,則默認的配置文件是/etc/grafana/grafana.ini,這個文件是在init.d的啓動腳本中通過--config參數指定的。    

    所有在配置文件中的配置都可以通過環境變量來覆蓋,使用的語法如下:GF_<SectionName>_<KeyName>,例如:

[security]
admin_user = admin

[auth.google]
client_secret = 0ldS3cretKey
    如果使用環境變量,則是如下: 

export GF_SECURITY_ADMIN_USER=true
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey
下面具體看看每個配置段的配置:

app_mode:應用名稱,默認是production

[path]
data:一個grafana用來存儲sqlite3、臨時文件、回話的地址路徑
logs:grafana存儲logs的路徑

[server]
http_addr:監聽的ip地址,,默認是0.0.0.0
http_port:監聽的端口,默認是3000
protocol:http或者https,,默認是http
domain:這個設置是root_url的一部分,當你通過瀏覽器訪問grafana時的公開的domian名稱,默認是localhost
enforce_domain:如果主機的header不匹配domian,則跳轉到一個正確的domain上,默認是false
root_url:這是一個web上訪問grafana的全路徑url,默認是%(protocol)s://%(domain)s:%(http_port)s/
router_logging:是否記錄web請求日誌,默認是false
cert_file:如果使用https則需要設置
cert_key:如果使用https則需要設置

[database]
grafana默認需要使用數據庫存儲用戶和dashboard信息,默認使用sqlite3來存儲,你也可以換成其他數據庫
type:可以是mysql、postgres、sqlite3,默認是sqlite3
path:只是sqlite3需要,定義sqlite3的存儲路徑
host:只是mysql、postgres需要,默認是127.0.0.1:3306
name:grafana的數據庫名稱,默認是grafana
user:連接數據庫的用戶
password:數據庫用戶的密碼
ssl_mode:只是postgres使用


[security]
admin_user:grafana默認的admin用戶,默認是admin
admin_password:grafana admin的默認密碼,默認是admin
login_remember_days:多少天內保持登錄狀態
secret_key:保持登錄狀態的簽名
disable_gravatar:


[users]
allow_sign_up:是否允許普通用戶登錄,如果設置爲false,則禁止用戶登錄,默認是true,則admin可以創建用戶,並登錄grafana
allow_org_create:如果設置爲false,則禁止用戶創建新組織,默認是true
auto_assign_org:當設置爲true的時候,會自動的把新增用戶增加到id爲1的組織中,當設置爲false的時候,新建用戶的時候會新增一個組織
auto_assign_org_role:新建用戶附加的規則,默認是Viewer,還可以是Admin、Editor


[auth.anonymous]
enabled:設置爲true,則開啓允許匿名訪問,默認是false
org_name:爲匿名用戶設置組織名稱
org_role:爲匿名用戶設置的訪問規則,默認是Viewer


[auth.github]
針對github項目的,很明顯,呵呵
enabled = false
allow_sign_up = false
client_id = some_id
client_secret = some_secret
scopes = user:email
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
team_ids =
allowed_domains =
allowed_organizations =


[auth.google]
針對google app的,呵呵
enabled = false
allow_sign_up = false
client_id = some_client_id
client_secret = some_client_secret
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
auth_url = https://accounts.google.com/o/oauth2/auth
token_url = https://accounts.google.com/o/oauth2/token
api_url = https://www.googleapis.com/oauth2/v1/userinfo
allowed_domains =


[auth.basic]
enabled:當設置爲true,則http api開啓基本認證


[auth.ldap]
enabled:設置爲true則開啓LDAP認證,默認是false
config_file:如果開啓LDAP,指定LDAP的配置文件/etc/grafana/ldap.toml


[auth.proxy]
允許你在一個HTTP反向代理上進行認證設置
enabled:默認是false
header_name:默認是X-WEBAUTH-USER
header_property:默認是個名稱username
auto_sign_up:默認是true。開啓自動註冊,如果用戶在grafana DB中不存在

[analytics]
reporting_enabled:如果設置爲true,則會發送匿名使用分析到stats.grafana.org,主要用於跟蹤允許實例、版本、dashboard、錯誤統計。默認是true
google_analytics_ua_id:使用GA進行分析,填寫你的GA ID即可


[dashboards.json]
如果你有一個系統自動產生json格式的dashboard,則可以開啓這個特性試試
enabled:默認是false
path:一個全路徑用來包含你的json dashboard,默認是/var/lib/grafana/dashboards


[session]
provider:默認是file,值還可以是memory、mysql、postgres
provider_config:這個值的配置由provider的設置來確定,如果provider是file,則是data/xxxx路徑類型,如果provider是mysql,則是user:password@tcp(127.0.0.1:3306)/database_name,如果provider是postgres,則是user=a password=b host=localhost port=5432 dbname=c sslmode=disable
cookie_name:grafana的cookie名稱
cookie_secure:如果設置爲true,則grafana依賴https,默認是false
session_life_time:session過期時間,默認是86400秒,24小時


以下是官方文檔沒有,配置文件中有的
[smtp]
enabled = false
host = localhost:25
user =
password =
cert_file =
key_file =
skip_verify = false
from_address = admin@grafana.localhost

[emails]
welcome_email_on_sign_up = false
templates_pattern = emails/*.html


[log]
mode:可以是console、file,默認是console、file,也可以設置多個,用逗號隔開
buffer_len:channel的buffer長度,默認是10000
level:可以是"Trace", "Debug", "Info", "Warn", "Error", "Critical",默認是info

[log.console]
level:設置級別

[log.file]
level:設置級別
log_rotate:是否開啓自動輪轉
max_lines:單個日誌文件的最大行數,默認是1000000
max_lines_shift:單個日誌文件的最大大小,默認是28,表示256MB
daily_rotate:每天是否進行日誌輪轉,默認是true
max_days:日誌過期時間,默認是7,7天后刪除
啓動grafana:

./grafana-server -config="/opt/grafana-2.1.3/conf/custom.ini"
 


    下面的就是初始化過程了,會有大片的輸出,再次重啓grafana的時候則不會進行初始化:


下面訪問grafana看看:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章