前言

对于一个运维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语言编写,无需外部依赖。其具有三大特性:

  1. 时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等);
  2. 度量(Metrics):对实时大量数据进行计算;
  3. 事件(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

使用命令行安装influxdb-python:python setup.py install

安装完成显示没有发现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.

参考文章:

python 安装influxdb-python

使用python操作InfluxDB

influxdb+grafana业务数据可视化

WIndows下使用Grafana+InfluxDB打造监控系统的更多相关文章

  1. windows下部署Grafana +prometheus平台监控

      1.Prometheus简介 Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖.用户只需要下载对应平台包,解压并且添加基本的配置即可正常启Prometheus S ...

  2. 搭建Jmeter + Grafana + InfluxDB性能测试监控环境

    背景 Jmeter原生的实时监控每半分钟收集一次数据,只能在Linux控制台查看日志输出,界面看起来不直观,图表报告只能等压测结束后才能生成.如下图为jmeter在Linux下运行的实时日志: 那么如 ...

  3. Windows下快速安装CACTI流量监控

    Windows下快速安装CACTI流量监控 原文  http://os.51cto.com/art/201111/300977.htm CACTI是一套PHP程序,它利用SNMPGET采集数据,使用R ...

  4. Grafana+Influxdb+Telegraf监控mysql

    Grafana+Influxdb+Telegraf监控mysql 一.安装 1.1安装Grafana+influxdb+telegraf 1.2启动服务,添加开机启动 1.3查看grafana界面 二 ...

  5. Windows下如何检测用户修改了系统时间并且把系统时间改回来

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:Windows下如何检测用户修改了系统时间并且把系统时间改回来.

  6. [转]Jmeter + Grafana + InfluxDB 性能测试监控

    https://www.cnblogs.com/yyhh/p/5990228.html Jmeter + Grafana + InfluxDB 性能测试监控 效果不错

  7. Grafana+Zabbix+Prometheus 监控系统

    环境说明 软件 版本 操作系统 IP地址 Grafana 5.4.3-1 Centos7.5 192.168.18.231 Prometheus 2.6.1 Centos7.5 192.168.18. ...

  8. 从Windows转向Linux(在Windows下建立Deepin、Windows10双系统)

    我是19年3月转向使用Linux进行开发,没啥特别的理由,就是觉得使用Linux系统是每个程序员必须经历的吧. 选择版本 一开始,在网上了解到现在流行的Linux发行版有基于Redhat的,还有基于d ...

  9. windows下编译Grafana前端

    本次介绍一下Windows环境源码编译步骤. 准备 安装Go 1.8.1 安装NodeJS LTS 安装Git 安装golang开发环境:  参考链接:https://www.cnblogs.com/ ...

随机推荐

  1. python获取数据网页数据并创建文件夹保存(基于python3.6)

    from urllib.parse import urljoin import urllib.request from bs4 import BeautifulSoup import os impor ...

  2. P1433 吃奶酪(搜索DFS+记忆化)

    emmmmm,我还是看了题解的....尴尬,其实不用记忆化搜索也是可以的.因为我不用也是最后一个点超时.但是我是用的贪心+DFS...超时的原因是贪心....mmp,本来加贪心就是为了不超时.... ...

  3. 第1章 从开机加电到main函数之前的过程

    主要讲解了80x86cpu在启动的时候时bios如何工作,以及如何最终转换到保护模式. 1.1 启动bios 80x86作为冯诺依曼结构下的cpu,工作模式也是取指执行,即cpu根据cs:ip寄存器的 ...

  4. 5linux引导流程解析

    课程大纲  Linux引导流程  Linux运行级别  Linux启动服务管理  GRUB配置与应用  启动故障分析与解决     常用固件设置 安全设置 可引导介质列表 可引导介质搜索顺序 ...

  5. Linux 系统安装

      内容概要  VMware虚拟机软件应用  Linux系统安装设置  远程登录管理工具介绍   VMware 简介 VMware是一个虚拟PC的软件,可以在现有的操 作系统上虚拟出一个新的硬件 ...

  6. Debian系统下实现通过wpa_config连接WPA-PSK加密的Wifi连接

    Debian系统下实现通过wpa_config连接WPA-PSK加密的Wifi连接 文章参考:BASST | BLOG : Setting up Wifi - Debian Wheezy 预环境 De ...

  7. Armitage攻击winxp——P201421410029

    实验简介 实验所属系列: 安全工具使用 实验对象:本科/专科信息安全专业 相关课程及专业: linux基础.网络安全 实验类别: 实践实验类 预备知识 Armitage基本介绍       Armit ...

  8. Vue-比较方法、计算属性和侦听器

    分别用方法.计算属性和侦听器实现当fristName和lastName改变时,fullName跟着改变. 一.方法: html: <div id="app"> {{fu ...

  9. SQLite 实现删除表中前一天的数据

    注意点1 要注意SQLite datatime()函数为何获取不到系统本地时间?这个问题,坑死我了. 解决方法详见这篇文章:SQLite datatime()函数为何获取不到系统本地时间? 注意点2: ...

  10. MySQL 8 新特性之自增主键的持久化

    自增主键没有持久化是个比较早的bug,这点从其在官方bug网站的id号也可看出(https://bugs.mysql.com/bug.php?id=199).由Peter Zaitsev(现Perco ...