一、引言
随着信息技术的快速发展,系统监控已成为企业信息化建设不可或缺的一环。系统监控能够实时收集、分析系统数据,帮助运维人员快速定位和解决潜在问题,确保系统稳定、高效地运行。本文将介绍一种基于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
-
解压安装包:
cd /opt/app/TIG tar -xvzf influxdb-1.2.0_linux_amd64.tar.gz
-
修改配置文件,打开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"
-
启动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 &
-
使用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上。
-
解压安装包:
cd /opt/app/TIG tar -xzvf telegraf-1.6.1_linux_amd64.tar.gz
-
修改配置文件,将收集的信息放入刚才安装的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"
-
启动telegraf
cd /opt/app/TIG/telegraf/usr/bin ./telegraf -config /opt/app/TIG/telegraf/etc/telegraf/telegraf.conf &
-
验证telegraf是否将硬件指标插入influxdb数据库,访问数据库中cpu、mem、disk表看是否有CPU相关数据、内存相关数据、磁盘空间相关数据。
2.2、安装telegraf收集硬件指标
业务场景:将日志文件:/opt/applog/influxdb.log的内容收集到influxdb数据库中
-
新增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"
-
启动telegraf
cd /opt/app/TIG/telegraf/usr/bin ./telegraf -config /opt/app/TIG/telegraf/etc/telegraf/telegraf_tail.conf &
-
新增一条业务日志
Echo 'testtable,ip=127.0.0.1,user=taobao,service=airbook servicetime=31' >> /opt/applog/influxdb.log
-
验证业务日志是否插入到influxdb中,访问inflxudb admin页面http://localhost:8083/,或者使用命令方式访问Influxdb数据库
3、安装grafana
-
解压安装包:
cd /opt/app/TIG tar -zxvf grafana-4.2.0.linux-x64.tar.gz
-
启动grafana
cd /opt/app/TIG/grafana-4.2.0/bin ./grafana-server &
-
验证grafana是否能正常访问,访问地址:http://localhost:8089/login
-
登录grafana
默认账户:admin 密码:admin
备注:账户密码可配置,配置文件路径:
/opt/app/TIG/grafana-4.2.0/conf/defaults.ini
-
新增硬件DataSource(配置数据库),
-
可修改浏览器访问Grafana的端口号, 配置文件路径:/opt/app/TIG/grafana-4.2.0/conf/defaults.ini
文章作者: DataEA
Views: 454