grafana酷炫圖表

來源:互聯網
上載者:User

標籤:ofo   tom   sql   redis   userinfo   包含   9.png   oauth   comm   

Grafana 可視化大型測量資料工具
############################################################# $Name:         grafana可視化大型測量資料工具# $Author:       zhangshoufu# $organization: http://blog.51cto.com/13447608# $Create Date:  2018-10-14############################################################
grafana是什嗎?

1)grafana是用於可視化大型測量資料的開來源程式,他提供了強大和優雅的方式去建立、共用、瀏覽資料。dashboard中顯示了你不同metric資料來源中的資料。
2)grafana最常用於網際網路基礎設施和應用分析,但在其他領域也有機會用到,比如:工業感應器、家庭自動化、過程式控制制等等。
3)grafana有熱插拔控制台和可擴充的資料來源,目前已經支援Graphite、InfluxDB、OpenTSDB、Elasticsearch。

安裝,配置Grafana軟體

1,安裝grafana軟體
[grafana官網安裝說明](http://docs.grafana.org/installation/rpm/)
我們這裡介紹5.1.4版本的grafana的安裝,如果需要其他版本請點擊上述串連到官網自行下載安裝

sudo yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.4-1.x86_64.rpm//granfan軟體的目錄結構/usr/sbin/grafana-server 安裝的二進位檔案,可執行檔命令/etc/sysconfig/grafana-server 預設和軟體相關的環境變數/etc/grafana/grafana.ini  預設的設定檔/var/log/grafana/grafana.log 預設的記錄檔/var/lib/grafana/grafana.db 預設使用的時候是sqlite3資料庫,裡面存放的串連資訊,剛安裝好服務沒啟動之前這個檔案是不存在的systemctl start grafana-server.service  //啟動服務systemctl enable grafana-server.service //把服務加入開機開機檔案中

說明:

1,預設是以grafana使用者來啟動grafana的,預設監聽在3000連接埠。
2,預設的登入使用者是admin/admin
3,我們可以通過http://IP:3000來訪問grafana的web介面
4,預設使用的資料庫是sqlite3

登入上去之後的預設頁面

2,配置grafana軟體
1)/etc/sysconfig/grafana-server 環境變數設定檔說明

[[email protected] grafana]# cat /etc/sysconfig/grafana-serverGRAFANA_USER=grafana // 啟動grafana的使用者身份GRAFANA_GROUP=grafana// 啟動grafana的使用者組身份GRAFANA_HOME=/usr/share/grafana// garfana軟體預設的目錄LOG_DIR=/var/log/grafana// grafana記錄檔存放的位置DATA_DIR=/var/lib/grafana// grafana預設資料存放的位置,sqlite3資料庫MAX_OPEN_FILES=10000// 最大開啟的檔案數CONF_DIR=/etc/grafana// 預設設定檔存在的目錄CONF_FILE=/etc/grafana/grafana.ini// 預設的設定檔RESTART_ON_UPGRADE=true// 從新啟動升級開啟PLUGINS_DIR=/var/lib/grafana/plugins// 外掛程式存放的目錄PROVISIONING_CFG_DIR=/etc/grafana/provisioning# Only used on systemd systemsPID_FILE_DIR=/var/run/grafana// 軟體啟動pid號存放的在那個檔案中// 我們更改上述資訊重啟grafana生效

2)解讀/etc/grafana/grafana.ini預設的設定檔,優先順序高於上個檔案

這個檔案中 ; 代表注釋,注釋的值代表預設的值[[email protected] /]# cat /etc/grafana/grafana.ini##################### Grafana Configuration Example ####################### Everything has defaults so you only need to uncomment things you want to# change# possible values : production, development;app_mode = production# instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty;instance_name = ${HOSTNAME}// 設定grafana-server執行個體的名稱如果HOSTNAME的值為空白預設使用HOSTNAME的環境變數或者主機名稱#################################### Paths ####################################[paths]# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used);data = /var/lib/grafana// grafana存放資料的地方,預設存放的sqlite3和session會話資訊(如果你使用sqlite3)# Directory where grafana can store logs;logs = /var/log/grafana// 預設日誌資訊存放的位置# Directory where grafana will automatically scan and look for plugins;plugins = /var/lib/grafana/plugins// 外掛程式存放的文職# folder that contains provisioning config files that grafana will apply on startup and while running.;provisioning = conf/provisioning// 包含grafana將在啟動時和運行時應用的配置設定檔的檔案夾。#################################### Server ####################################[server]# Protocol (http, https, socket);protocol = http// 使用的http協議# The ip address to bind to, empty will bind to all interfaces;http_addr =// 監聽的地址# The http port  to use;http_port = 3000// 監聽的連接埠# The public facing domain name used to access grafana from a browser;domain = localhost// 使用的網域名稱# Redirect to correct domain if host header does not match domain# Prevents DNS rebinding attacks;enforce_domain = false// 如果主機頭與網域名稱不匹配,則重新導向到正確的網域名稱防止DNS重新綁定***# The full public facing url you use in browser, used for redirects and emails# If you use reverse proxy and sub path specify full url (with sub path);root_url = http://localhost:3000// 網站預設首頁的URL,如果我們更改上面的domain和port這個也要改成對應的# Log web requests;router_logging = false// 預設不記錄web請求# the path relative working path;static_root_path = public// web靜態檔案存放的路徑# enable gzip;enable_gzip = false// 是否開始http傳輸時候的gzip壓縮,預設不使用# https certs & key file;cert_file =;cert_key =// 使用https加密協議的時候認證和存放的認證和key的位置# Unix socket path;socket =#################################### Database ####################################[database]// 串連資料庫的設定檔,應該都能看懂,不解釋# You can configure the database connection by specifying type, host, name, user and password# as separate properties or as on string using the url properties.# Either "mysql", "postgres" or "sqlite3", it‘s your choice;type = sqlite3;host = 127.0.0.1:3306;name = grafana;user = root# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;""";password =// 如果密碼包含#或;您必須用三重引號封裝它。"""#password;"""# Use either URL or the previous fields to configure the database# Example: mysql://user:[email protected]:port/database;url =# For "postgres" only, either "disable", "require" or "verify-full";ssl_mode = disable# For "sqlite3" only, path relative to data_path setting;path = grafana.db# Max idle conn setting default is 2;max_idle_conn = 2# Max conn setting default is 0 (mean not set);max_open_conn =# Connection Max Lifetime default is 14400 (means 14400 seconds or 4 hours);conn_max_lifetime = 14400# Set to true to log the sql calls and execution times.log_queries =#################################### Session ####################################[session]# Either "memory", "file", "redis", "mysql", "postgres", default is "file";provider = file# Provider config options# memory: not have any config yet# file: session dir path, is relative to grafana data_path# redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana`# mysql: go-sql-driver/mysql dsn config string, e.g. `user:[email protected](127.0.0.1:3306)/database_name`# postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable;provider_config = sessions# Session cookie name;cookie_name = grafana_sess# If you use session in https only, default is false;cookie_secure = false# Session life time, default is 86400;session_life_time = 86400#################################### Data proxy ###########################[dataproxy]# This enables data proxy logging, default is false;logging = false#################################### Analytics ####################################[analytics]# Server reporting, sends usage counters to stats.grafana.org every 24 hours.# No ip addresses are being tracked, only simple counters to track# running instances, dashboard and error counts. It is very helpful to us.# Change this option to false to disable reporting.;reporting_enabled = true# Set to false to disable all checks to https://grafana.net# for new vesions (grafana itself and plugins), check is used# in some UI views to notify that grafana or plugin update exists# This option does not cause any auto updates, nor send any information# only a GET request to http://grafana.com to get latest versions;check_for_updates = true# Google Analytics universal tracking code, only enabled if you specify an id here;google_analytics_ua_id =#################################### Security ####################################[security]# default admin user, created on startup;admin_user = admin// 預設登入網站的使用者名稱# default admin password, can be changed before first start of grafana,  or in profile settings;admin_password = admin// 預設使用的密碼# used for signing;secret_key = SW2YcwTIb9zpOOhoPsMm// 用於簽署一些資料來源設定# Auto-login remember days;login_remember_days = 7  //記住登入的天數;cookie_username = grafana_user //使用者cookie記錄的檔案;cookie_remember_name = grafana_remember# disable gravatar profile images;disable_gravatar = false// 禁用個人圖片檔案# data source proxy whitelist (ip_or_domain:port separated by spaces);data_source_proxy_whitelist =# disable protection against brute force login attempts;disable_brute_force_login_protection = false#################################### Snapshots ###########################[snapshots]# snapshot sharing options;external_enabled = true;external_snapshot_url = https://snapshots-origin.raintank.io;external_snapshot_name = Publish to snapshot.raintank.io# remove expired snapshot;snapshot_remove_expired = true#################################### Dashboards History ##################[dashboards]# Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1;versions_to_keep = 20#################################### Users ###############################[users]# disable user signup / registration;allow_sign_up = true// 設定為false就禁止使用者註冊/建立使用者了,但是管理員還是能操作# Allow non admin users to create organizations;allow_org_create = true// false禁止使用者建立組織# Set to true to automatically assign new users to the default organization (id 1);auto_assign_org = true// 設定為true自動將新使用者添加到主組織(標識1)。設定為時false,新使用者將自動為該新使用者建立新群組織。# Default role new users will be automatically assigned (if disabled above is set to true);auto_assign_org_role = Viewer// 將為主組織分配新使用者的角色# Background text for the user field on the login page;login_hint = email or username# Default UI theme ("dark" or "light");default_theme = dark# External user management, these options affect the organization users view;external_manage_link_url =;external_manage_link_name =;external_manage_info =# Viewers can edit/inspect dashboard settings in the browser. But not save the dashboard.;viewers_can_edit = false[auth]# Set to true to disable (hide) the login form, useful if you use OAuth, defaults to false;disable_login_form = false# Set to true to disable the signout link in the side menu. useful if you use auth.proxy, defaults to false;disable_signout_menu = false#################################### Anonymous Auth ##########################[auth.anonymous]# enable anonymous access;enabled = false# specify organization name that should be used for unauthenticated users;org_name = Main Org.# specify role for unauthenticated users;org_role = Viewer#################################### Github Auth ##########################[auth.github];enabled = false;allow_sign_up = true;client_id = some_id;client_secret = some_secret;scopes = user:email,read:org;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_organizations =#################################### Google Auth ##########################[auth.google];enabled = false;allow_sign_up = true;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 =#################################### Generic OAuth ##########################[auth.generic_oauth];enabled = false;name = OAuth;allow_sign_up = true;client_id = some_id;client_secret = some_secret;scopes = user:email,read:org;auth_url = https://foo.bar/login/oauth/authorize;token_url = https://foo.bar/login/oauth/access_token;api_url = https://foo.bar/user;team_ids =;allowed_organizations =#################################### Grafana.com Auth ####################[auth.grafana_com];enabled = false;allow_sign_up = true;client_id = some_id;client_secret = some_secret;scopes = user:email;allowed_organizations =#################################### Auth Proxy ##########################[auth.proxy];enabled = false;header_name = X-WEBAUTH-USER;header_property = username;auto_sign_up = true;ldap_sync_ttl = 60;whitelist = 192.168.1.1, 192.168.2.1#################################### Basic Auth ##########################[auth.basic];enabled = true#################################### Auth LDAP ##########################[auth.ldap];enabled = false;config_file = /etc/grafana/ldap.toml;allow_sign_up = true#################################### SMTP / Emailing ##########################[smtp];enabled = false;host = localhost:25;user =# If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;""";password =;cert_file =;key_file =;skip_verify = false;from_address = [email protected];from_name = Grafana# EHLO identity in SMTP dialog (defaults to instance_name);ehlo_identity = dashboard.example.com[emails];welcome_email_on_sign_up = false#################################### Logging ##########################[log]# Either "console", "file", "syslog". Default is console and  file# Use space to separate multiple modes, e.g. "console file";mode = console file# Either "debug", "info", "warn", "error", "critical", default is "info";level = info# optional settings to set different levels for specific loggers. Ex filters = sqlstore:debug;filters =# For "console" mode only[log.console];level =# log line format, valid options are text, console and json;format = console# For "file" mode only[log.file];level =# log line format, valid options are text, console and json;format = text# This enables automated log rotate(switch of following options), default is true;log_rotate = true# Max line number of single file, default is 1000000;max_lines = 1000000# Max size shift of single file, default is 28 means 1 << 28, 256MB;max_size_shift = 28# Segment log daily, default is true;daily_rotate = true# Expired days of log file(delete after max days), default is 7;max_days = 7[log.syslog];level =# log line format, valid options are text, console and json;format = text# Syslog network type and address. This can be udp, tcp, or unix. If left blank, the default unix endpoints will be used.;network =;address =# Syslog facility. user, daemon and local0 through local7 are valid.;facility =# Syslog tag. By default, the process‘ argv[0] is used.;tag =#################################### Alerting ############################[alerting]# Disable alerting engine & UI features;enabled = true# Makes it possible to turn off alert rule execution but alerting UI is visible;execute_alerts = true#################################### Internal Grafana Metrics ########################### Metrics available at HTTP API Url /metrics[metrics]# Disable / Enable internal metrics;enabled           = true# Publish interval;interval_seconds  = 10# Send internal metrics to Graphite[metrics.graphite]# Enable by setting the address setting (ex localhost:2003);address =;prefix = prod.grafana.%(instance_name)s.#################################### Distributed tracing ############[tracing.jaeger]# Enable by setting the address sending traces to jaeger (ex localhost:6831);address = localhost:6831# Tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2);always_included_tag = tag1:value1# Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote;sampler_type = const# jaeger samplerconfig param# for "const" sampler, 0 or 1 for always false/true respectively# for "probabilistic" sampler, a probability between 0 and 1# for "rateLimiting" sampler, the number of spans per second# for "remote" sampler, param is the same as for "probabilistic"# and indicates the initial sampling rate before the actual one# is received from the mothership;sampler_param = 1#################################### Grafana.com integration  ########################### Url used to to import dashboards directly from Grafana.com[grafana_com];url = https://grafana.com#################################### External image storage ##########################[external_image_storage]# Used for uploading images to public servers so they can be included in slack/email messages.# you can choose between (s3, webdav, gcs, azure_blob, local);provider =[external_image_storage.s3];bucket =;region =;path =;access_key =;secret_key =[external_image_storage.webdav];url =;public_url =;username =;password =[external_image_storage.gcs];key_file =;bucket =;path =[external_image_storage.azure_blob];account_name =;account_key =;container_name =[external_image_storage.local]# does not require any configuration

使用者認證方式的位置:garfana幾種使用者認證方式

3)修改設定檔

// grafana默把資料存在sqlite3裡,我們更改到mysql重[[email protected] /]# grep "^[a-z]" /etc/grafana/grafana.inidomain = test.garfana.comroot_url = http://test.garfana.com:3000type = mysqlhost = 172.16.1.51:3306name = grafanauser = grafanapassword = "zsf123.com"log_queries =admin_user = zsfadmin_password = "zsf123.com"

4)mysql建立庫和使用者並授權

MariaDB [(none)]> create database grafana ;MariaDB [(none)]> grant all privileges on grafana.* to [email protected]"172.16.1.71" identified by ‘zsf123.com‘;MariaDB [(none)]> flush privileges;

5)重啟grafana使其配置生效,登入web介面串連配置,安裝Plugin外掛程式

通過grafana與zabbix的配合使用來介紹grafana的使用方式

1)安裝zabbix外掛程式,進入grafana-web首頁---> install apps & Plugin安裝zabbix外掛程式

選擇Zabbix外掛程式



[[email protected] /]#[[email protected] /]# grafana-cli plugins install alexanderzobnin-zabbix-appinstalling alexanderzobnin-zabbix-app @ 3.9.1from url: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.9.1/downloadinto: /var/lib/grafana/plugins? Installed alexanderzobnin-zabbix-app successfullyRestart grafana after installing plugins . <service grafana-server restart>// 安裝完外掛程式之後重啟一下grafana端[[email protected] /]# systemctl restart grafana-server.service

2)然後進入到web首頁點擊

進入啟用zabbix外掛程式


3)添加一個報表的資料來源

4)查看模版的資訊
到首頁點擊home

5)指定義指示盤

先建立一個garfana的行來歸類

建立一個圖表




大概頁面就是這麼一個情況,

添加一個餅圖外掛程式
和安裝Zabbix外掛程式是一樣的過程

grafana-cli plugins install grafana-piechart-panelinstalling grafana-piechart-panel @ 1.3.3from url: https://grafana.com/api/plugins/grafana-piechart-panel/versions/1.3.3/downloadinto: /var/lib/grafana/plugins? Installed grafana-piechart-panel successfullyRestart grafana after installing plugins . <service grafana-server restart>[[email protected] /]# systemctl restart grafana-server.service


安裝完成之後就能在添加模組的地方看到餅圖了,即可建立,記憶體的餅圖

安裝外掛程式介紹到這,基本使用已經能正常了,後期繼續推出相關教程

grafana酷炫圖表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.