Grafana展示DNS解析延時

Federico發表於2018-08-06

  首先一個完整的監控肯定會包含三個部分:1.資料收集部分、2.資料儲存部分、3.資料展示部分,今天我也是從這三個方面來實現這個監控的。

資料收集(SHELL 指令碼)

  沒有想到比較好的方法來採集資料,就用的最原始的辦法用指令碼來採集資料,當然指令碼中也有點坑需要我們注意:

#!/bin/bash
# 定義一個函式,用來採集DNS解析的延時資料,並將資料寫入influxdb資料庫。
Domain()
{
    # 使用變數承接DNS解析延時
    delay=`dig +time=2 @DNSIP $1 |grep Query|cut -f4 -d" "`
    # 將延時及域名插入influxdb資料庫
    influx -database DNS --execute 'insert DNSMaster,domain='$1' value='$delay''
}
# 死迴圈實時提取延時資料
while :
do
    Domain baidu.com
    Domain nginx.com
    Domain apache.com
done

資料儲存(Influxdb 資料庫)

1.安裝啟動Influxdb資料庫。
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.0.x86_64.rpm
rpm -ivh influxdb-1.6.0.x86_64.rpm
service influxdb start
2.Influxdb資料庫的基本使用。

#建立資料庫
CREATE DATABASE test
#檢視資料庫
SHOW DATABASES
#使用資料庫
USE test
#檢視資料表
SHOW MEASUREMENT
#插入資料
#命令列模式
insert tablename,domain=baidu value=10
#HTTP介面模式
curl -i -XPOST 'http://localhost:8086/write?db=test' --data-binary 'tablename,domain=baidu value=10'
influxdb中的名詞 傳統資料庫中的概念
database 資料庫
measurement 資料庫中的表
points 表裡的一行資料

  Influxdb是一個時序資料庫,我們選擇使用這個資料庫主要是因為操作起來比較簡單,時序資料庫我們簡單的可以理解為它會為我們的欄位自動補全時間戳,也就是我展示資料的時候不需要考慮時間戳的問題,理解和操作起來相當簡單。
## 資料展示(Grafana)
1.安裝。
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.2-1.x86_64.rpm
yum localinstall grafana-5.2.2-1.x86_64.rpm
systemctl start grafana
2.配置Grafana展示influxdb資料庫資料。
  如何配置我在以前的一篇文章中已經寫過了,這裡就不在過多描述了,如果你不知道,可以去這裡看https://www.cnblogs.com/Cherry-Linux/p/9144650.html
Grafana展示DNS解析延時

相關文章