命令记不住

登陆

Telegraf 监控工具安装部署

Telegraf 监控工具安装部署

1.介绍

telegraf主要由四个独立的插件驱动:

Input Plugins       输入插件,收集系统、服务、第三方组件的数据
Process Plugins     处理插件,转换、处理、过滤数据
Aggregate Plugins   聚合插件,数据特征聚合:sum avg delta等
Output Plugins      输出插件,将数据写出到哪里

配置文件说明

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。具有与其中一个模式匹配的标记键的标记将从该点被丢弃。

.

2.软件安装

Telegraf和InfluxDB下载地址:https://portal.influxdata.com/downloads/

Telegraf:

cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo
[influxdata]
name = InfluxData Repository - Stable
baseurl = https://repos.influxdata.com/stable/\$basearch/main
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

sudo yum install telegraf influxdb influxctl -y

.

3.修改配置文件

默认配置文件

# egrep -v "#|^$" /etc/telegraf/telegraf.conf
[global_tags]
[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = "0s"
  hostname = ""
  omit_hostname = false
[[outputs.influxdb]]
[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]

输入命令

vim /etc/telegraf/telegraf.conf

[[outputs.influxdb]]
   urls = ["http://localhost:8086"] # required 
   database = "telegraf" # required
   retention_policy = ""
   precision = "s"
   timeout = "5s"
   username = "telegraf"
   password = "mjM6JEVEPa"

.

4.启动服务

输入命令

systemctl status telegraf
systemctl enable telegraf --now

.

5.配置influxdb

利用telegraf采集数据并保存到influxdb中,必须在influxdb中创建对应的用户和数据库

创建influxdb用户和数据库

[root@localhost~]# influx
Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.
Connected to http://localhost:8086 version 1.0.2
InfluxDB shell version: 1.0.2
> create user "telegraf" with password 'mjM6JEVEPa'
> show users;
user        admin
telegraf    false

> create database telegraf
> show databases
name: databases
---------------
name
_internal
telegraf

> exit
[root@localhost ~]# systemctl restart influxdb

重启influxdb

systemctl restart influxdb

6.部署iDRAC Grafana

模板地址:https://grafana.com/grafana/dashboards/12106

项目地址:https://github.com/ilovepancakes95/

安装依赖工具

yum install net-snmp net-snmp-utils -y

安装插件clock和statusmap

grafana-cli plugins install grafana-clock-panel
grafana-cli plugins install flant-statusmap-panel

# 或者直接拷贝插件目录,将其解压缩到您的 grafana 插件/var/lib/grafana/plugins目录中
https://grafana.com/api/plugins/flant-statusmap-panel/versions/0.5.1/download
https://grafana.com/api/plugins/grafana-clock-panel/versions/2.0.0/download
chown -R grafana. /var/lib/grafana/plugins

下载配置文件:https://github.com/ilovepancakes95/idrac_snmp-grafana

git clone https://github.com/ilovepancakes95/idrac_snmp-grafana
cp ./idrac_snmp-grafana/idrac-input.conf  /etc/telegraf/telegraf.d/

修改配置文件

# 用自己的iDRAC IP或主机名替换“代理”下的“idracURLx”值。重新启动Telegraf
vim /etc/telegraf/telegraf.d/idrac-input.conf 
[[inputs.snmp]]
  agents = [ "172.16.168.11:161" , "idracURL2:161" , "idracURL3:161" ]
  version = 1
  community = "public"
  name = "idrac-hosts"

.

推荐阅读