首先一个完整的监控肯定会包含三个部分: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.comdone
数据存储(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