前言

对于一个运维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. Java锁的种类以及辨析(二):自旋锁的其他种类

    作者:山鸡 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具 ...

  2. centos7下安装docker(21docker swarm集群创建)

    创建swarm集群: 实验环境:盗图 swarm-manager是manager node,swarm-worker1和swarm-worker2是worker node. 所有节点的docker版本 ...

  3. ansible批量免秘登录

    ansible批量免秘登录   主控机 10.22.0.185 centos7 被控机 10.22.0.186 centos7 一.主控机安装ansible yum install epel-rele ...

  4. ORA-00600: internal error code, arguments: [2662]

    转自 http://www.eygle.com/archives/2005/12/oracle_diagnostics_howto_deal_2662_error.html 在ORA-00600 22 ...

  5. 区分range() , np.arange() , np.linspace()

    content: range() np.arange() np.linspace() 一.range(start, stop, step) 1.range() 为 python 自带函数 2.生成一个 ...

  6. 完成了Coursera的一个机器学习课程

    终于完成了这个课程,从开始学习,到现在差不多过了一年的时间,中间由于一些原因耽搁了,最终还是完成了,记录一下!

  7. React-理解高阶组件

    高阶组件:定义一个函数,传入一个组件,返回另外一个组件,另外一个组件包裹了传入的组件. 分类:属性代理高阶组件,反向继承高阶组件. 作用:代码复用,渲染节时. 高阶函数例子: function hel ...

  8. odoo11登录之后返回的session信息分析

    { "id": null, "jsonrpc": "2.0", "result": { "web_tours& ...

  9. 【php增删改查实例】第二十五节 - 在main.php中显示头像

    在用户成功上传头像以后,用户登录系统,应该能够看到自己的头像,本节演示如何在这个地方: 添加用户头像. 1.用DIV做: border-radius:50% background:url(xxx.jp ...

  10. Java和.NET(C#)的开发用到的技术对比总结

    前言 声明:我指的是一般的Java和.NET(C#)的后台开发用到的技术总结 最近一直在应聘ing,楼主的项目还是.NET(C#)项目居多,Java项目相对少,在这也吐槽下,招.NET(C#)的公司实 ...