1. 程式人生 > >淺談Telegraf+InfluxDB+Grafana快速搭建簡易實時監控系統

淺談Telegraf+InfluxDB+Grafana快速搭建簡易實時監控系統

監控從來都是一個很寬泛的問題,任何可能出問題的地方都需要加入監控。全量監控的確是監控的終極目標。在搭建一套監控系統前,需要結合實際的系統情況和發展趨勢進行考量。在作者看來,一套監控系統應主要由資料採集、資料儲存、資料展示三部分構成。作者經過大量閱讀相關資料後,最終選擇了Telegraf+InfluxDB+Grafana這套方案。接下來,作者就對這套監控系統方案進行簡要的介紹。

  • Telegraf+InfluxDB+Grafana相關介紹

講這套方案前,先簡要介紹一下InfluxData這家公司。InfluxData是一家從事物聯網裝置資料捕捉、分析的大資料公司。InfluxDB是InfluxData的核心產品。InfluxDB是一個開源分散式時序、時間和指標資料庫,使用Go語言編寫,無需外部依賴。其設計目標是實現分散式和水平伸縮擴充套件。目前已經有超過40000個獨立網站在使用InfluxDB,其中包括IBM、CISCO、ebay、NORDSTORM、Mozilla等知名公司。通過InfluxData提供的時間序列平臺系統框圖,我們可以對該平臺的功能有一個概覽,如圖-1所示。

圖-1 InfluxData提供的時間序列平臺元件圖

該平臺可以為以下需求提供服務:

圖-2 時間序列平臺服務物件

該方案中,作者所採用的是該時間序列平臺中的資料採集(Telegraf)和資料儲存(InfluxDB)部分。資料展示部分,由於InfluxData公司的Chronograf為新推出產品,相較於目前廣泛使用的Grafana還不夠成熟,因此暫不考慮,可作為該方案中資料展示部分的備選方案。下面作者就所採用的方案進行分塊講解:

Telegraf是一個用Go語言編寫的代理程式,可採集系統和服務的統計資料,並寫入InfluxDB資料庫。Telegraf具有記憶體佔用小的特點,通過外掛系統開發人員可輕鬆新增支援其他服務的擴充套件。目前,最新版Telegraf支援的外掛主要有:

  • Apache
  • DNS query time
  • Docker
  • http Listener
  • MySQL
  • Network Response
  • Tomcat
  • Zookeeper
  • TCP Listener

目前Telegraf尚不支援Oracle資料庫統計資料的實時監控。

InfluxDB 是一個開源分散式時序、事件和指標資料庫。使用 Go 語言編寫,無需外部依賴。其設計目標是實現分散式和水平伸縮擴充套件。

圖-3 時間序列資料庫效能排名

圖-3是2016年2月份DB-Engines給出的時間序列資料庫效能排名。可以看到InfluxDB是所有時間序列資料庫中綜合表現最好的。

InfluxDB有三大特性:

1. Time Series (時間序列):可以使用與時間有關的相關函式(如最大,最小,求和等)

2. Metrics(度量):你可以實時對大量資料進行計算

3. Eevents(事件):它支援任意的事件資料

特點

Schemaless(無結構),可以是任意數量的列

Scalable(可擴充套件):min, max, sum, count, mean, median 一系列函式,方便統計

Native HTTP API, 內建http支援,使用http讀寫

Powerful Query Language 類似sql

自帶壓力測試工具等,功能強大

Grafana是一個純html/js的web應用,是一個開源儀表盤工具,訪問InfluxDB時不會存在跨域訪問的限制,只要配置好資料來源後,即可展示監控資料。

特點:

1.      豐富的資料來源介面,支援InfluxDB、MySQL、ElasticSearch、PostgreSQL等多資料來源

2.      豐富的API介面,方便自動化程式呼叫

3.      監控dashboard匯入匯出,製作好模板後匯入後修改引數即可實現實時監控

4.      支援複雜的告警規則及郵件告警

  • Telegraf+InfluxDB+Grafana安裝及配置

在介紹了相關的元件後,下面我們就進入到動手操作的環節,也是乾貨部分。

(1)   InfluxDB的安裝及配置

InfluxDB作為資料儲存模組,可直接安裝至被監控的目標主機,也可部署在獨立的伺服器上。目前,InfluxDB的叢集模式是收費的,作者只簡單通過單機模式進行展示。作者所使用的目標主機作業系統版本為RedHat Enterprise Linux 6.4。截止至目前,InfluxDB的最新版本為v1.5.2。

  • 下載方式:

1.如果伺服器無法連線外網,可以到influxdata的官網進行相關下載,下載的網址是https://portal.influxdata.com/downloads,然後通過ftp工具上傳至伺服器進行安裝

  • 安裝InfluxDB

sudo yum localinstall influxdb-1.5.2.x86_64.rpm

  • 啟動InfluxDB服務、新增開機啟動

service influxdb start

systemctl enable influxdb

service influxdb status

  • 建立資料庫

1.  進入influxDB

influx

2.  展示使用者

> show users

3.  建立使用者

> create user “pcbank”with password ‘pcbank’

4.  展示資料庫、

> show databases

5.  新建資料庫

> create database pcbankDB

  • 檢視influxdb當前狀態資訊

influxd

  • 檢視influxdb目前配置

influxd config

其他influxdb相關基本操作可參考文末相關連結

(2)   Telegraf的安裝及配置

Telegraf作為資料採集模組,需要安裝至被監控的目標主機上。作者所使用的目標主機作業系統版本為RedHat Enterprise Linux 6.4。截止至目前,telegraf的最新版本為v1.6.0。

  • 下載方式:

1.如果伺服器無法連線外網,可以到influxdata的官網進行相關下載,下載的網址是https://portal.influxdata.com/downloads,然後通過ftp工具上傳至伺服器進行安裝

  • 安裝telegraf

sudo yum localinstalltelegraf-1.6.0-1.x86_64.rpm

  • 配置telegraf

Telegraf非常方便的一點就在於其配置驅動的特點。通過直接修改.conf配置檔案即可實時將資料寫入資料來源。

首先,我們需要配置telegraf需要寫入的資料來源,我們選擇本機的influxdb作為資料來源寫入,配置如下:

其次,我們需要配置一些基本的監控項,具體配置如下:

l  啟動telegraf服務、新增開機啟動

systemctl start telegraf.service

service telegraf status

systemctl enable telegraf.service

(3)   Grafana的安裝及配置

Grafana作為前端展示及監控告警工具,可以安裝在和influxdb有網路連線的任意主機上。截止至目前,Grafana的最新版本為5.0.4。

  • 下載方式

2.      對於Redhat或Centos作業系統的主機:

  • 安裝Grafana

sudo yum localinstallgrafana-5.0.4-1.x86_64.rpm

  • 配置Grafana告警郵箱

cd /etc/grafana/

vi grafana.ini

/smtp找到smtp的配置

#################################### SMTP /Emailing ##########################

[smtp]

enabled = true

host = smtp.163.com:25

user = [email protected]

# If the password contains # or ; you have towrap it with trippel quotes. Ex """#password;"""

password = 987654321

;cert_file =

;key_file =

skip_verify = true

from_address = [email protected]

from_name = Grafana Alert

# EHLO identity in SMTP dialog (defaults toinstance_name)

;ehlo_identity = dashboard.example.com

[emails]

;welcome_email_on_sign_up = false

  • 啟動服務、新增開機啟動

systemctl daemon-reload

systemctl start grafana-server

systemctl status grafana-server

systemctl enablegrafana-server.service

  • Grafana使用及配置

進入後,首先選擇Data Sources,新增需要的資料來源,如下圖所示。

然後進入dashboard頁面,建立儀表盤。我們可以通過訪問https://grafana.com/dashboards來檢視已經由其他使用者共享的儀表盤,選取合適的使用,縮短上手時間。在這裡,作者選取的是https://grafana.com/dashboards/1443這個儀表盤,該儀表盤內已經基本涵蓋一個系統需要監控的相關引數。其telegraf相關配置如下:

[[inputs.net]]

#   ##By default, telegraf gathers stats from any up interface (excluding loopback)

#   ##Setting interfaces will tell it to gather these explicit interfaces,

#   ##regardless of status.

#   ##

interfaces = ["eth0,eth1,lo"]

[[inputs.cpu]]

  ##Whether to report per-cpu stats or not

 percpu = true

  ##Whether to report total system cpu stats or not

 totalcpu = true

  ## Iftrue, collect raw CPU time metrics.

 collect_cpu_time = false

# Read metrics about disk usage by mountpoint

[[inputs.disk]]

  ## Bydefault, telegraf gather stats for all mountpoints.

  ##Setting mountpoints will restrict the stats to the specified mountpoints.

  #mount_points = ["/"]

  ##Ignore some mountpoints by filesystem type. For example (dev)tmpfs (usually

  ##present on /run, /var/run, /dev/shm or /dev).

 ignore_fs = ["tmpfs", "devtmpfs"]

# Read metrics about disk IO by device

[[inputs.diskio]]

  ## Bydefault, telegraf will gather stats for all devices including

  ##disk partitions.

  ##Setting devices will restrict the stats to the specified devices.

  #devices = ["sda", "sdb"]

  ##Uncomment the following line if you need disk serial numbers.

  #skip_serial_number = false

# Get kernel statistics from /proc/stat

[[inputs.kernel]]

  # noconfiguration

# Read metrics about memory usage

[[inputs.mem]]

  # noconfiguration

# Get the number of processes and group themby status

[[inputs.processes]]

  # noconfiguration

# Read metrics about swap memory usage

[[inputs.swap]]

[[inputs.system]]

[[inputs.netstat]]

通過匯入該儀表盤進入grafana後,選擇我們需要的資料來源,最終的監控儀表盤的效果如下:

通過對任意監控項進行編輯可以增加告警規則,如下圖所示:

最終,超出閾值會發送告警郵件,如下如所示:

  • 總結

以上內容只是作者基於自己的認知所給出的方案,由於時間緊迫,不足之處在所難免,希望各位讀者能多提意見和建議,相互交流才能成長。作者也希望通過方案分享這樣的形式可以幫助到更多有需要的人。

最後,附上作者所參考的文章連結

開源社群中國

https://my.oschina.net/xxbAndy/blog?&search=telegraf

influxdb設定開啟https

https://docs.influxdata.com/influxdb/v1.4/administration/https_setup/#setup-https-with-a-self-signed-certificate

基於Telegraf和InfluxDB的url監控方案

https://www.annhe.net/article-3605.html

利用Metrics+influxdb+grafana構建監控平臺

https://www.jianshu.com/p/fadcf4d92b0e

Metrics —— JVM上的實時監控類庫

https://www.jianshu.com/p/e4f70ddbc287

JAVAMetrics度量工具 - Metrics Core 翻譯

http://blog.csdn.net/scutshuxue/article/details/8351810

metrics小常識

http://blog.csdn.net/tracymkgld/article/details/51899721

開源還是商用?十大雲運維監控工具橫評

http://www.oschina.net/news/67525/monitoring-tools

簡析運維監控系統及Open-Falcon

http://blog.csdn.net/puma_dong/article/details/51895063

NetkillerLinux Monitoring 手札

http://netkiller.github.io/monitoring/index.html

小米運維—網際網路企業級監控系統實踐

https://www.jianshu.com/p/b2f77285266c

grafana+influxdb+telegraf監控伺服器cpu,記憶體和硬碟

https://www.jianshu.com/p/dfd329d30891

新一代監控平臺整合telegraf、influxdb、garafana

http://blog.51cto.com/michaelkang/1759877

grafana +influxdb + telegraf , 構建效能監控平臺

https://www.cnblogs.com/Scissors/p/5977670.html

快速部署Telegraf & Influxdb

https://www.cnblogs.com/deykenlee/p/7565647.html

Grafana搭建-優化zabbix圖形顯示

http://blog.51cto.com/ixhao/1847284

[開發方案] 看大眾點評如何通過實時監控系統CAT打造7*24服務

http://udn.yyuap.com/thread-24395-1-1.html

Telegraf+ InfluxDB收集系統性能,Grafana圖形展示

http://blog.csdn.net/qq942477618/article/details/59579511

IoT實時資料視覺化方案:Grafana+InfluxDB+Telegraf+MQTT協議+Windows 10

https://segmentfault.com/a/1190000012514865

Docker監控方案(TIG)的研究與實踐之Telegraf

https://www.jianshu.com/p/5e3ca9096caf

如何看待influxdb叢集功能不再開源?

https://www.zhihu.com/question/42150020

Windows下本機簡易監控系統搭建(Telegraf+Influxdb+Grafana)

https://www.cnblogs.com/liugh/p/6683488.html

telegraf+influxdb+grafana+springboot構建監控平臺

http://blog.csdn.net/soongp/article/details/66974529

spring對接InfluxDB(一)--建立資料庫和資料寫入

http://blog.csdn.net/qq_35981283/article/details/75408859

StatsDMetric

https://www.jianshu.com/p/2b0aa5898dd7

使用 StatsD + Grafana + InfluxDB 搭建 Node.js 監控系統

https://www.v2ex.com/t/328124

telegraf+influxdb+grafana+springboot構建監控平臺

http://blog.csdn.net/soongp/article/details/66974529

時序資料庫技術體系 –初識InfluxDB

http://hbasefly.com/2017/12/08/influxdb-1/

小米開源專案:Open-Falcon|網際網路企業級監控系統

http://open-falcon.com/community/

開源監控利器grafana

https://www.cnblogs.com/txwsqk/p/3974915.html

Grafana安裝配置介紹

http://www.ywnds.com/?p=5903

InfluxDB系列學習教程目錄

https://www.linuxdaxue.com/influxdb-study-series-manual.html

開源監控系統中 Zabbix 和 Nagios 哪個更好?

https://www.zhihu.com/question/19973178

MeasureAnything, Measure Everything

https://codeascraft.com/2011/02/15/measure-anything-measure-everything/

使用Prometheus+Grafana監控MySQL實踐

http://www.ywnds.com/?p=9656

java服務端監控平臺設計

http://blog.csdn.net/rosanu_blog/article/details/50585162

目前流行的開源監控框架有哪些

http://blog.csdn.net/moonpure/article/details/78294835


相關推薦

Telegraf+InfluxDB+Grafana快速搭建簡易實時監控系統

監控從來都是一個很寬泛的問題,任何可能出問題的地方都需要加入監控。全量監控的確是監控的終極目標。在搭建一套監控系統前,需要結合實際的系統情況和發展趨勢進行考量。在作者看來,一套監控系統應主要由資料採集、資料儲存、資料展示三部分構成。作者經過大量閱讀相關資料後,最終選擇了Tel

通過 Telegraf + InfluxDB + Grafana 快速搭建監控體系的詳細步驟

第一部分 Telegraf 部署和配置 Telegraf 是實現 資料採集 的工具。Telegraf 具有記憶體佔用小的特點,通過外掛系統開發人員可輕鬆新增支援其他服務的擴充套件。 在平臺監控系統中,可以使用 Telegraf 採集多種元件的執行資訊,而不需要自己手寫指令碼定時採集,大大降低資料獲取的難度

InfluxDB + Grafana 快速搭建自己的 NewRelic,分析應用執行情況

NewRelic 估計很多人都用過,但是這貨非常貴,貴的一般人買不起,尤其是個人專案。 可咱也要效能指標分析啊!那來自己搭建一個 你需要三個工具: InfluxDB - Go 寫的一個 Time series (不知道怎麼翻譯) 資料庫,用於儲存指標、事

telegraf+influxdb+grafana開源監控架構

word wap service res -s kconfig 開監控 block get telegraf+influxdb+grafana開源監控架構: telegraf監控項很全,不需要額外安裝插件,很強大 telegraf: wget https://dl.infl

Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 構建監控平臺

nts ade 端口 windows sed pan nes 程序 依賴項 完成一套精準,漂亮圖形化監控系統從這裏開始第一步 Telegraf是收集和報告指標和數據的代理   它是TICK堆棧的一部分,是一個用於收集和報告指標的插件驅動的服務器代理。Telegraf擁

皇冠體育源碼搭建接水修復 PHP代碼優化最佳實踐

php教程編寫好的PHP代碼是創建快速穩定Web應用的關鍵一步。從一開始就遵循一些最佳實踐技巧將節省後期填坑的時間。 盡可能的使用PHP的內置方法[皇冠體育源碼搭建bbs.yasewl.com請添加鏈接描述只要可以盡可能的使用PHP的內置方法,而不是自己編寫相同功能的方法。花點時間去熟悉和學習PHP的內置

python快速搭建簡易的FTP服務器

abc mark hang ces 一個 用戶 但是 密碼 完成 上回說到,使用python搭建一個簡易的web下載服務器,但是這個簡易的服務器客戶端不能夠上傳文件。這次來搭建一個簡易的ftp服務器,來提供文件的下載和上傳功能。 一、首先我們來安裝提供服務的pyftpdli

Appium自動化—iOS自動化測試環境搭建

在日常的測試工作中,我們會發現有些測試工作重複率極高,測試人員需要花費大量的時間進行這些重複性的測試,浪費了大量的人力與時間。若能夠將常用的測試場景進行自動化,那必定能節省許多的人力與時間。作為一個初次步入測試行業的小白,也十分渴望能夠使用自動化來分擔測試工作。上網搜尋了很多的資料,瞭解了很多工

效能監控Telegraf+InfluxDB+Grafana NVIDIA GPU實時監控

文章目錄 什麼是GPU? 預備知識 window下如何使用NVIDIA-smi? Telegraf+InfluxDB+Grafana監控NVIDIA GPU 配置外掛 採集度量

效能監控Telegraf+InfluxDB+Grafana伺服器實時監控

文章目錄 引言 目標 解決方案 Telegraf 整體設計 Telegraf&InfluxDB整合 下載安裝 建立influxDB使用者和資料庫

數科軟文網如何讓網站快速收錄

經常有站長反映自己寫的東西放到網站上,卻遲遲不見收錄,這是為什麼呢?其實很多時候他們寫的文章也不錯,接近原創。其實網站內容原創只是其中的一個因素,想要好的收錄需要網站各個方面都要做好。在這裡,數科軟文平臺就總結一下讓搜尋引擎快速收錄網站內容的應注意的幾點經驗,希

Grafana快速搭建過程

官方是怎麼解釋Grafana的:     grafana是用於視覺化大型測量資料的開源程式,他提供了強大和優雅的方式去建立、共享、瀏覽資料。dashboard中顯示了你不同metric資料來源中的資料。     grafana最常用於因特網基礎設施和應用分析,但在其他

深圳SEO優化公司新網站如何快速收錄技巧

沒有 容易 不容易 企業 提交百度 困難 這樣的 網絡推廣 怎麽 讓新網站如何快速收錄的方法教程較為簡單,實施較為復雜。簡單之處在於做好內容與外鏈(推薦友情鏈接),做好基礎的url推送以及站內的優化設置即可。復雜在於幾句簡單的話語,在實施的時候困難不小,新站不易做友鏈,高質

跨平臺框架Flutter的搭建與執行

作者:個推iOS開發工程師 伊澤瑞爾 Flutter是Google推出的跨平臺的解決方案,用以幫助開發者在 Android 和 i

Telegraf+Influxdb+Grafana自動化運維監控

***概述:Telegraf收集資訊,influxdb時序資料庫儲存資料,grafana平臺展示資料,並進行監控告警,組成一個自動化運維監控平臺。*** ### 一、influxdb ​ InfluxDB是一個由InfluxData開發的開源時序型資料。它由Go寫成,著力於高效能地查詢與儲存時序型資料。

1.Telegraf+Influxdb+Grafana自動化運維監控

***概述:Telegraf收集資訊,influxdb時序資料庫儲存資料,grafana平臺展示資料,並進行監控告警,組成一個自動化運維監控平臺。*** ### 一、influxdb ​ InfluxDB是一個由InfluxData開發的開源時序型資料。它由Go寫成,著力於高效能地查詢與儲存時序型資料。

建立Heapster Influxdb Grafana集群性能監控平臺

color targe variable alt select external nmb comment space 依賴於kubenets dns服務地址:https://note.youdao.com/web/#/file/WEB42cf75c02ae113136ff6

linux6:以systemd為例,初探系統服務管理

假如你用的不是很老版本的unix系統,那麼你一定對systemd不甚陌生。 檢視服務:systemctl status servicename 停止服務:systemctl stop  servicename 這些常見操作,基本大家都有涉及。 那麼,systemd到底是何方神聖呢?

使用docker快速搭建Permeate滲透測試系統實踐

一、背景 筆者最近在做一場Web安全培訓,其中需要搭建一套安全測試環境;在挑選滲透測試系統的時候發現permeate滲透測試系統比較滿足需求,便選擇了此係統;為了簡化這個步驟,筆者將系統直接封裝到了docker當中,同時編寫了一套啟動文件,希望到時候給學員和讀者參考。 二、操作實踐 資料庫搭建

使用滴滴雲快速搭建 Open-Falcon 監控平臺

最近筆者在滴滴雲上申請了一臺免費的伺服器使用。 Open-Falcon 是非常優秀的一款開源監控系統,正好最近想弄一個測試環境嘗試下 Open-Falcon,把此次搭建的過程分享給大家。 準備滴滴雲伺服器 首先登陸滴滴雲,申請一臺滴滴雲伺服器。 具體的步驟就不講了,大家可以參