自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【云原生】Grafana 介紹與實(shí)戰(zhàn)操作

云計(jì)算 云原生
每一個(gè)數(shù)據(jù)源的查詢語言和能力都是不一樣的。你能夠把來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)組合到一個(gè)儀表板,但每個(gè)面板被綁定到一個(gè)特定的數(shù)據(jù)源,它就屬于一個(gè)特定的組織。

一、概述

grafana是用于可視化大型測(cè)量數(shù)據(jù)的開源程序,他提供了強(qiáng)大和優(yōu)雅的方式去創(chuàng)建、共享、瀏覽數(shù)據(jù)。dashboard中顯示了你不同metric數(shù)據(jù)源中的數(shù)據(jù)。

  • grafana最常用于因特網(wǎng)基礎(chǔ)設(shè)施和應(yīng)用分析,但在其他領(lǐng)域也有機(jī)會(huì)用到,比如:工業(yè)傳感器、家庭自動(dòng)化、過程控制等等。
  • grafana有熱插拔控制面板和可擴(kuò)展的數(shù)據(jù)源,目前已經(jīng)支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。
  • grafana 高版本也支持告警功能,支持各種告警通道:webhook,alertmanager、mail、釘釘?shù)鹊取?/li>
  • 每一個(gè)數(shù)據(jù)源的查詢語言和能力都是不一樣的。你能夠把來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)組合到一個(gè)儀表板,但每個(gè)面板被綁定到一個(gè)特定的數(shù)據(jù)源,它就屬于一個(gè)特定的組織。

一般是Prometheus與Grafana配套使用,有些公司直接使用Grafana告警,而棄用alertmanager。相關(guān)參考文檔如下:

  • Grafana官方文檔:https://grafana.com/docs/grafana/latest/
  • Grafana GitHub地址:https://github.com/grafana/grafana
  • Prometheus原理詳解
  • 【云原生】Prometheus Pushgetway講解與實(shí)戰(zhàn)操作
  • 【云原生】Prometheus AlertManager講解與實(shí)戰(zhàn)操作
  • 【云原生】Prometheus PromQL講解與實(shí)戰(zhàn)操作
  • 【云原生】Prometheus 自定義告警規(guī)則

圖片

二、Grafana 安裝

1)下載安裝

下載地址:https://grafana.com/grafana/download?platform=linux

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.2-1.x86_64.rpm
sudo yum install grafana-enterprise-9.3.2-1.x86_64.rpm -y

2)安裝包信息

  • 二進(jìn)制文件: /usr/sbin/grafana-server
  • init.d 腳本: /etc/init.d/grafana-server
  • 環(huán)境變量文件: /etc/sysconfig/grafana-server
  • 配置文件: /etc/grafana/grafana.ini
  • 啟動(dòng)項(xiàng): /usr/lib/systemd/system/grafana-server.service
  • 日志文件:/var/log/grafana/grafana.log
  • 默認(rèn)配置的sqlite3數(shù)據(jù)庫:/var/lib/grafana/grafana.db
  • grafana 默認(rèn)插件的存放位置:/var/lib/grafana/plugins

3)啟動(dòng)服務(wù)

sudo systemctl daemon-reload
sudo systemctl start grafana-server
# Grafana 開機(jī)自啟動(dòng)
sudo systemctl enable grafana-server
sudo systemctl status grafana-server
# 默認(rèn)端口 3000
netstat -nlpt|grep 3000

圖片

4)Grafana 訪問

默認(rèn)端口是3000?,訪問地址:http://IP:3000?默認(rèn)賬號(hào)/密碼:admin/admin

圖片

三、Grafana 功能介紹

  • Data Source(數(shù)據(jù)源):Grafana支持多種不同的時(shí)序數(shù)據(jù)庫數(shù)據(jù)源,Grafana對(duì)每種數(shù)據(jù)源提供不同的查詢方法,而且能很好的支持每種數(shù)據(jù)源的特性。官方地址:https://grafana.com/docs/grafana/latest/datasources/

圖片

  • DashBoard:儀表盤,就像汽車儀表盤同樣能夠展現(xiàn)不少信息,包括車速,水箱溫度等。Grafana的DashBoard就是以各類圖形的方式來展現(xiàn)從Datasource拿到的數(shù)據(jù)。https://grafana.com/grafana/dashboards/
  • Row:行,DashBoard的基本組成單元,一個(gè)DashBoard能夠包含不少個(gè)row。一個(gè)row能夠展現(xiàn)一種信息或者多種信息的組合,好比系統(tǒng)內(nèi)存使用率,CPU五分鐘及十分鐘平均負(fù)載等。因此在一個(gè)DashBoard上能夠集中展現(xiàn)不少內(nèi)容。
  • Panel:面板,實(shí)際上就是row展現(xiàn)信息的方式,支持表格(table),列表(alert list),熱圖(Heatmap)等多種方式,具體能夠去官網(wǎng)上查閱。
  • Query Editor?:查詢編輯器,用來指定獲取哪一部分?jǐn)?shù)據(jù)。相似于sql查詢語句,好比你要在某個(gè)row里面展現(xiàn)test這張表的數(shù)據(jù),那么Query Editor里面就能夠?qū)懗蓅elect *from test。這只是一種比方,實(shí)際上每一個(gè)DataSource獲取數(shù)據(jù)的方式都不同,因此寫法也不同(https://grafana.com/docs/grafana/latest/datasources/),好比像zabbix,數(shù)據(jù)是以指定某個(gè)監(jiān)控項(xiàng)的方式來獲取的。
  • Organization:組織,org是一個(gè)很大的概念,每一個(gè)用戶能夠擁有多個(gè)org,grafana有一個(gè)默認(rèn)的main org。用戶登陸后能夠在不一樣的org之間切換,前提是該用戶擁有多個(gè)org。不一樣的org之間徹底不同,包括datasource,dashboard等都不同。建立一個(gè)org就至關(guān)于開了一個(gè)全新的視圖,全部的datasource,dashboard等都要再從新開始建立。
  • User:用戶,這個(gè)概念應(yīng)該很簡單,不用多說。Grafana里面用戶有三種角色admin,editor,viewer。admin權(quán)限最高,能夠執(zhí)行任何操做,包括建立用戶,新增Datasource,建立DashBoard。editor角色不能夠建立用戶,不能夠新增Datasource,能夠建立DashBoard。viewer角色僅能夠查看DashBoard。在2.1版本及以后新增了一種角色read only editor(只讀編輯模式),這種模式容許用戶修改DashBoard,可是不容許保存。每一個(gè)user能夠擁有多個(gè)organization。

四、使用mysql存儲(chǔ)

1)安裝mysql

mysql安裝可以參考我下面這篇文章,這里就不再重復(fù)講解了:MySQL高可用實(shí)戰(zhàn)( MHA)

2)修改grafana配置

1、創(chuàng)建grafana用戶和grafana庫

# 登錄客戶端
mysql -uroot -p
密碼:123456

# 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE IF NOT EXISTS grafana default charset utf8 COLLATE utf8_general_ci;

# 創(chuàng)建用戶并授權(quán)
grant all on grafana.* to 'grafana'@'192.168.182.%' identified by '123456';

2、修改grafana配置

配置文件: /etc/grafana/grafana.ini

[database]
type = mysql
host = 192.168.182.110:3306
name = grafana
user = grafana
password = 123456
# 也可以直接配置url
# url = mysql://grafana:grafana@192.168.182.110:3306/grafana

重啟grafana

systemctl restart grafana-server

五、配置數(shù)據(jù)源(Data sources)

1)配置prometheus 數(shù)據(jù)源

前面我們已經(jīng)部署了prometheus了,所以可以把prometheus數(shù)據(jù)源加進(jìn)來。

圖片

圖片

圖片

2)配置mysql 數(shù)據(jù)源

圖片

圖片

圖片

六、配置監(jiān)控面板(Dashboard)

地址:https://grafana.com/grafana/dashboards/

1)node_exporter 監(jiān)控面板

1、安裝node_exporter

下載地址:https://github.com/prometheus/node_exporter/releases/

【1】下載

wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
tar -xzf node_exporter-1.5.0.linux-amd64.tar.gz

【2】配置node_exporter.service啟動(dòng)

# 默認(rèn)端口9100
cat >/usr/lib/systemd/system/node_exporter.service<<EOF
[Unit]
Descriptinotallow=node_exporter
After=network.target
#可以創(chuàng)建相應(yīng)的用戶和組 啟動(dòng)
#User=prometheus
#Group=prometheus

[Service]
ExecStart=/opt/prometheus/exporter/node_exporter/node_exporter-1.5.0.linux-amd64/node_exporter --web.listen-address=:9100
[Install]
WantedBy=multi-user.target
EOF

【3】啟動(dòng)服務(wù)

systemctl daemon-reload
systemctl start node_exporter
systemctl status node_exporter
systemctl enable node_exporter

【4】檢查

curl http://localhost:9100/metrics

2、配置Prometheus加載node_exporter

添加或修改配置 prometheus.yml

圖片

重新加載

systemctl restart prometheus
# 1、 kill方式
#kill -HUP pid
# 2、curl方式(推薦)
#curl -X POST http://IP/-/reload
# 【注意】需要在啟動(dòng)的命令行增加參數(shù):--web.enable-lifecycle
curl -X POST http://192.168.182.110:9090/-/reload
# 3、重啟(不推薦,重啟會(huì)導(dǎo)致所有的連接短暫性中斷)
# systemctl restart prometheus

3、配置監(jiān)控面板

地址:https://grafana.com/grafana/dashboards/?search=node_exporter

圖片

加載有兩種方式:離線(json文件)和在線(通過ID遠(yuǎn)程下載json)

圖片

圖片

圖片

導(dǎo)入之后就可以看到數(shù)據(jù)了。

圖片

2)mysql_exporter 監(jiān)控面板

下載地址:https://github.com/prometheus/mysqld_exporter

1、安裝node_exporter

【1】下載

# 注意MySQL對(duì)應(yīng)的版本
export VER=0.12.0
wget https://github.com/prometheus/mysqld_exporter/releases/download/v${VER}/mysqld_exporter-${VER}.linux-amd64.tar.gz
tar xvf mysqld_exporter-${VER}.linux-amd64.tar.gz
mv mysqld_exporter-${VER}.linux-amd64/mysqld_exporter /usr/local/bin/
chmod +x /usr/local/bin/mysqld_exporter

【2】配置數(shù)據(jù)庫憑證創(chuàng)建數(shù)據(jù)庫憑證文件,為用戶創(chuàng)建添加正確的用戶名和密碼并設(shè)置所有權(quán)限:

cat > /root/.my.cnf <<EOF
[client]
host=192.168.182.110
port=3306
user=mha
password=123456
EOF

【3】配置mysql_exporter.service啟動(dòng)

# 默認(rèn)端口:9104
cat > /etc/systemd/system/mysqld_exporter.service <<EOF
[Unit]
Descriptinotallow=Prometheus MySQL Exporter
After=network.target
#User=prometheus
#Group=prometheus

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/mysqld_exporter \
--config.my-cnf /root/.my.cnf \
--collect.global_status \
--collect.info_schema.innodb_metrics \
--collect.auto_increment.columns \
--collect.info_schema.processlist \
--collect.binlog_size \
--collect.info_schema.tablestats \
--collect.global_variables \
--collect.info_schema.query_response_time \
--collect.info_schema.userstats \
--collect.info_schema.tables \
--collect.perf_schema.tablelocks \
--collect.perf_schema.file_events \
--collect.perf_schema.eventswaits \
--collect.perf_schema.indexiowaits \
--collect.perf_schema.tableiowaits \
--collect.slave_status \
--web.listen-address=0.0.0.0:9104

[Install]
WantedBy=multi-user.target
EOF

【4】啟動(dòng)服務(wù)

systemctl daemon-reload
systemctl start mysqld_exporter
systemctl status mysqld_exporter
systemctl enable mysqld_exporter
# 啟動(dòng)并開機(jī)自啟,等價(jià)于上面兩行
# systemctl enable --now mysqld_exporter

圖片

【5】檢查

curl http://localhost:9104/metrics

圖片

2、配置Prometheus加載mysql_exporter

添加或修改配置 prometheus.yml

圖片

重新加載

systemctl restart prometheus
# 1、 kill方式
#kill -HUP pid
# 2、curl方式(推薦)
#curl -X POST http://IP/-/reload
# 【注意】需要在啟動(dòng)的命令行增加參數(shù):--web.enable-lifecycle
curl -X POST http://192.168.182.110:9090/-/reload
# 3、重啟(不推薦,重啟會(huì)導(dǎo)致所有的連接短暫性中斷)
# systemctl restart prometheus

圖片

3、配置監(jiān)控面板

地址:https://grafana.com/grafana/dashboards/7362-mysql-overview/

圖片

圖片

圖片

圖片

3)Grafana Query語法

4)自定義監(jiān)控面板

上面兩個(gè)是網(wǎng)上提供的面板,其實(shí)在生產(chǎn)環(huán)境中,很多時(shí)候是需要自定義監(jiān)控項(xiàng)的。

1、Prometheus數(shù)據(jù)源

【1】新建一個(gè)空面板

圖片

圖片

  • Panel:面板,實(shí)際上就是row展現(xiàn)信息的方式,支持表格(table),列表(alert list),熱圖(Heatmap)等多種方式,具體能夠去官網(wǎng)上查閱。
  • Row:行,DashBoard的基本組成單元,一個(gè)DashBoard能夠包含不少個(gè)row。一個(gè)row能夠展現(xiàn)一種信息或者多種信息的組合,好比系統(tǒng)內(nèi)存使用率,CPU五分鐘及十分鐘平均負(fù)載等。因此在一個(gè)DashBoard上能夠集中展現(xiàn)不少內(nèi)容。
【2】編寫PromQL表達(dá)式

選擇Prometheus數(shù)據(jù)源并且選擇Query? 就可以直接寫 PromQL。先在Prometheus上調(diào)試promql,在粘貼過來就行了。

# 內(nèi)存使用率
100 - ((node_memory_MemAvailable_bytes{instance="192.168.182.110:9100",job="prometheus"} * 100) / node_memory_MemTotal_bytes{instance="192.168.182.110:9100",job="prometheus"})

圖片

圖片

上面只顯示一個(gè)機(jī)器的內(nèi)存,顯然還不完善,如果想顯示多個(gè),可以這樣表達(dá):

# 把instance="192.168.182.110:9100"去掉
100 - ((node_memory_MemAvailable_bytes{job="prometheus"} * 100) / node_memory_MemTotal_bytes{job="prometheus"})

# 或者復(fù)制幾份
100 - ((node_memory_MemAvailable_bytes{instance="192.168.182.110:9100",job="prometheus"} * 100) / node_memory_MemTotal_bytes{instance="192.168.182.110:9100",job="prometheus"})
100 - ((node_memory_MemAvailable_bytes{instance="192.168.182.111:9100",job="prometheus"} * 100) / node_memory_MemTotal_bytes{instance="192.168.182.111:9100",job="prometheus"})
100 - ((node_memory_MemAvailable_bytes{instance="192.168.182.112:9100",job="prometheus"} * 100) / node_memory_MemTotal_bytes{instance="192.168.182.112:9100",job="prometheus"})
【3】變量使用

顯然上面的方式不太好,這里使用變量的方式動(dòng)態(tài)獲取實(shí)例個(gè)數(shù)。先來了解Grafana的幾個(gè)函數(shù):

函數(shù)

作用

label_values(label)

返回Promthues所有監(jiān)控指標(biāo)中,標(biāo)簽名為label的所有可選值。

label_values(metric, label)

返回Promthues所有監(jiān)控指標(biāo)metric中,標(biāo)簽名為label的所有可選值。

metrics(metric)

返回所有指標(biāo)名稱滿足metric定義正則表達(dá)式的指標(biāo)名稱

query_result(query)

返回prometheus查詢語句的查詢結(jié)果

參數(shù)解釋:1、instance

  • type?:變量類型,變量類型有多種,其中Query表示這個(gè)變量是一個(gè)查詢語句,type可以是Custom自定義,type也可以是Data source,Data source就表示該變量代表一個(gè)數(shù)據(jù)源,如果是datasource你可以用該變量修改整個(gè)DashBoard的數(shù)據(jù)源,變量類型還可以是時(shí)間間隔Interval等等。這里我們選擇Query。

2、General

  • Name:變量名,比如我這里取名為ip,到時(shí)候要使用這個(gè)變量名就用$ip來調(diào)用。
  • Label:是對(duì)應(yīng)下拉框的名稱,默認(rèn)就是變量名,選擇默認(rèn)即可。
  • Description:描述。

3、Query options

  • Data source:數(shù)據(jù)源,不用多說。
  • Query:查詢表達(dá)式,不同的數(shù)據(jù)源查詢表達(dá)式都不同。
  • Regex:正則表達(dá)式,用來對(duì)抓取到的數(shù)據(jù)進(jìn)行過濾,這里默認(rèn)不過濾。
  • Sort:排序,對(duì)下拉框中的變量值做排序,排序的方式挺多的,默認(rèn)是disable,表示查詢結(jié)果是怎樣下拉框就怎樣顯示。此處選disable。
  • Refresh?: 何時(shí)去更新變量的值,變量的值是通過查詢數(shù)據(jù)源獲取到的,但是數(shù)據(jù)源本身也會(huì)發(fā)生變化,所以要時(shí)不時(shí)的去更新變量的值,這樣數(shù)據(jù)源的改變才會(huì)在變量對(duì)應(yīng)的下拉框中顯示出來。Refresh有兩個(gè)值可以選擇。On Dashboard Load:在DashBoard加載時(shí)更新。On Time Range Change:在時(shí)間范圍變化時(shí)更新。此處,選擇On Dashboard Load,當(dāng)數(shù)據(jù)源發(fā)生更新是,刷新一下當(dāng)前DashBoard,變量的值也會(huì)跟著發(fā)生更新。

4、Selection Options

  • Multi-value:啟用這個(gè)功能,變量的值就可以選擇多個(gè),具體表現(xiàn)在變量對(duì)應(yīng)的下拉框中可以選多個(gè)值的組合。
  • Include All option:啟用這個(gè)功能,變量下拉框中就多了一個(gè)all選項(xiàng)。
  • Custom all value:啟用Include All option這個(gè)功能,才會(huì)出現(xiàn)Custom all value這個(gè)輸入框,表示給all這個(gè)選項(xiàng)自定義一個(gè)值,all這個(gè)選項(xiàng)默認(rèn)是所有值的組合,你也可以自定義。

【溫馨提示】雖然選擇組合值可以在一個(gè)panel里面查看多種監(jiān)控?cái)?shù)據(jù),但是由于不同監(jiān)控?cái)?shù)據(jù)的數(shù)值大小格式都可能不一樣,在一個(gè)圖形里面格式很難兼容,這樣就會(huì)出現(xiàn)問題,所以此處建議默認(rèn)都不選。

圖片

圖片

圖片

修改表達(dá)如下:

100 - ((node_memory_MemAvailable_bytes{instance="$instance",job="prometheus"} * 100) / node_memory_MemTotal_bytes{instance="$instance",job="prometheus"})

圖片

2、MySQL數(shù)據(jù)源

圖片

可以直接寫sql,直接以表格的形式展現(xiàn),非常的方便的,像在大數(shù)據(jù)領(lǐng)域sql是使用最頻繁的,所以使用這種直接sql的方式顯示圖表監(jiān)控情況還是非常方便的。

責(zé)任編輯:武曉燕 來源: 大數(shù)據(jù)與云原生技術(shù)分享
相關(guān)推薦

2022-12-13 09:01:50

云原生組件數(shù)據(jù)

2023-02-03 08:18:01

2023-03-06 07:19:50

2023-03-02 07:37:53

2023-03-03 07:54:21

2022-11-08 08:55:31

2023-03-07 07:56:37

Sqoopk8s底層

2022-10-14 07:42:50

LuceneHTTPWeb

2023-09-05 07:02:25

開源工具應(yīng)用程序

2022-11-06 21:31:11

云原生Sentinel集群模式

2023-03-01 07:42:12

HBase編排部署數(shù)據(jù)

2023-08-07 01:25:39

2023-09-03 16:41:07

2022-12-26 08:14:57

K8sCronhpa定時(shí)彈性

2010-07-01 14:52:42

Linux grep命

2020-12-24 07:29:32

云計(jì)算云基礎(chǔ)云原生DevOps

2021-11-15 08:00:00

云原生端點(diǎn)漏洞

2020-12-01 17:44:15

華為云Go語言云原生

2022-08-30 15:29:51

crictlnerdctl命令

2021-06-15 09:57:23

云計(jì)算云原生云開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)