前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Telegraf+InfluxDB+Grafana 搭建服务器监控平台

Telegraf+InfluxDB+Grafana 搭建服务器监控平台

作者头像
Devops海洋的渔夫
修改2019-11-21 23:55:47
1.6K0
修改2019-11-21 23:55:47
举报
文章被收录于专栏:Devops专栏Devops专栏

需求

近期需要搭建一套服务器性能数据监控平台,所以本次考虑基于Telegraf作为采集数据源的工具,集成使用influxdb存储数据,最后Grafana展示图表的方式,来建立这个监控平台。

监控平台拓扑

安装influxdb

代码语言:javascript
复制
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6.x86_64.rpm
sudo yum localinstall influxdb-1.7.6.x86_64.rpm -y
service influxdb start
service influxdb status

安装Grafana

代码语言:javascript
复制
wget https://dl.grafana.com/oss/release/grafana-5.4.2-1.x86_64.rpm
sudo yum localinstall grafana-5.4.2-1.x86_64.rpm -y
service grafana-server start
service grafana-server status

我前面写过关于安装influxdb、grafana的文章,如果不清楚可以访问上面的两个篇章。下面主要就是讲解Telegraf的安装以及配置。

安装Telegraf

参考文献

Telegraf 1.9文档

介绍

Telegraf是一个插件驱动的服务器代理,用于收集和报告指标,是TICK堆栈的第一部分。Telegraf具有直接从其运行的系统中提取各种指标的插件,从第三方API提取指标,甚至通过statsd和Kafka消费者服务监听指标。它还具有输出插件,可将指标发送到各种其他数据存储,服务和消息队列,包括InfluxDB,Graphite,OpenTSDB,Datadog,Librato,Kafka,MQTT,NSQ等等。

主要特点

以下是Telegraf目前支持的一些功能,使其成为指标收集的绝佳选择。

  • 使用GO语言编写,编译成单个二进制文件,没有外部依赖项。
  • 极小的内存占用
  • 插件系统允许轻松添加新的输入和输出。
  • 众所周知的服务和API存在于许多流行服务的插件中。
安装介绍

Telegraf支持很多系统进行安装,本篇章主要介绍以centos7系统进行部署安装。

主要使用yum的安装方式,简单便捷。

配置yum源

要使用yum安装,首先根据官网文档的介绍,配置一下yum源先吧,配置如下:

代码语言:javascript
复制
[root@server02 yum.repos.d]# pwd
/etc/yum.repos.d
[root@server02 yum.repos.d]# 
[root@server02 yum.repos.d]# cat influxdb.repo 
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
[root@server02 yum.repos.d]# 

配置完了yum源之后,执行一下yum makecache更新一下yum的缓存。

好了,下一步就开始使用yum来安装看看。

执行使用yum进行安装以及启动服务

sudo yum install -y telegraf

sudo service telegraf start

其实使用yum源下来rpm的网速,我个人感觉不是很快,下载一个69M的rpm文件要五六分钟。

个人习惯将其rpm提前下载,然后在本地安装,如下:

代码语言:javascript
复制
# 下载rpm安装包
yum install telegraf -y --downloadonly --downloaddir=/opt

# 进入下载的目录进行安装
cd /opt/

# 根据下载好的rpm包进行本地化yum安装
yum localinstall telegraf-1.12.5-1.x86_64.rpm -y

启动服务 systemctl start telegraf

代码语言:javascript
复制
[root@server02 opt]# systemctl start telegraf
[root@server02 opt]# systemctl status telegraf
● telegraf.service - The plugin-driven server agent for reporting metrics into InfluxDB
   Loaded: loaded (/usr/lib/systemd/system/telegraf.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-11-18 14:09:26 CST; 5s ago
     Docs: https://github.com/influxdata/telegraf
 Main PID: 10963 (telegraf)
   CGroup: /system.slice/telegraf.service
           └─10963 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d

Nov 18 14:09:26 server02 systemd[1]: Started The plugin-driven server agent for reporting metrics into InfluxDB.
Nov 18 14:09:26 server02 systemd[1]: Starting The plugin-driven server agent for reporting metrics into InfluxDB...
Nov 18 14:09:26 server02 telegraf[10963]: 2019-11-18T06:09:26Z I! Starting Telegraf 1.12.5
Nov 18 14:09:26 server02 telegraf[10963]: 2019-11-18T06:09:26Z I! Loaded inputs: mem processes swap system cpu disk diskio kernel
Nov 18 14:09:26 server02 telegraf[10963]: 2019-11-18T06:09:26Z I! Loaded aggregators:
Nov 18 14:09:26 server02 telegraf[10963]: 2019-11-18T06:09:26Z I! Loaded processors:
Nov 18 14:09:26 server02 telegraf[10963]: 2019-11-18T06:09:26Z I! Loaded outputs: influxdb
Nov 18 14:09:26 server02 telegraf[10963]: 2019-11-18T06:09:26Z I! Tags enabled: host=server02
Nov 18 14:09:26 server02 telegraf[10963]: 2019-11-18T06:09:26Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"server02", Flush Interval:10s
Nov 18 14:09:26 server02 telegraf[10963]: 2019-11-18T06:09:26Z W! [outputs.influxdb] when writing to [http://localhost:8086]: database "" creation failed: Post ...ion refused
Hint: Some lines were ellipsized, use -l to show in full.
[root@server02 opt]# 

从status打印出来的信息:

/usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d

知道配置文件的路径 /etc/telegraf/telegraf.conf

那么下面来继续看看如何将telegraf采集的度量数据写入influxDB中。

查看telegraf的默认配置下,influxdb当前的写入数据

代码语言:javascript
复制
# 使用curl的方式查询influxdb的数据库
[root@server02 ~]# curl -G http://localhost:8086/query --data-urlencode "q=show databases"
{"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["telegraf"],["_internal"]]}]}]}
[root@server02 ~]# 

# 登陆influxdb的客户端
[root@server02 ~]# influx
Connected to http://localhost:8086 version 1.7.6
InfluxDB shell version: 1.7.6
Enter an InfluxQL query
# 查询所有数据库
> show databases;
name: databases
name
----
telegraf
_internal
> 
# 使用telegraf数据库
> use telegraf;
Using database telegraf
> 

# 查看telegraf数据库的表
> show measurements;
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system
> 

# 查看表字段
> SHOW FIELD KEYS
name: cpu
fieldKey         fieldType
--------         ---------
usage_guest      float
usage_guest_nice float
usage_idle       float
usage_iowait     float
usage_irq        float
usage_nice       float
usage_softirq    float
usage_steal      float
usage_system     float
usage_user       float

name: disk
fieldKey     fieldType
--------     ---------
free         integer
inodes_free  integer
inodes_total integer
inodes_used  integer
total        integer
used         integer
used_percent float

# 查询cpu的使用空闲率
> SELECT usage_idle FROM cpu WHERE cpu = 'cpu-total' LIMIT 5
name: cpu
time                usage_idle
----                ----------
1574057380000000000 79.518072288706
1574057390000000000 98.49548645574282
1574057400000000000 98.69608826588123
1574057410000000000 97.8957915834375
1574057420000000000 98.50000000558794

可以从上面查看influxdb的数据得知,如果influxdb没有设置特殊的账号认证等信息,telegraf默认就可以直接将数据写入本地的influxdb中。

但是如果influxdb不是安装在本地,或者修改了端口号等配置,telegraf该怎么配置呢?

设置配置文件指定influxdb

Telegraf的配置文件在Centos7存储路径:

代码语言:javascript
复制
Linux debian and RPM packages: /etc/telegraf/telegraf.conf

修改配置文件可以直接修改默认已有的配置文件,也可以直接自己创建一个配置文件,如下:

代码语言:javascript
复制
telegraf -sample-config -input-filter cpu:mem -output-filter influxdb > telegraf.conf

本次示例只配置influxdb url、database名称,如下:

代码语言:javascript
复制
vim /etc/telegraf/telegraf.conf

搜索outputs.influxdb如下:

配置完毕之后,重启Telegraf,查看influxdb的数据库是否使用了另一个?

代码语言:javascript
复制
# 重启telegraf
[root@server02 telegraf.d]# service telegraf restart
# 登陆influxdb
[root@server02 telegraf.d]# influx
Connected to http://localhost:8086 version 1.7.6
InfluxDB shell version: 1.7.6
Enter an InfluxQL query

# 查看所有数据库,可以看到增加了my_telegraf数据库了。
> show databases;
name: databases
name
----
telegraf
_internal
my_telegraf
> 
> use my_telegraf;
Using database my_telegraf
> 
> show measurements;
name: measurements
name
----
cpu
disk
....
> 

可以安装配置已经创建了一个新的数据库示例my_telegraf,下面来使用grafana进行图表展示。

配置Grafana

初次启动,grafana会创建数据库,时间稍长,稍后即可访问http://localhost:3000打开grafana登录页面。

输入默认用户名密码登录(admin/admin)。

输入admin/admin 之后,会转如设置新密码的页面。

添加influxdb数据源

点击添加数据源,按照下图配置选择influxdb添加一个influxdb数据源。

url需配置成正确的宿主机ip和端口(防火墙需放行8086),若不想暴露数据库端口,可换成influxdb容器的ip地址(需自行进入容器查看,容器重启后可能会发生变化)避免数据库暴露至公网。

InfluxDB Details需填写数据名(默认telegraf,这里我修改为my_telegraf)、用户名和密码(默认均为空)。

填写完成后,点击Save&Test按钮,若访问正常,会出现Data source is working提示,否则请检查配置内容以及网络(防火墙)。

这里我是使用默认最简单的配置,当然密码那些可以自行配置添加上。

添加仪表板

返回主页Home,点击添加仪表板按钮添加新仪表板,点击Graph创建一个Graph Panel。

点击标题展开菜单,选择Edit进入面板编辑。

选择Metrics选项卡配置面板数据。

如图示配置可显示一条CPU-total的数据曲线。

配置完成后点击上方保存按钮保存仪表板。

Grafana详细的使用方法请参考官方文档:http://docs.grafana.org/或本站其它教程。

下载官网的仪表

在上面已经说明了如何去自定义仪表的方式,下面来看看怎么使用官网提供的模板。

官方看板模板库:https://grafana.com/dashboards

选择需要下载的看板模板

下载看板模板 https://grafana.com/grafana/dashboards/79

Grafana导入模板

导入之后的呈现效果如下:

这个效果已经展示得很棒了!还有更加多的模板提供,大伙就各自去尝试吧。

最后展示其他几种模板

https://grafana.com/grafana/dashboards/10581

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • 监控平台拓扑
    • 安装influxdb
      • 安装Grafana
        • 安装Telegraf
          • 参考文献
          • 介绍
          • 主要特点
          • 安装介绍
          • 配置yum源
        • 执行使用yum进行安装以及启动服务
          • 查看telegraf的默认配置下,influxdb当前的写入数据
            • 设置配置文件指定influxdb
            • 配置Grafana
              • 添加influxdb数据源
                • 添加仪表板
                • 下载官网的仪表
                  • 选择需要下载的看板模板
                    • 下载看板模板 https://grafana.com/grafana/dashboards/79
                      • Grafana导入模板
                        • 最后展示其他几种模板
                        相关产品与服务
                        前端性能监控
                        前端性能监控(Real User Monitoring,RUM)是一站式前端监控解决方案,专注于 Web、小程序等场景监控。前端性能监控聚焦用户页面性能(页面测速,接口测速,CDN 测速等)和质量(JS 错误,Ajax 错误等),并且联动腾讯云应用性能监控实现前后端一体化监控。用户只需要安装 SDK 到自己的项目中,通过简单配置化,即可实现对用户页面质量的全方位守护,真正做到低成本使用和无侵入监控。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档