打造轻量级监控系统Telegraf + InfluxDB + Grafana
打造轻量级监控系统Telegraf + InfluxDB + Grafana

打造轻量级监控系统Telegraf + InfluxDB + Grafana

一、引言

随着信息技术的快速发展,系统监控已成为企业信息化建设不可或缺的一环。系统监控能够实时收集、分析系统数据,帮助运维人员快速定位和解决潜在问题,确保系统稳定、高效地运行。本文将介绍一种基于Telegraf、InfluxDB和Grafana的系统监控方案,旨在为企业提供一个全面、可靠、易用的监控体系。

二、系统监控方案概述

本系统监控方案采用TIG(Telegraf + InfluxDB + Grafana),其中Telegraf作为数据采集器,InfluxDB作为时序数据库,Grafana作为数据可视化工具,共同构建一个完整的监控体系。Telegraf负责从各种数据源收集数据,InfluxDB负责存储和管理这些数据,Grafana则负责将数据进行可视化展示,帮助用户直观了解系统运行状态。

Telegraf:Telegraf 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到 InfluxDB 数据库。Telegraf 具有内存占用小的特点,通过插件系统开发人员可轻松添加支持其他服务的扩展。Telegraf的配置主要通过其配置文件telegraf.conf进行。这个配置文件允许用户定义输入(input)插件、输出(output)插件和聚合(aggregator)插件等,以指定要收集哪些数据、如何收集以及数据应发送到哪里。

Influxdb:InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。它具有以下几大特点:

  • 时序数据优化:InfluxDB针对时序数据进行了优化,能够高效地存储和查询大量时间序列数据。这使得它非常适合用于系统监控、物联网应用等场景。

  • 高性能:InfluxDB采用了高效的存储和查询引擎,能够实现快速的数据写入和查询。即使在处理大规模数据集时,也能保持出色的性能。

  • 可扩展性:InfluxDB支持水平扩展,可以通过添加更多节点来提高系统的存储和查询能力。这使得它能够满足不断增长的数据存储需求。

  • SQL-like查询语言:InfluxQL是InfluxDB的查询语言,它类似于SQL,使得用户可以方便地进行数据查询和分析。通过InfluxQL,用户可以执行复杂的查询操作,如聚合、分组和筛选等。

  • 内置支持图形界面:InfluxDB提供了内置的支持图形界面,用户可以通过Web界面进行数据库管理、数据查询和可视化等操作,无需编写复杂的代码。

Grafana:Grafana是一个开源的度量分析与可视化套件。经常被用作基础设施的时间序列数据和应用程序分析的可视化。

三、TIG监控实施

需要安装的组件如下

  • Influxdb:一种时序性数据库,主要用于存储数据
  • Telegraf:收集数据组件,本实验中用于收集硬件、业务指标
  • Grafana:用于实时展示收集到的指标数据

1、安装Influxdb

  1. 解压安装包:

    cd /opt/app/TIG 
    tar -xvzf influxdb-1.2.0_linux_amd64.tar.gz
  2. 修改配置文件,打开admin页面

    vi /opt/app/TIG/influxdb-1.2.0-1/etc/influxdb/influxdb.conf

    将admin下的enabled与bind-address修改为如下:

    [admin]
    # Determines whether the admin service is enabled.
    enabled = true
    # The default bind address used by the admin service.
    bind-address = ":8083"
    # Whether the admin service should use HTTPS.
    # https-enabled = false
    # The SSL certificate used when HTTPS is enabled.
    # https-certificate = "/etc/ssl/influxdb.pem"
  3. 启动influxdb

    cd /opt/app/TIG/influxdb-1.2.0-1/usr/bin
    ./influxd -config /opt/app/TIG/influxdb-1.2.0-1/etc/influxdb/influxdb.conf &
  4. 使用ps -ef |grep influxdb是否启动成功,InfluxDB1.2及之前版本可直接打开浏览器,验证Admin页面是否打开地址:http://localhost:8083/

    PS: nohup command(启动脚本) >/dev/null 2>&1 & 这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃。否则nohup.out日志文件后期会造成磁盘空间不够用的问题。建议在能顺利启动influxdb后使用以下命令启动

    cd /opt/app/monitorsys/influxdb-1.7.10-1/usr/bin
    nohup ./influxd -config /opt/app/monitorsys/influxdb-1.7.10-1/etc/influxdb/influxdb.conf >/dev/null 2>&1 &

2.1、安装telegraf收集硬件指标

telegraf是安装到需要收集硬件指标的机器上,比如像监控192.168.11.1的硬件字标,那么就将telegraf安装到192.168.11.1上。

  1. 解压安装包:

    cd /opt/app/TIG
    tar -xzvf telegraf-1.6.1_linux_amd64.tar.gz
  2. 修改配置文件,将收集的信息放入刚才安装的influxd数据库

    vi /opt/app/TIG/telegraf/etc/telegraf/telegraf.conf

    修改的节点为outputs.influxdb下的urls和database配置,如下:

    [[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"]
     ## The target database for metrics; will be created as needed.
     database = "telegraf"
  3. 启动telegraf

    cd /opt/app/TIG/telegraf/usr/bin
    ./telegraf -config /opt/app/TIG/telegraf/etc/telegraf/telegraf.conf &
  4. 验证telegraf是否将硬件指标插入influxdb数据库,访问数据库中cpu、mem、disk表看是否有CPU相关数据、内存相关数据、磁盘空间相关数据。

2.2、安装telegraf收集硬件指标

业务场景:将日志文件:/opt/applog/influxdb.log的内容收集到influxdb数据库中

  1. 新增telegraf业务指标配置文件

    vi /opt/app/TIG/telegraf/etc/telegraf/telegraf_tail.conf

    配置文件内容如下:

    [[outputs.influxdb]]
     urls = ["http://localhost:8086"]
     database = "tail"
     precision = "s"
     timeout = "5s"
     username = "root"
     password = "root"
    [[inputs.tail]]
     files = ["/opt/applog/influxdb.log"]
     ## Read file from beginning.
     from_beginning = false
     ## Whether file is a named pipe  
     pipe = false
     watch_method = "poll"
     data_format = "influx"
  2. 启动telegraf

    cd /opt/app/TIG/telegraf/usr/bin
    ./telegraf -config /opt/app/TIG/telegraf/etc/telegraf/telegraf_tail.conf &
  3. 新增一条业务日志

    Echo 'testtable,ip=127.0.0.1,user=taobao,service=airbook servicetime=31' >> /opt/applog/influxdb.log

  4. 验证业务日志是否插入到influxdb中,访问inflxudb admin页面http://localhost:8083/,或者使用命令方式访问Influxdb数据库

3、安装grafana

  1. 解压安装包:

    cd /opt/app/TIG
    tar -zxvf grafana-4.2.0.linux-x64.tar.gz
  2. 启动grafana

    cd /opt/app/TIG/grafana-4.2.0/bin
    ./grafana-server &
  3. 验证grafana是否能正常访问,访问地址:http://localhost:8089/login

  4. 登录grafana

    默认账户:admin 密码:admin

    备注:账户密码可配置,配置文件路径:

    /opt/app/TIG/grafana-4.2.0/conf/defaults.ini

  5. 新增硬件DataSource(配置数据库),

    访问地址:http://localhost:8089/datasources/new

  6. 可修改浏览器访问Grafana的端口号, 配置文件路径:/opt/app/TIG/grafana-4.2.0/conf/defaults.ini

文章作者: DataEA

文章链接: https://dataea.cn/monitor-tig/

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 DataEA !

Visits: 41

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注