日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

基于InfluxDB+Grafana打造大数据监控利器--转

發(fā)布時(shí)間:2025/4/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于InfluxDB+Grafana打造大数据监控利器--转 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這是一個(gè)大數(shù)據(jù)爆發(fā)的時(shí)代。面對(duì)信息的激流、多元化數(shù)據(jù)的涌現(xiàn),我們?cè)讷@取、存儲(chǔ)、傳輸、理解、分析、應(yīng)用、維護(hù)大數(shù)據(jù)時(shí),無(wú)疑需要一種便捷的信息交流通道,以便快速、有效、準(zhǔn)確地理解和駕馭這個(gè)過(guò)程。本文將通過(guò)時(shí)序數(shù)據(jù)庫(kù)(InfluxDB)+Grafana的實(shí)踐,來(lái)介紹如何將數(shù)據(jù)便捷地展現(xiàn)出來(lái)。

?

一、InfluxDB

?

開(kāi)源的分布式時(shí)序、時(shí)間和指標(biāo)數(shù)據(jù)庫(kù),使用Go語(yǔ)言編寫,無(wú)需外部依賴。其中,時(shí)間序列數(shù)據(jù)庫(kù)是數(shù)據(jù)格式里包含Timestamp字段的數(shù)據(jù),比如某一時(shí)間用戶上網(wǎng)流量、通話詳單等。但是,有什么數(shù)據(jù)不包含Timestamp呢?幾乎所有的數(shù)據(jù)都可以打上一個(gè)Timestamp字段。時(shí)間序列數(shù)據(jù)更重要的一個(gè)屬性是如何去查詢它,包括數(shù)據(jù)的過(guò)濾、計(jì)算等。

?

它有三大特性:

  • 時(shí)序性(Time Series):與時(shí)間相關(guān)的函數(shù)的靈活使用(例如最大、最小、求和等);

  • 度量(Metrics):對(duì)實(shí)時(shí)大量數(shù)據(jù)進(jìn)行計(jì)算;

  • 事件(Event):支持任意的事件數(shù)據(jù),換句話說(shuō),任意事件的數(shù)據(jù)我們都可以做操作。

?

個(gè)人認(rèn)為InfluxDB的幾個(gè)優(yōu)點(diǎn):

  • 無(wú)特殊依賴,幾乎開(kāi)箱即用(如ElasticSearch需要Java)

  • 自帶數(shù)據(jù)過(guò)期功能;

  • 自帶權(quán)限管理,精細(xì)到“表”級(jí)別;

  • 原生的HTTP支持,內(nèi)置HTTP API

  • 強(qiáng)大的類SQL語(yǔ)法,支持min, max, sum, count, mean, median 等一系列函數(shù),方便統(tǒng)計(jì)。

  • 自帶管理界面(如下圖),免插件配置。

?

?

InfluxDB基本概念

?

1、與傳統(tǒng)數(shù)據(jù)庫(kù)中的名詞做比較

?

InfluxDB中的名詞

傳統(tǒng)數(shù)據(jù)庫(kù)中的概念

database

數(shù)據(jù)庫(kù)

measurement

數(shù)據(jù)庫(kù)中的表

points

表里面的一行數(shù)據(jù)

?

2、InfluxDB中特有的概念

?

1)Point

?

Point由時(shí)間戳(time)、數(shù)據(jù)(field)、標(biāo)簽(tags)組成。

?

Point相當(dāng)于傳統(tǒng)數(shù)據(jù)庫(kù)里的一行數(shù)據(jù),如下表所示:

?

Point屬性

傳統(tǒng)數(shù)據(jù)庫(kù)中的概念

time

每個(gè)數(shù)據(jù)記錄時(shí)間,是數(shù)據(jù)庫(kù)中的主索引(會(huì)自動(dòng)生成)

fields

各種記錄值(沒(méi)有索引的屬性)也就是記錄的值:溫度, ? 濕度

tags

各種有索引的屬性:地區(qū),海拔

?

2)series

?

所有在數(shù)據(jù)庫(kù)中的數(shù)據(jù),都需要通過(guò)圖表來(lái)展示,而這個(gè)series表示這個(gè)表里面的數(shù)據(jù),可以在圖表上畫成幾條線:通過(guò)tags排列組合算出來(lái)。

?

如下所示:

?

?

3、InfluxDB相關(guān)API

?

InfluxDB 支持http api?方式寫入數(shù)據(jù)。使用curl這個(gè)工具來(lái)模擬HTTP 請(qǐng)求,在實(shí)際使用中,可以將請(qǐng)求寫入代碼中,通過(guò)其他編程語(yǔ)言來(lái)模擬HTTP請(qǐng)求。

?

例如:通過(guò)HTTP API向Internet_users這張表添加數(shù)據(jù)

curl -v –XPOST "http:// localhost:8086/write?db=Internet&u=user&p=password" --data-binary "Internet_users,users=小區(qū)上網(wǎng)用戶,mobile=移動(dòng)端上網(wǎng)用戶,users_num=56,

mobile_num=21 1493571600000000000"

?

?

說(shuō)明:

  • db=Interne是指使用Interne數(shù)據(jù)庫(kù);

  • --data-binary后面是需插入數(shù)據(jù),其中:

  • Internet_users:表名(measurement)

  • tag字段:users和mobile,值分別為:小區(qū)上網(wǎng)用和移動(dòng)端上網(wǎng)用戶

  • field key字段:users_num和mobile_num,值分別為56和21

  • 時(shí)間戳(timestamp):1493571600000000000

  • ?

    這樣,就向Interne數(shù)據(jù)庫(kù)的Internet_users表中插入了一條數(shù)據(jù)。

    ?

    需要注意,DB參數(shù)必須指定一個(gè)數(shù)據(jù)庫(kù)中已經(jīng)存在的數(shù)據(jù)庫(kù)名,數(shù)據(jù)體的格式遵從InfluxDB規(guī)定格式,首先是表名,后面是tags,然后是field,最后是時(shí)間戳。tags、field和時(shí)間戳三者之間以空格相分隔。

    ?

    InfluxDB 數(shù)據(jù)可視化工具

    ?

    InfluxDB 用于存儲(chǔ)基于時(shí)間的數(shù)據(jù),比如監(jiān)控?cái)?shù)據(jù),因?yàn)镮nfluxDB本身提供了Http API,所以可以使用InfluxDB很方便的搭建了個(gè)監(jiān)控?cái)?shù)據(jù)存儲(chǔ)中心。對(duì)于InfluxDB中的數(shù)據(jù)展示,這里不得不提數(shù)據(jù)展示利器-Grafana。

    ?

    二、Grafana

    ?

    一個(gè)純粹的HTML/JS應(yīng)用,其功能非常強(qiáng)大,訪問(wèn)InfluxDB時(shí)不會(huì)有跨域訪問(wèn)的限制。只要配置好數(shù)據(jù)源為InfluxDB之后就可以,剩下的工作就是配置圖表。

    ?

    配置數(shù)據(jù)源:

    ?

    ?

    設(shè)置查詢條件:

    ?

    ?

    展示數(shù)據(jù):

    ?

    ?

    Grafana告警功能

    ?

    沒(méi)有比”可視化“更好的一個(gè)詞能來(lái)概括運(yùn)維的本質(zhì),我想Grafana也是深知廣大運(yùn)維人員的痛處:如何用可視化數(shù)據(jù)說(shuō)話? 所以Grafana在 4.0以后版本:新增報(bào)警功能(Alerting),根據(jù)官網(wǎng)介紹,Grafana報(bào)警方式也有很多種,常見(jiàn)的Email、Slack即時(shí)通訊、webhook等。

    ?

    下圖為目前集群Grafana監(jiān)控界面,主要包含對(duì)集群主機(jī)CPU、內(nèi)存配合Grafana的閾值預(yù)警功能:

    ?

    主機(jī)內(nèi)存和CPU使用率監(jiān)控:

    ?

    ?

    通過(guò)規(guī)則配置,可配置相關(guān)監(jiān)控規(guī)則,包含相關(guān)邏輯與時(shí)間跨度以及監(jiān)控告警條件。目前,僅支持一種條件類型—— Query 。可以指定Query字母,時(shí)間跨度和聚合函數(shù)。字母指定你在Metrics tab里設(shè)置的聚合函數(shù)。Query的結(jié)果和聚合函數(shù)將會(huì)是一個(gè)單一的值,用于后面判斷是否超過(guò)了閾值。

    ?

    規(guī)則配置完成后可在報(bào)警列表里統(tǒng)一查看報(bào)表狀態(tài):

    ?

    ?

    三、實(shí)踐案例

    ?

    1、數(shù)據(jù)采集規(guī)劃

    ?

    目前采集數(shù)據(jù)主要來(lái)源于Hadoop的jmx監(jiān)控,獲取相關(guān)Cluster、Queue等Metrics信息以及部分Oracle日志信息,通過(guò)相關(guān)接口寫入InfluxDB數(shù)據(jù)庫(kù),根據(jù)來(lái)源及日志信息從數(shù)據(jù)庫(kù)層進(jìn)行獨(dú)立管理設(shè)計(jì),以便后續(xù)維護(hù)。

    ?

    2、InfluxDB數(shù)據(jù)庫(kù)權(quán)限配置

    ?

    InfluxDB自帶權(quán)限控制,權(quán)限分別為:

    • ADMIN:所有者

    • READ :只讀 (精確到庫(kù)與表)

    • WRITE:只寫 (精確到庫(kù)與表)

    • ALL (READ 和 WRITE ) :讀和寫

    ?

    鑒于源數(shù)據(jù)流,目前只會(huì)用到三個(gè)角色,對(duì)于這三個(gè)角色分工如下:

    • ADMIN:維護(hù)人員

    • READ:數(shù)據(jù)展示與后臺(tái)查詢(Grafana上設(shè)置的Influnxdb為只讀)

    • WRITE:外部程序(插入數(shù)據(jù)至Influnxdb)

    ?

    配置數(shù)據(jù)庫(kù)權(quán)限需開(kāi)啟相關(guān)認(rèn)證,操作如下:

    vi /etc/InfluxDB/InfluxDB.conf

    ?

    把 [http] 標(biāo)簽下的 auth-enabled 選項(xiàng)值改為 true

    [http]?

    enabled = true?

    bind-address = ":8086"?

    auth-enabled = true

    log-enabled = true?

    write-tracing = false?

    pprof-enabled = false?

    https-enabled = false?

    https-certificate = "/etc/ssl/InfluxDB.pem"

    ?

    3、Influnxdb和Grafana高可用配置

    ?

    本次實(shí)踐為了避免因主機(jī)通斷而導(dǎo)致Influnxdb和Grafana服務(wù)無(wú)法使用的情況,所以在部署應(yīng)用時(shí)用了2臺(tái)虛擬機(jī),2臺(tái)虛擬機(jī)安裝的服務(wù)如下:

    ?

    主機(jī)

    服務(wù)

    Localhost-01

    InfluxDB+Grafana

    Localhost-02

    InfluxDB+Grafana

    ?

    在系統(tǒng)層方面又做了如下設(shè)置:

    ?

    • 主機(jī)域名設(shè)置

    ?

    將兩臺(tái)主機(jī)設(shè)置為主備模式,共用同一個(gè)域名http://xxx.xxx.com

    ?

    域名

    主機(jī)

    主備模式

    http://xxx.xxx.com

    Localhost-01

    http://xxx.xxx.com

    Localhost-02

    ?

    • 負(fù)載均衡設(shè)置

    ?

    負(fù)載均衡設(shè)置即VIP主用與容災(zāi)端域名+端口與的Localhost-01~02主備節(jié)點(diǎn)域名+端口映射。大家都知道InfluxDB和Grafana端口如下圖展示:

    ?

    服務(wù)

    端口

    InfluxDB

    8083

    InfluxDB

    8086

    InfluxDB

    8088

    Grafana

    3000

    ?

    所以映射關(guān)系可設(shè)計(jì)成這樣:

    • VIP:主用ip、容災(zāi)ip

    • VPORT:8083

    • 均衡算法:pi 32 rr

    • 健康檢查:tcp

    • 實(shí)例IP及端口:

      Localhost-01的ip 8083

      Localhost-02的ip 8083

    ?

    其它端口均按此設(shè)置,負(fù)載均衡設(shè)置完成后,這里不得不提Grafana配置,如果要做到可視化展示的高可用,那么Grafana配置數(shù)據(jù)源就必須采用域名+端口的方式:

    ?

    ?

    至此數(shù)據(jù)安全設(shè)置完畢。

    ?

    4、Grafana界面配置

    ?

    完成以上環(huán)境配置,根據(jù)相關(guān)需求進(jìn)行Grafana界面配置以及監(jiān)控配置,具體操作可以參照官網(wǎng)操作教程,這里不再贅述。

    ?

    HDFS目錄配額監(jiān)控:

    ?

    ?

    HDFS空間使用率監(jiān)控:

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/7795263.html

    總結(jié)

    以上是生活随笔為你收集整理的基于InfluxDB+Grafana打造大数据监控利器--转的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。