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
作者:Federico Sun
博客地址:https://www.cnblogs.com/Cherry-Linux
座右铭:人总是这么痛苦吗?还是只有小时候这样?总是如此。
博客地址:https://www.cnblogs.com/Cherry-Linux
座右铭:人总是这么痛苦吗?还是只有小时候这样?总是如此。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验