Grafana展示DNS解析延时

  首先一个完整的监控肯定会包含三个部分: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

原文地址:https://www.cnblogs.com/Cherry-Linux/p/9430065.html