基于时序数据库GaussDB(for Influx)搭建运维监控系统

举报
栖迟於一丘 发表于 2021/06/16 23:11:18 2021/06/16
【摘要】 实验场景Telegraf 负责采集设备信息,本实验中主要采集CPU,内存,磁盘空间等信息。GaussDB(for Influx)用于存储采集的时序数据,并对外提供数据查询服务。Grafana是数据可视化展示的工具,通过浏览器访问,可以讲数据以图标方式进行展示。可视化效果如图所示。 组件安装部署时序数据库客户端 Influx下载地址https://dl.influxdata.com/infl...

实验场景

Telegraf 负责采集设备信息,本实验中主要采集CPU,内存,磁盘空间等信息。

GaussDB(for Influx)用于存储采集的时序数据,并对外提供数据查询服务。

Grafana是数据可视化展示的工具,通过浏览器访问,可以讲数据以图标方式进行展示。可视化效果如图所示。

组件安装部署

  1. 时序数据库客户端 Influx下载地址
    https://dl.influxdata.com/influxdb/releases/influxdb-1.8.3_windows_amd64.zip
    linux系统可以访问:
    https://github.com/influxdata/influxdb/releases/tag/v1.8.3
    下载对应操作系统的程序文件。

  2. Grafana服务程序

    https://dl.grafana.com/oss/release/grafana-7.5.4.windows-amd64.msi
    linux系统可以访问:
    https://grafana.com/grafana/download?platform=linux

    下载对应操作系统的程序文件。

  3. 数据采集工具

    https://dl.influxdata.com/telegraf/releases/telegraf-1.16.2_windows_amd64.zip

    linux系统可以访问(大部分电脑都可以安装amd64 linux):

    https://github.com/influxdata/telegraf/releases/tag/v1.18.3

测试数据库连通性

  1. 解压

    以windows为例,解压 Influxdb-1.8.3_windows_amd64.zip

  2. 连接云时序数据库

    执行命令

    cd <Influxdb-1.8.3_windows_amd64.zip解压后的目录>  #注:尖括号不是命令的一部分
    influx.exe -host <ip> -port <port> -username <userName> -password <password> -ssl -unsafeSsl
    

    ip:数据库服务器的地址

    port:数据库服务开放的端口

    userName:数据库的用户名

    password:数据库用户登录密码

    执行成功,结果如下(图中ip地址,用户名和密码不可作为本实验使用):

  3. 基本操作

    查看数据库

    show databases
    

    创建数据库

    如果没有数据库 testDB, 则创建数据库 testDB, 如果别人已经创建,则不需要,testDB用于本次实验
    create database testDB
    

    使用数据库

    use testDB
    

    插入一条数据

    insert tab,os="ubuntu16.10",hostname="192.168.1.2:8188" alloc=1967123,frees=65440812 
    

    查询一小时前的所有数据

    select alloc from tab where time > now() - 1h
    

  4. 参考文档

    https://docs.influxdata.com/influxdb/v1.7/

数据采集

解压telegraf,修改telegraf 配置文件telegraf.conf

# Configuration for sending metrics to InfluxDB
[[outputs.influxdb]]
  ## The full HTTP or UDP URL for your InfluxDB instance.
  ##
  ## Multiple URLs can be specified for a single cluster, only ONE of the
  ## urls will be written to each interval.
  # urls = ["unix:///var/run/influxdb.sock"]
  # urls = ["udp://127.0.0.1:8089"]
  
  ########### 这里设置华为云GaussDB(for Influx)的配置的IP地址
  urls=[“https://rwuser:password@IP:8635]

  ## The target database for metrics; will be created as needed.
  ## For UDP url endpoint database needs to be configured on server side.
  ########### 设置数据库名称(默认telegraf)
  database = "testDB"
  ...
  ...
  ## HTTP Basic Auth
  ############ 这里设置GaussDB(for Influx)数据库用户名和密码,实际密码替换password
  username = "rwuser"
  password = "password"

  ## HTTP User-Agent
  # user_agent = "telegraf"

  ## UDP payload size is the maximum packet size to send.
  # udp_payload = "512B"

  ## Optional TLS Config for use on HTTP connections.
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  ############## 这里设置跳过ssl验证
  insecure_skip_verify = true

以上配置中,中文注释的部分是必须设置的。GaussDB(for Influx)的用户名默认为rwuser,不可更改。配置时,选择时序数据库ip地址替换urls中的ip,用GaussDB(for Influx)实例的密码替换password,如果密码包含如下特殊字符,需换成 ASIIC 码形式输入。

~ : %7E,! : %21,@ : %40,# : %23,$ : %24

% : %25,^ : %5E,& : %26,* : %2A,? : %3F

例如密码:“Huawei@123”,转换后为 “Huawei%40123”。

启动telegraf

打开CMD,cd 进入telegraf目录

CMD中运行命令启动telegraf开始采集数据。

telegraf --config telegraf.conf

启动Grafana服务

打开CMD,cd 进入Grafana目录

CMD中运行命令启动telegraf开始采集数据。

grafana-server.exe

Grafana数据展示

Grafana是一个跨平台、开源的数据可视化平台。用户配置连接的数据源之后,Grafana可以在网络浏览器里显示数据图表和警告。

服务端启动Grafana后,通过浏览器访问:

## 这里的IP可以是云上服务器的弹性IP,也可以是本地自建服务器的Ip地址。
http://IP:3000
本实验在浏览器中输入 http://localhost:3000

登陆Grafana的首页如下图所示(初始用户名密码都是admin)。

  1. 展示数据第一步:创建数据源,点击如下图中的红框位置。

    选择InfluxDB,因为GaussDB(For Influx)完全兼容InfluxDB

填写如下参数:

  • URL **:**https://rwuser:password@IP:8635 。IP为数据库实例的内网ip(参考2.1步骤(1)), 用rwuser密码替换password(参考1.1步骤(6)),如果密码包含如下特殊字符,需换成 ASIIC 码形式输入。

    ~ : %7E,! : %21,@ : %40,# : %23,$ : %24

    % : %25,^ : %5E,& : %26,* : %2A,? : %3F

    例如密码:“Huawei@123”,转换后为 “Huawei%40123”。

  • Auth:打开选项Basic auth 和skip TSL Verify。

  • Basic Auth Details

    User:rwuser

    Password:密码,如“nJa#w7f3”。

  • InfluxDB Details:

    Database:testDB(本实验使用testDB,也可以填写其他自己创建的数据库)。

    User:rwuser

    Password:密码,如“nJa#w7f3”。

  • 点击“保存”(save)。

  1. 数据展示第二步:创建数据看板
    点击首页DASHBOARDS创建看板,或者侧边“+”快捷按钮。


    重点配置项(详细参见截图红框部分):
  • Visualization:Graph
  • 展示时间范围:last 1 hour
  • 数据更新时间间隔:1m
  • 数据源名称:InfluxDB-DataSource
    查询语句配置如下(以展示服务器CPU利用率为例,从时序数据库的表cpu中查询usage_user,按1m的分组时间间隔求平均值,时间线是cpu=cpu-total):
FROM autogen cpu Where cpu = cpu-total
SELECT field (usage_user) mean ()
GROUP BY time (1m) fill (0) 

面板中的每个图都是可以编辑的,也可以设置告警。

总结

随着云计算和物联网的发展,数据规模急剧增加,监控系统的核心在于时序数据库,一个高可用、高性能、企业级的时序数据库对监控系统的稳定起决定性作用。
GaussDB(for Influx)是一个云原生存储与计算分离架构的时序数据库,支持亿级时间线,具备高可靠、高性能,非常适合DevOps场景下的海量时间线数据的存储,是监控系统最佳的选择。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。