WIndows下使用Grafana+InfluxDB打造监控系统
前言
对于一个运维DBA来说,了解数据库的TPS、QPS很有必要(QPS:每秒查询数,即对数据库每秒的DML的操作数;TPS:每秒事物处理,即对数据库每秒DDL操作数),通过了解他们,可以掌握一个实例的基本工作运行状态。此外,还有系统地运行与性能信息,如CPU和内存配置信息等等。目前对这些数据进行可视化的方法有很多,其中一种就是本文将要介绍的通过时序数据库(influxdb)+grafana+python脚本+......来构建监控系统。
注:本文监控的数据不仅限于TPS、QPS、CPU等。下面开始搭建环境,记录实践过程!
1. 安装Grafana
进入Grafana Documentation Home,按照文档说明进行安装:

The Grafana backend includes Sqlite3 which requires GCC to compile. So in order to compile Grafana on Windows you need to install GCC. We recommend TDM-GCC.
Copy conf/sample.ini to a file named conf/custom.ini and change the web server port to something like 8080. The default Grafana port, 3000, requires special privileges on Windows.
(本文配置的端口是8082)
--Run Grafana as windows service
Start Grafana by executing grafana-server.exe, preferably from the command line. If you want to run Grafana as windows service, download NSSM. It is very easy add Grafana as a Windows service using that tool.
2. 安装InfluxDB
influxdb是目前比较流行的时间序列数据库。
- 何谓时间序列数据库?
什么是时间序列数据库,最简单的定义就是数据格式里包含Timestamp字段的数据,比如某一时间环境的温度,CPU的使用率等。但是,有什么数据不包含Timestamp呢?几乎所有的数据其实都可以打上一个Timestamp字段。时间序列数据的更重要的一个属性是如何去查询它,包括数据的过滤,计算等等。
而且它是一个开源的分布式时序、时间和指标数据库,使用go语言编写,无需外部依赖。其具有三大特性:
- 时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等);
- 度量(Metrics):对实时大量数据进行计算;
- 事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。
--下载
可在如下地址下载InfluxDB的各种版本:https://portal.influxdata.com/downloads#influxdb


根据需要选择相应的版本下载,在这里我们选择windows binaries 版本下载,直接将下载地址复制到浏览器中即可下载。
https://dl.influxdata.com/influxdb/releases/influxdb-1.3.6_windows_amd64.zip
--安装和配置
InfluxDB并不需要安装,只需要解压到相应的目录即可,主要就是一个配置文件和几个可执行文件。
一开始,我直接下载的最新的influxdb-1.3.6发现里面的文件格式不对,经过研究我又下载了influxdb-1.3.5版本,发现格式正常而且也有配置文件。


不过,如果没有配置文件,可以通过如下方式生成(For create influxdb configuration file we can also use the below command):
influxd config > influxdb.conf
有很多人在安装运行InfluxDB后去访问8083端口的web管理页面却发现无法正常打开,主要问题是web管理界面默认是关闭的,我们需要将其打开后再访问页面使用。
修改配置文件influxdb.conf,将admin配置一段修改为如下:

另外,因为是该配置文件主要还是适应于linux系统地,有些文件路径需要酌情更改。
--运行
运行的方式大致有两种:
- shift+右键安装目录打开命令行窗口(直接到达指定目录,比打开cmd,一步步指定目录要方便),键入如下命令开启InfluxDB服务:
influxd -config influxdb.conf - 正如官网所述
查看控制台的输出:

这里使用的版本为1.10,黄色标记部分提示在未来更高版本中admin部分的配置将会移除掉,这就为上面高版本的配置文件的内容作了解释。
待InfluxDB启动完成后,试试web管理界面是不是可以使用了(http://localhost:8083/)?

设置连接信息:

3. 创建数据
https://docs.influxdata.com/influxdb/v1.1/introduction/getting_started/
4. 配置Grafana
当有了数据源后 , 就可以开始配置grafana来展示数据了
1).登陆grafana , 新建数据源 , 并配置好相关信息


2).添加Dashboards

5. 不同版本的client for InfluxDB
5.1 使用python安装influxdb-python
获取资源:https://github.com/influxdb/influxdb-python.git


安装完成显示没有发现requirements.txt,不知有何影响?

打开python输入
from influxdb import client as influxdb
如果没有错误信息,则表示安装成功。

接下来就可以使用python操作InfluxDB啦:
(1)数据表操作示例如下:
#! /usr/bin/env python
#-*- coding:utf-8 -*- from influxdb import InfluxDBClient json_body = [
{
"measurement": "students",
"tags": {
"stuid": "s123"
},
#"time": "2017-03-12T22:00:00Z",
"fields": {
"score": 89
}
}
] def showDBNames(client):
result = client.query('show measurements;') # 显示数据库中的表
print("Result: {0}".format(result)) client = InfluxDBClient('localhost', 8086, 'root', '', 'testdb') # 初始化(指定要操作的数据库)
showDBNames(client)
client.write_points(json_body) # 写入数据,同时创建表
showDBNames(client)
client.query("drop measurement students") # 删除表
showDBNames(client)
5.2 .NET环境安装InfluxDB.Client.Net
It's a C# client object model to help integrate with InfluxDB.(https://github.com/AdysTech/InfluxDB.Client.Net)
安装方式见:https://www.nuget.org/packages/AdysTech.InfluxDB.Client.Net/0.6.7

We use the NuGet Package Manager Console to install NuGet packages.
Open the console in Visual Studio using the Tools > NuGet Package Manager > Package Manager Console command.

参考文章:
WIndows下使用Grafana+InfluxDB打造监控系统的更多相关文章
- windows下部署Grafana +prometheus平台监控
1.Prometheus简介 Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖.用户只需要下载对应平台包,解压并且添加基本的配置即可正常启Prometheus S ...
- 搭建Jmeter + Grafana + InfluxDB性能测试监控环境
背景 Jmeter原生的实时监控每半分钟收集一次数据,只能在Linux控制台查看日志输出,界面看起来不直观,图表报告只能等压测结束后才能生成.如下图为jmeter在Linux下运行的实时日志: 那么如 ...
- Windows下快速安装CACTI流量监控
Windows下快速安装CACTI流量监控 原文 http://os.51cto.com/art/201111/300977.htm CACTI是一套PHP程序,它利用SNMPGET采集数据,使用R ...
- Grafana+Influxdb+Telegraf监控mysql
Grafana+Influxdb+Telegraf监控mysql 一.安装 1.1安装Grafana+influxdb+telegraf 1.2启动服务,添加开机启动 1.3查看grafana界面 二 ...
- Windows下如何检测用户修改了系统时间并且把系统时间改回来
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Windows下如何检测用户修改了系统时间并且把系统时间改回来.
- [转]Jmeter + Grafana + InfluxDB 性能测试监控
https://www.cnblogs.com/yyhh/p/5990228.html Jmeter + Grafana + InfluxDB 性能测试监控 效果不错
- Grafana+Zabbix+Prometheus 监控系统
环境说明 软件 版本 操作系统 IP地址 Grafana 5.4.3-1 Centos7.5 192.168.18.231 Prometheus 2.6.1 Centos7.5 192.168.18. ...
- 从Windows转向Linux(在Windows下建立Deepin、Windows10双系统)
我是19年3月转向使用Linux进行开发,没啥特别的理由,就是觉得使用Linux系统是每个程序员必须经历的吧. 选择版本 一开始,在网上了解到现在流行的Linux发行版有基于Redhat的,还有基于d ...
- windows下编译Grafana前端
本次介绍一下Windows环境源码编译步骤. 准备 安装Go 1.8.1 安装NodeJS LTS 安装Git 安装golang开发环境: 参考链接:https://www.cnblogs.com/ ...
随机推荐
- leetcode第一刷_Merge Intervals
看到这个题我就伤心啊,去微软面试的时候,第一个面试官让我做的题目就是实现集合的交操作,这个集合中的元素就像这里的interval一样.是一段一段的.当时写的那叫一个慘不忍睹.最后果然被拒掉了. .好好 ...
- 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病(三)
梯度提升: from sklearn.ensemble import GradientBoostingClassifier gb=GradientBoostingClassifier(random_s ...
- 测试一下robotgo自动化操作,顺便解决了原来的mingw版本中只有gcc,没有g++的问题
参考:https://gitee.com/veni0/robotgo#examples 但是编译不成功 找到这个:https://gitee.com/veni0/robotgo#examples ( ...
- 【vue】vue +element 实现批量删除
相关资料:http://blog.csdn.net/eagle_88/article/details/70238836 作者:smile.轉角 QQ:493177502
- 四.js 正则表达式
一.正则表达式 1.定义:对字符串规则的描述 2.作用:可以检查字符串是否符合规则,可以按规则来截取字符串 3.定义: a.简单模式:var reg = /hello/; b.复杂模式:var reg ...
- 深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn
参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 本章介绍的nn模块是构建与autogr ...
- jenkins使用2----基本实例
一.配置 1.点击新建,选择构建自由风格 2.剩下的都不动,来到构建步骤,新增一个输出hell world 3.保存后点击立即构建 二.查看日志 4.点击构建历史,再点击控制台输出 5.第三行显示 临 ...
- vector--不定长数组
(一些很基础的东西) vector就是一个不定长数组 vector<int>a (黄色部分可替换) a.size() 读取它的大小 a.resize() 改变大小 a.push_back( ...
- AI Haar特征
Haar特征,也叫矩形特征,有四种特征(模板):边缘特征.线性特征.中心特征.对角线特征.每种模板都包含黑白两种区域. 模板的特征值=白色区域的像素和-黑色区域的像素和,反映的是图像的灰度变化情况. ...
- 浅析mysql中exists 与 in 的使用
一.exists的使用 exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返 ...