grafana簡(jiǎn)介
Grafana是一個(gè)完全開源的度量分析與可視化平臺(tái),可對(duì)來自各種各種數(shù)據(jù)源的數(shù)據(jù)進(jìn)行查詢、分析、可視化處理以及配置告警。
- Grafana支持的數(shù)據(jù)源:
- 官方:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,MySQL等;
- 插件:open-falcon、zabbix…
CentOS 7.3 安裝Grafana 6.0
yum安裝
$ yum install -y https://dl.grafana.com/oss/release/grafana-6.0.2-1.x86_64.rpm
啟動(dòng)Grafana
$ systemctl start grafana-server $ systemctl enable grafana-server
啟動(dòng)后可以直接在瀏覽器訪問:http://ip:3000
Grafana文件結(jié)構(gòu)
- 日志文件:
/var/log/grafana
- 數(shù)據(jù)文件:
/var/lib/grafana/grafana.db
默認(rèn)為sqlite3數(shù)據(jù)庫,也可以使用mysql、postgres,配置方法 (Tips:升級(jí)前要備份數(shù)據(jù)文件) 。 - 配置文件:
/etc/grafana/grafana.ini
配置Grafana
Note: 更改Grafana配置文件后需要重啟Grafana服務(wù)生效。
配置文件中以 ;
開頭的行為注釋行。
paths
# default_section instance_name = TEST_ENV # 實(shí)例名稱,默認(rèn)為主機(jī)名 [paths] ;data = /var/lib/grafana # 數(shù)據(jù)文件存放位置 ;temp_data_lifetime = 24h # 臨時(shí)數(shù)據(jù)保存時(shí)間,默認(rèn)為24小時(shí) ;logs = /var/log/grafana # 日志文件存放位置 ;plugins = /var/lib/grafana/plugins # Grafana默認(rèn)查找插件的位置 ;provisioning = conf/provisioning # Grafana啟動(dòng)時(shí)依賴的配置文件存放位置
server
[server] ;protocol = http # 網(wǎng)絡(luò)協(xié)議,如http、https、socket ;http_addr = localhost # 綁定的ip,留空表示綁定所有網(wǎng)卡ip ;http_port = 3000 # 訪問端口 ;domain = localhost # 這個(gè)設(shè)置是root_url的一部分,當(dāng)你通過瀏覽器訪問grafana時(shí)的公開的domian名稱,默認(rèn)是localhost ;enforce_domain = false # 如果主機(jī)的header不匹配domian,則跳轉(zhuǎn)到一個(gè)正確的domain上,默認(rèn)是false。防止dns重寫攻擊 ;root_url = http://localhost:3000 # 這是一個(gè)web上訪問grafana的全路徑url,默認(rèn)是%(protocol)s://%(domain)s:%(http_port)s/ ;router_logging = false # 是否記錄web請(qǐng)求日志,默認(rèn)是false ;static_root_path = public # 前端文件(HTML,JS和CSS文件)的目錄路徑。 默認(rèn)為public ;enable_gzip = false ;cert_file = # 如果使用https則需要設(shè)置 ;cert_key = # 如果使用https則需要設(shè)置 ;socket = /tmp/grafana.sock # socket文件位置
database
[database] ;type = sqlite3 # 數(shù)據(jù)庫可以是mysql、postgres、sqlite3,默認(rèn)是sqlite3 ;host = 127.0.0.1:3306 # 只是mysql、postgres需要,默認(rèn)是127.0.0.1:3306 ;name = grafana # grafana的數(shù)據(jù)庫名稱,默認(rèn)是grafana ;user = root # 數(shù)據(jù)庫用戶名 ;password = # 數(shù)據(jù)庫密碼 ;url = # 使用URL配置數(shù)據(jù)庫 ;ssl_mode = disable # mysql、postgres使用 ;path = grafana.db # 只是sqlite3需要,定義sqlite3的存儲(chǔ)路徑
session
[session] ;provider = file # 默認(rèn)是file,值還可以是memory、mysql、postgres、redis、memcache ;provider_config = sessions # 這個(gè)值的配置由provider的設(shè)置來確定,可參考官網(wǎng)配置用例 ;cookie_name = grafana_sess # grafana的cookie名稱 ;cookie_secure = false # 如果設(shè)置為true,則grafana依賴https,默認(rèn)是false ;session_life_time = 86400 # session過期時(shí)間,默認(rèn)是86400秒,24小時(shí)
log
[log] ;mode = console file # 可以是console、file、syslog,默認(rèn)是console、file ;level = info # 日志級(jí)別 ;filters = # 可選設(shè)置為特定的記錄設(shè)置不同的級(jí)別 [log.console] ;level = # 日志級(jí)別 ;format = console # 日志格式,支持console、text、json [log.file] ;level = # 日志級(jí)別 ;format = text # 日志格式,支持console、text、json ;log_rotate = true # 是否開啟自動(dòng)輪轉(zhuǎn) ;max_lines = 1000000 # 單個(gè)日志文件的最大行數(shù),默認(rèn)是1000000 ;max_size_shift = 28 # 單個(gè)日志文件的最大大小,默認(rèn)是28,表示256MB ;daily_rotate = true # 每天是否進(jìn)行日志輪轉(zhuǎn),默認(rèn)是true ;max_days = 7 # 日志過期時(shí)間,默認(rèn)是7,7天后刪除
security
[security] ;admin_user = admin # 管理員用戶,啟動(dòng)時(shí)創(chuàng)建 ;admin_password = admin # 管理員密碼,首次啟動(dòng)前可更改或在配置文件設(shè)定 ;secret_key = SW2YcwTIb9zpOOhoPsMm # 加密 ;disable_gravatar =www.honghgjpt.com false # 禁用gravatar圖片文件 ;data_source_proxy_whitelist = # 數(shù)據(jù)源代理白名單,ip_or_domain:port ,多個(gè)用空格分隔 ;disable_brute_force_login_protection = false # 禁止暴力破解 ;cookie_secure = false # 如果使用https,設(shè)置為true,默認(rèn)為false # set cookie SameSite attribute. defaults to `lax`. can be set to "lax", "strict" and "none" ;cookie_samesite = lax # 設(shè)置同意站點(diǎn)cookie相同,防止跨域攻擊,可以設(shè)置為"lax", "strict" and "none"
dashboards
;versions_to_keep = 20 # 可保持會(huì)話個(gè)數(shù)
users
[users] ;allow_sign_up = true # 是否允許普通用戶登錄,如果設(shè)置為false,則禁止用戶登錄,默認(rèn)是true,則admin可以創(chuàng)建用戶,并登錄grafana ;allow_org_create = true # 如果設(shè)置為false,則禁止用戶創(chuàng)建新組織,默認(rèn)是true ;auto_assign_org = true # 當(dāng)設(shè)置為true的時(shí)候,會(huì)自動(dòng)的把新增用戶增加到id為1的組織中,當(dāng)設(shè)置為false的時(shí)候,新建用戶的時(shí)候會(huì)新增一個(gè)組織 ;auto_assign_org_role = Viewer # 新建用戶附加的規(guī)則,默認(rèn)是Viewer ;login_hint = email or username # 首頁user框中的背景文字 ;default_theme = dark # 默認(rèn)頁面的背景 [auth] ;disable_login_form = false # true隱藏登陸框,默認(rèn)false
auth
[auth] ;login_cookie_name = grafana_session # session名稱 ;login_maximum_inactive_lifetime_www.tiaotiaoylzc.com days = 7 # session保持時(shí)間 ;login_maximum_lifetime_days = 30 # session保持最長(zhǎng)時(shí)間 ;token_rotation_interval_minutes = 10 # 登陸狀態(tài),用戶認(rèn)證token更新頻率,默認(rèn)為10分鐘 [auth.anonymous] ;enabled = false # 禁止匿名登陸
auth.basic
[auth.basic] ;enabled = true # 當(dāng)設(shè)置為true,則http api開啟基本認(rèn)證
auth.proxy
[auth.proxy] # 允許你在一個(gè)HTTP反向代理上進(jìn)行認(rèn)證設(shè)置 ;enabled = false ;header_name = X-WEBAUTH-USER ;header_property =www.meiwanyule.cn username ;auto_sign_up = true # 默認(rèn)是true。開啟自動(dòng)注冊(cè),如果用戶在grafana DB中不存在 ;ldap_sync_ttl = 60 ;whitelist = 192.168.1.1, 192.168.2.1 # 白名單
auth.ldap
[auth.ldap] ;enabled = false # 開啟ldap用戶認(rèn)證 ;config_file = /etc/grafana/ldap.toml # ldap認(rèn)證相關(guān)配置文件 ;allow_sign_up = true # 允許登陸
alerting
[alerting] enabled = true # 設(shè)置為false以禁用警報(bào)引擎,并從UI中隱藏警報(bào) execute_alerts = true # 是否執(zhí)行報(bào)警規(guī)則
analytics
[analytics] reporting_enabled www.yongshi123.cn= true # 如果設(shè)置為true,則會(huì)發(fā)送匿名使用分析到stats.grafana.org,主要用于跟蹤允許實(shí)例、版本、dashboard、錯(cuò)誤統(tǒng)計(jì)。默認(rèn)是true check_for_updates = true # 更新檢查設(shè)置 google_analytics_ua_id = # 使用GA進(jìn)行分析,填寫你的GA ID即可
smtp
[smtp] ;enabled = false # 是否開啟 ;host = localhost:25 # ip和端口 ;user = ;password = ;cert_file = ;key_file = ;skip_verify = false ;from_address = admin@grafana.localhost # 發(fā)送郵箱名 ;from_name = Grafana # 發(fā)送人
Grafana用mysql做數(shù)據(jù)源
-
創(chuàng)建數(shù)據(jù)庫及賬號(hào)
mysql> create database grafana DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; mysql> GRANT ALL ON grafana.* TO www.michenggw.com'grafana'@'127.0.0.1' IDENTIFIED BY 'grafana';
-
修改database配置文件
[database] type = mysql host = 127.0.0.1:3306 name = grafana user = grafana password = grafana
-
確保session表存在
mysql> show tables like www.xycheng178.com'session%'; mysql> desc session; +--------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+----------+------+-----+---------+-------+ | key | char(16) | NO | PRI | NULL | | | data | blob | NO | | NULL | | | expiry | int(255) | NO | | NULL | | +--------+----------+------+-----+---------+-------+ 3 rows in set (0.01 sec) # 如果session表不存在,需要手動(dòng)創(chuàng)建 mysql> CREATE TABLE `session` ( `key` CHAR(16) NOT NULL, `data` BLOB, `expiry` INT(255) UNSIGNED NOT NULL, PRIMARY KEY (`key`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
修改session配置
[session] provider = mysql provider_config = grafana:grafana@tcp(127.0.0.1:3306)/grafana cookie_name = grafana_sess cookie_secure = false session_life_time = 8640
使用Grafana
完成上述配置后登陸Grafana,默認(rèn)管理員用戶——admin,默認(rèn)管理員密碼——admin,首次登陸需要更改管理員密碼!
添加數(shù)據(jù)源
以MySQL為例添加數(shù)據(jù)源,Configuration——DataSource——Add data source——MySQL。注意,只對(duì)數(shù)據(jù)源用戶授權(quán)select權(quán)限,且保證最小授權(quán)原則,eg:
mysql> CREATE USER 'grafanaReader'@'localhost' IDENTIFIED BY 'grafana'; mysql> GRANT SELECT ON grafana.* TO www.dasheng178.com 'grafanaReader';
配置參考:http://docs.grafana.org/features/datasources/mysql/
grafana+zabbix插件
安裝插件:Configuration——Plugins——”Find More Plugins on Grafana.com”——zabbix
查看遠(yuǎn)程可用插件
$ grafana-cli plugins list-remote id: abhisant-druid-datasource version: 0.0.5 id: agenty-flowcharting-panel www.shengbangyule178.cn version: 0.2.0 id: akumuli-datasource version: 1.2.8 id: alexanderzobnin-zabbix-app version: 3.10.1 ...
安裝插件
$ grafana-cli plugins install alexanderzobnin-zabbix-app
查看已安裝的插件
$ grafana-cli plugins ls installed plugins: alexanderzobnin-zabbix-app @ 3.10.1 Restart grafana after installing plugins . <service grafana-server restart>
安裝完成后需要重啟Grafana服務(wù)使生效:
$ systemctl restart grafana-server
登陸web管理界面后需要啟用插件,Configuration——Plugins——zabbix——Enable。
添加zabbix DataSource
Configuration——DataSource——Add DataSource——zabbix——dashboard——import數(shù)據(jù)