Telegraf的安装与使用介绍

一、安装
Telegraf是一个用go编写的代理程序,可以用来收集系统和服务的统计数据,并写入到influxDB中。
特点:

完全由GO编写,编译产物仅为一个二进制程序,安装运行无需外部依赖

运行时内存占用很小

对于当前大部分流行的服务来说,telegraf已经有现成的插件支持

插件系统可以支持对其他服务轻松扩展

系统要求:

1. Linux kernel version 2.6.23 or later
2. Windows 7 or later
3. FreeBSD 11.2 or later
4. MacOS 10.11 El Capitan or later

a. 直接下载安装包进行安装
ubuntu

wget https://dl.influxdata.com/telegraf/releases/telegraf_1.17.0-1_amd64.deb
sudo dpkg -i telegraf_1.17.0-1_amd64.deb

reahat

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.17.0-1.x86_64.rpm
sudo yum localinstall telegraf-1.17.0-1.x86_64.rpm

b. 源码编译安装

安装go环境: GO >= 1.13

下载github上的telegraf源码,并将其放到go语言的src目录下:
https://github.com/influxdata/telegraf

编译源码
cd ~/src/telegraf
make

注意:
如果是离线环境编译telegraf,需要手动下载其依赖包,并将其放置到go的root目录下或者src目录下

二、 介绍telegraf
telegraf主要由四个独立的插件驱动:

Input Plugins           输入插件,收集系统、服务、第三方组件的数据

Process Plugins     处理插件,转换、处理、过滤数据

Aggregate Plugins    聚合插件,数据特征聚合:sum avg delta等

Output Plugins        输出插件,将数据写出到哪里

配置文件说明
Agent 配置

Telegraf有一些可以在配置[agent]部分下配置的选项。

interval:所有输入的默认数据收集间隔

round_interval:将收集间隔舍入为“interval”例如,如果interval =“10s”则始终收集于:00,:10,:20等。

metric_batch_size:Telegraf将指标发送到大多数metric_batch_size指标的批量输出。

metric_buffer_limit:Telegraf将缓存metric_buffer_limit每个输出的指标,并在成功写入时刷新此缓冲区。这应该是倍数,metric_batch_size不能少于2倍metric_batch_size。

collection_jitter:集合抖动用于随机抖动集合。每个插件在收集之前将在抖动内随机休眠一段时间。这可以用来避免许多插件同时查询sysfs之类的东西,这会对系统产生可测量的影响。

flush_interval:所有输出的默认数据刷新间隔。您不应将此设置为以下间隔。最大值flush_interval为flush_interval+flush_jitter

flush_jitter:将刷新间隔抖动一个随机量。这主要是为了避免运行大量Telegraf实例的用户出现大量写入峰值。例如,flush_jitter5s和flush_interval10s之一意味着每10-15秒就会发生一次冲洗。

precision:默认情况下,precision将设置为与收集时间间隔相同的时间戳顺序,最大值为1s。精度不会用于服务输入,例如logparser和statsd。有效值为 ns,us(或µs)ms,和s。

logfile:指定日志文件名。空字符串表示要登录stderr。

debug:在调试模式下运行Telegraf。

quiet:以安静模式运行Telegraf(仅限错误消息)。

hostname:覆盖默认主机名,如果为空使用os.Hostname()。

omit_hostname:如果为true,则不host在Telegraf代理中设置标记。

Input 配置

以下配置参数可用于所有输入:

interval:收集此指标的频率。普通插件使用单个全局间隔,但是如果一个特定输入应该运行得更少或更频繁,则可以在此处进行配置。

name_override:覆盖度量的基本名称。(默认为输入的名称)。

name_prefix:指定附加到度量名称的前缀。

name_suffix:指定附加到度量名称的后缀。

tags:要应用于特定输入测量的标签映射。

Aggregator 配置

以下配置参数可用于所有聚合器:

period:刷新和清除每个聚合器的时间段。聚合器将忽略在此时间段之外使用时间戳发送的所有度量标准。

delay:刷新每个聚合器之前的延迟。这是为了控制聚合器在从输入插件接收度量标准之前等待多长时间,如果聚合器正在刷新并且输入在相同的时间间隔内收集。

drop_original:如果为true,聚合器将丢弃原始度量标准,并且不会将其发送到输出插件。

name_override:覆盖度量的基本名称。(默认为输入的名称)。

name_prefix:指定附加到度量名称的前缀。

name_suffix:指定附加到度量名称的后缀。

tags:要应用于特定输入测量的标签映射。

Processor 配置

以下配置参数可用于所有处理器:

order:这是执行处理器的顺序。如果未指定,则处理器执行顺序将是随机的。

Measurement filtering (测量过滤)

可以根据输入,输出,处理器或聚合器配置过滤器,请参阅下面的示例。

namepass:一个glob模式字符串数组。仅发出测量名称与此列表中的模式匹配的点。

命名工作:逆转namepass。如果找到匹配,则丢弃该点。这是在通过namepass测试后的点上测试的。

fieldpass:一个glob模式字符串数组。仅发出其字段键与此列表中的模式匹配的字段。不适用于输出。

fielddrop:逆的fieldpass。具有匹配其中一个模式的字段键的字段将从该点中丢弃。不适用于输出。

tagpass:将标记键映射到glob模式字符串数组的表。仅发出表中包含标记键的点和与其模式之一匹配的标记值。

tagdrop:逆的tagpass。如果找到匹配,则丢弃该点。这是在通过tagpass测试后的点上测试的。

taginclude:一个glob模式字符串数组。仅发出具有与其中一个模式匹配的标签键的标签。相反tagpass,它将根据其标记传递整个点,taginclude从该点移除所有不匹配的标记。此滤波器可用于输入和输出,但 建议在输入上使用,因为在摄取点过滤掉标签更有效。

tagexclude:倒数taginclude。具有与其中一个模式匹配的标记键的标记将从该点被丢弃。