本篇内容介绍了“怎么安装使用go监控方案的telegraf”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
telegraf 整个包非常大,在这个方案只用了statsd插件部分的修改,所以更具体的需要根据自己需要进行学习,如果只是使用本方案就可以略过。
Telegraf是一个插件驱动的服务器代理,用于收集和报告指标,是TICK堆栈的第一部分。 Telegraf具有直接从其运行的系统中提取各种指标的插件,从第三方API提取指标,甚至通过statsd和Kafka消费者服务监听指标。 它还具有输出插件,可将指标发送到各种其他数据存储,服务和消息队列,包括InfluxDB,Graphite,OpenTSDB,Datadog,Librato,Kafka,MQTT,NSQ等等。
download
mac 版本
安装
brew update brew install telegraf
下次登录启动telegraf
ln -sfv /usr/local/opt/telegraf/*.plist ~/Library/LaunchAgents
加载 telegraf
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.telegraf.plist
如果不用launchctl, 只需要使用下面命令启动
telegraf -config /usr/local/etc/telegraf.conf
/etc/telegraf/telegraf.conf
启动
sudo service telegraf start systemctl start telegraf
Telegraf提供多个服务输入插件,可能需要自定义端口。
配置文件: /etc/telegraf/telegraf.conf
Telegraf使用主机的UTC本地时间为数据分配时间戳。 使用网络时间协议(NTP)同步主机之间的时间; 如果主机的时钟与NTP不同步,则数据的时间戳可能不准确。
使用默认输入和输出插件创建配置文件。
telegraf config > telegraf.conf
创建具有特定输入和输出的配置文件
telegraf --input-filter <pluginname>[:<pluginname>] --output-filter <outputname>[:<outputname>] config > telegraf.conf
在启动Telegraf服务器之前,您需要编辑和/或创建一个初始配置,指定所需的输入(指标来自哪里)和输出(指标所在的位置)。
在这里,我们将生成一个配置文件,同时使用-input-filter标志指定所需的输入,并使用-output-filter标志指定所需的输出。
在下面的示例中,我们创建了一个名为telegraf.conf
的配置文件,其中包含两个输入: 一个读取有关系统cpu使用情况(cpu
)的指标,另一个读取有关系统内存使用情况(mem
)的指标。 我们将InfluxDB指定为所需的输出。
telegraf -sample-config -input-filter cpu:mem -output-filter influxdb > telegraf.conf
一旦Telegraf启动并运行,它将开始收集数据并将其写入所需的输出。
我们将在下面的InfluxDB中展示cpu和mem数据的样子。
influxdb 查看 measurements
> SHOW MEASUREMENTS name: measurements ------------------ name cpu mem
查看 field keys
在
> 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: mem --------- fieldKey fieldType active integer available integer available_percent float buffered integer cached integer free integer inactive integer total integer used integer used_percent float
选择一个数据样本 field
usage_idle
在 cpu_usage_idle
:
> SELECT usage_idle FROM cpu WHERE cpu = 'cpu-total' LIMIT 5 name: cpu --------- time usage_idle 2016-01-16T00:03:00Z 97.56189047261816 2016-01-16T00:03:10Z 97.76305923519121 2016-01-16T00:03:20Z 97.32533433320835 2016-01-16T00:03:30Z 95.68857785553611 2016-01-16T00:03:40Z 98.63715928982245
请注意,时间戳以十舍五入的间隔发生(即:00
,:10
,:20
,依此类推) - 这是一个可配置的设置。
Telegraf指标是用于在处理期间对数据建模的内部表示。 这些指标非常基于InfluxDB的数据模型,包含四个主要组件:
Measurement name 度量名称:度量标准的描述和命名空间。 Tags 标签:键/值字符串对,通常用于标识度量标准。 Fields 字段:键入的键/值对,通常包含度量标准数据。 Timestamp 时间戳:与字段关联的日期和时间。
此度量标准类型仅存在于内存中,必须转换为具体表示才能传输或查看。
Telegraf为这些转换提供输出数据格式(也称为序列化器)。
Telegraf的默认串行器转换为InfluxDB线路协议,该协议提供Telegraf指标的高性能和一对一直接映射。
┌───────────┐ │ │ │ CPU │───┐ │ │ │ └───────────┘ │ │ ┌───────────┐ │ ┌───────────┐ │ │ │ │ │ │ Memory │───┤ ┌──▶│ InfluxDB │ │ │ │ │ │ │ └───────────┘ │ ┌─────────────┐ ┌─────────────┐ │ └───────────┘ │ │ │ │Aggregate │ │ ┌───────────┐ │ │Process │ │ - mean │ │ ┌───────────┐ │ │ │ │ - transform │ │ - quantiles │ │ │ │ │ MySQL │───┼──▶ │ - decorate │────▶│ - min/max │───┼──▶│ File │ │ │ │ │ - filter │ │ - count │ │ │ │ └───────────┘ │ │ │ │ │ │ └───────────┘ │ └─────────────┘ └─────────────┘ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │ │ │ │ SNMP │───┤ └──▶│ Kafka │ │ │ │ │ │ └───────────┘ │ └───────────┘ │ ┌───────────┐ │ │ │ │ │ Docker │───┘ │ │ └───────────┘
处理器插件(Processor plugins)在通过时处理指标,并根据它们处理的值立即发出结果。例如,这可能是打印所有指标或向所有通过的指标添加标记。
聚合器(Aggregator plugins)通常用于发出新的聚合度量,例如运行平均值,最小值,最大值,分位数或标准偏差。 因此,所有聚合器插件都配置了句点。周期是每个聚合表示的度量窗口的大小。换句话说,发出的聚合度量将是过去时段秒的聚合值。 由于许多用户只关心他们的聚合而不是每个收集的度量标准,因此还有一个drop_original参数,它告诉Telegraf只发出聚合而不是原始指标。
注意:由于聚合器插件仅在其句点内聚合度量标准,因此不支持历史数据。换句话说,如果您的指标时间戳超过now() - period
过去的时间段,则不会对其进行汇总。
代理是Telegraf的核心部分,它从声明的输入插件收集指标,并根据给定配置启用的插件将指标发送到声明的输出插件。
Aggregator插件从输入插件接收原始指标并从中创建聚合指标。 然后将聚合度量传递给配置的输出插件。
Telegraf代理会批量发送指标到输出插件,而不是单独发送。 批处理大小控制Telegraf发送到输出插件的每个写批处理的大小。
从每个输入插件收集数据的默认全局间隔。 每个输入插件的配置都可以覆盖收集间隔。
集合抖动用于防止每个输入插件同时收集指标,这可能对系统产生可测量的影响。 每个收集间隔,每个输入插件将在收集指标之前在零和收集抖动之间休眠一段随机时间。
将数据从每个输出插件刷新到其目标的全局间隔。 不应将此值设置为低于收集间隔。
输入插件主动收集指标并将其交付给核心代理,其中聚合器,处理器和输出插件可以对指标进行操作。 要激活输入插件,需要在Telegraf的配置文件中启用和配置。
当写入输出插件失败时,度量缓冲区会缓存各个度量标准。 Telegraf将在成功写入输出后尝试刷新缓冲区。 当此缓冲区填满时,将首先删除最旧的度量标准。
输出插件将指标传递到其配置的目标。 要激活输出插件,需要在Telegraf的配置文件中启用和配置。
精度配置设置确定从输入插件接收的点中保留多少时间戳精度。 所有传入的时间戳都被截断为给定的精度。 然后,Telegraf用零填充截断的时间戳以创建纳秒时间戳; 输出插件将以纳秒为单位发出时间戳。 有效精度为ns,us或μs,ms和s。
例如,如果精度设置为ms,则纳秒时间戳1480000000123456789将以毫秒精度截断为1480000000123,然后用零填充以生成新的,不太精确的纳秒时间戳1480000000123000000.输出插件不会进一步改变时间戳。 服务的输入插件忽略精度设置。
处理器插件转换,修饰和/或过滤由输入插件收集的指标,将转换后的指标传递给输出插件。
服务输入插件是在Telegraf代理运行时以被动收集模式运行的输入插件。 他们在套接字上侦听已知的协议输入,或者在将它们提供给Telegraf代理之前将其自己的逻辑应用于摄取的度量标准。
Telegraf输入插件与InfluxData时间序列平台一起使用,以从系统,服务或第三方API收集指标。 所有指标都是从您在配置文件中启用和配置的输入中收集的。
通过运行telegraf --usage <service-input-name>
查看每个服务输入的使用说明。
支持的Telegraf输入插件Telegraf input plugins
Telegraf允许用户在配置文件中指定多个输出接收器。
支持的Telegraf输出插件Telegraf output plugins
插件ID: basicstats
所述BasicStats聚合器插件给出count,max,min,mean,s2(方差),和stdev用于一组值,发光聚合每个周期秒
插件ID: histogram
所述直方图聚合器插件创建包含的范围内的字段值的计数的直方图。
添加到存储桶的值也会添加到分发中的较大存储桶中。这会创建累积直方图。
与其他Telegraf聚合器插件一样,度量标准每秒都会发出。但是,存储桶计数不会在不同时段之间重置,并且在Telegraf运行时将非严格增加。
插件ID: minmax
在极大极小聚合器插件聚集体min和max它看到每个字段的值,发射都汇集每个周期秒。
插件ID: valuecounter
该ValueCounter聚合插件计算值的领域中发生并发出计数器一次“期间”秒。
ValueCounter聚合器插件的用例是当您使用Logparser输入插件处理HTTP访问日志并想要计算HTTP状态代码时。
必须使用fields配置指令配置要计数的字段。如果未提供任何字段,则插件不会计算任何字段。结果以字段形式发出,格式为originalfieldname_fieldvalue = count。
ValueCounter只能在类型的字段int,bool或string。正在删除浮动字段以防止创建太多字段。
Telegraf processor plugins
“怎么安装使用go监控方案的telegraf”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。