zoukankan      html  css  js  c++  java
  • 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语言编写,无需外部依赖。其具有三大特性:

    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业务数据可视化

  • 相关阅读:
    BootStrap练习
    表单控件练习
    K近邻算法原理
    CSS 边框和颜色
    SVG平移和旋转
    SVG进阶练习
    SVG路标(marker)
    SVG 曲线与文字
    python函数与异常处理
    if-elif-else分支判断语句(附加continue和break)---举例说明
  • 原文地址:https://www.cnblogs.com/carsonzhu/p/7630593.html
Copyright © 2011-2022 走看看