第一部分 Telegraf 部署和配置

Telegraf 是实现 数据采集 的工具。Telegraf 具有内存占用小的特点,通过插件系统开发人员可轻松添加支持其他服务的扩展。

在平台监控系统中,可以使用 Telegraf 采集多种组件的运行信息,而不需要自己手写脚本定时采集,大大降低数据获取的难度;且 Telegraf 配置极为简单,只要有基本的 Linux 基础即可快速上手。Telegraf 按照时间序列采集数据,数据结构中包含时序信息,借助 Influxdb 可以针采集得到的数据完成各种分析计算操作。

Step 1 下载RPM文件

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.8.3-1.x86_64.rpm

  

Step 2 yum 安装已下载的RPM文件

yum localinstall telegraf-1.8.-.x86_64.rpm

Step 3 启动服务

service telegraf start

补充说明:

1.数据的收集项的定义和收集后数据保存到什么地方都是通过conf文件决定。用户可修改Telegraf配置文件进行采集项的配置,配置文件默认位于/etc/telegraf/telegraf.conf

2.Telegraf有四种类型的插件

插件类型 功能描述
输入插件(Inputs) 收集各种时间序列性指标,包含各种系统信息和应用信息的插件。
处理插件(Process) 当收集到的指标数据流要进行一些简单处理时,比如给所有指标添加、删除、修改一个Tag。只是针对当前的指标数据进行。
聚合插件(Aggregate) 聚合插件有别于处理插件,就在于它要处理的对象是某段时间流经该插件的所有数据(所以,每个聚合插件都有一个设置,只会处理时间段内的数据),比如取最大值、最小值、平均值等操作。
输出插件(Outputs) 收集到的数据,经过处理和聚合后,输出到数据存储系统,可以是各种地方,如:文件、InfluxDB、各种消息队列服务等等。

3.https://github.com/influxdata/telegraf 中   Input Plugins 部分 有对各个系统、应用、服务的监控项配置,我们可以直接添加到既有的conf文件中。

Output Plugins部分是对收集数据存放地址的设置。

4.可以同时将数据保存到多种类型的数据库中。下面是将收集的数据保存到InfluxDB中的设置。

5.根据需要(服务器的角色/监控需要)重新生成 telegraf.conf 文件,例如,监控项为cpu,输出的数据为influxdb. (再次强调telegraf服务默认的配置文件在/etc/telegraf/下)

telegraf --input-filter cpu --output-filter influxdb config > telegraf.conf

6.telegraf收集mysql数据库的信息,需要 Select、SUPER、PROCESS ,否则提示以下错误。

--26T05::50Z E! [inputs.mysql]: Error in plugin: Error : Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation
--26T05::00Z E! [inputs.mysql]: Error in plugin: Error : Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation
--26T05::10Z E! [inputs.mysql]: Error in plugin: Error : Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation
--26T05::20Z E! [inputs.mysql]: Error in plugin: Error : Access denied; you need (at least one of) the PROCESS privilege(s) for this operation
--26T05::30Z E! [inputs.mysql]: Error in plugin: Error : Access denied; you need (at least one of) the PROCESS privilege(s) for this operation
--26T05::40Z E! [inputs.mysql]: Error in plugin: Error : Access denied; you need (at least one of) the PROCESS privilege(s) for this operation

第二部分 InfluxDB的安装与部署

InfluxDB 是实现 数据存储 的工具。InfluxDB是一款优秀的时间序列数据库,适合存储设备性能、日志、物联网传感器等带有时间戳的数据,可以轻松处理高写入和高查询负载(数据采集与数据可视化非常常见的场景)。

InfluxDB有三大特性:

  • 时序性(Time Series):与时间相关的函数的灵活使用(例如最大、最小、求和等);

  • 度量(Metrics):对实时大量数据进行计算;

  • 事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。

具体的安装过程如下:

Step 1 下载InfluxDB的RPM文件

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6.x86_64.rpm

 

Step 2 安装已下载的文件

yum localinstall influxdb-1.7.6.x86_64.rpm

  

Step 3 启动服务

systemctl start influxdb    ----启动服务
systemctl status influxdb ----查看服务状态

  

Step 4 登入验证

补充说明:

1.默认生成的influxdb.conf 位于 /etc/influxdb/influxdb.conf。

2.几个默认的数据文件路径需注意,或适当调整

数据文档 文档路径 解释 说明
meta /var/lib/influxdb/meta Controls the parameters for the Raft consensus group that stores metadata about the InfluxDB cluster.
存放数据库元数据。
data /var/lib/influxdb/data The directory where the TSM storage engine stores TSM files.
存放最终存储的数据,文件以.tsm结尾。
wal /var/lib/influxdb/wal The directory where the TSM storage engine stores WAL files.
存放数据库元数据。

3.常用的一些命令

命令 实现功能
show databases 显示所有数据库
use XXXX 转到某个数据库下面
show measurements 显示当前库下的所有表
select * from "XXXXX" 查询指定表的数据;表名中间有点号时,表名双引号
show users 查看账号
SHOW TAG KEYS FROM "measurement_name" 查看某measurement对应的Tag
SHOW TAG VALUES FROM "measurement_name" WITH KEY = "tag_key" 查看measurement Tag对应的值

创建账号的语法格式;

create user “username”/username with password ‘password’ with all privileges

注意;账号支持两种书写方式:英文双引号括起来、直接账号字符串,而密码则必须以英文单引号括起来

4. measurement,tags,fields,points与普通的关系型数据库的对应:

InfluxDB对象 关系型数据库对象
measurement table
tags 可以建立索引的列;tag 是可选的,不过写入数据时最好加上 tag,因为它可以被索引。tag 的类型只能是字符串。
fields
points 行数据

5.InfluxDB如果需要开启登入认证,请在/etc/influxdb/influxdb.conf 文件中的[http]部分,将以下两个参数设置为ttue.

  # Determines whether HTTP endpoint is enabled.
enabled = true
............................................
# Determines whether user authentication is enabled over HTTP/HTTPS.
auth-enabled = true

InfluxDB开启登录认证后,同时需要修改一下telegraf.conf文件,修改参数在[[outputs.influxdb]] 部分。

Grafana 部分也要注意,如果是先设置了Grafana,后设置了InfluxDB账号密码,这时候也去修改Grafana中的数据源,添加账号密码;否则web界面一直要求输入登录。

5.特色函数

influxdb函数分为聚合函数,选择函数,转换函数,预测函数等。除了与普通数据库一样提供了基本操作函数外,还提供了一些特色函数以方便数据统计计算。

函数类别 函数 功能
聚合函数 FILL() 当没有数值时按照FILL函数填充

INTEGRAL(field_key, unit)

计算数值字段值覆盖的曲面的面积值并得到面积之和。

SPREAD(field_key)

计算数值字段的最大值和最小值的差值。

STDDEV(field_key)

计算字段的标准差。
MEAN() mean(field_key)求该范围内数据的平均值(注意:这是依据series来计算。
MEDIAN() MEDIAN求中位数
选择函数

SAMPLE(field_key, N)

随机返回field key的N个值。如果语句中有GROUP BY time(),则每组数据随机返回N个值。

PERCENTILE(field_key, N)

选取某个字段中大于N%的这个字段值。
FIRST() 返回一个字段中最老的取值。
LAST() 返回一个字段中最新的取值。
TOP() 返回一个字段中最大的N个值,字段类型必须是长整型或float64类型。
BOTTOM() 返回一个字段中最小的N个值。字段类型必须是长整型或float64类型。
MAX() 返回一个字段中的最大值。该字段类型必须是长整型,float64,或布尔类型。
MIN() 返回一个字段中的最小值。该字段类型必须是长整型,float64,或布尔类型。
转换函数 DERIVATIVE() 返回一个字段在一个series中的变化率.nfluxDB会计算按照时间进行排序的字段值之间的差异,并将这些结果转化为单位变化率。其中,单位可以指定,默认为1s。
DIFFERENCE() 返回一个字段中连续的时间值之间的差异。字段类型必须是长整型或float64。
预测函数 HOLT_WINTERS() 在许多重要的领域,需要基于时间序列进行预测,此为霍尔特-温特斯法。

第三部分 Grafana的安装与部署

Grafana 是实现 数据展示(数据可视化) 的工具。 Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。

它主要有以下六大特点:

1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;

2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;

3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;

4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;

5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;

6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

Step 1 下载RPM安装包

wget https://dl.grafana.com/oss/release/grafana-6.2.4-1.x86_64.rpm

  

Step 2 安装

yum localinstall grafana-6.2.4-1.x86_64.rpm

 

Step 3 服务开启

systemctl start grafana-server.service    ----开启服务
systemctl status grafana-server.service ----服务状态查看

Step 4 验证

安装后,默认端口为 3000。  可通过浏览器直接登入访问 :http://172.XXX.XXX.XXX:3000

Step 5 Grafana 关于 收集到的数据监控显示

(1) 设置数据源,

注意,数据源类型需选择 InfluxDB 

(2) 可以设置一个Folder,将同类的dashboards 放到一起

(3)设置新的监控项

Format AS 栏位,请选择【Time Series】,不可以选择【Table】

通过 Telegraf + InfluxDB + Grafana 快速搭建监控体系的详细步骤的更多相关文章

  1. Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql

    Telegraf+InfluxDB+Grafana快速搭建实时监控系统  监控postgresql

  2. [转帖] 基于telegraf, influxdb, grafana 建立 esxi 监控

    [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控 https://www.cnblogs.com/hahp/p/7677420.html 之前在 nagi ...

  3. [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控

    之前在 nagios 上建立了 esxi 监控,指标少.配置麻烦.视觉效果差.最近我把 esxi 监控迁移到了 influxdb+grafana 平台上,无论是监控指标.可操作性还是视觉效果都有了很大 ...

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

    Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...

  5. 基于telegraf+influxdb+grafana进行postgresql数据库监控

    前言 随着公司postgresql数据库被广泛应用,尤其是最近多个项目在做性能测试的时候都是基于postgresql的数据库,为了确定性能瓶颈是否会出现在数据库中,数据库监控也被我推上了日程.在网上找 ...

  6. 使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况

    使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况 前言 本文在Debian9下采用Docker的方式安装Telegraf + Influxdb + ...

  7. window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台

    一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb ...

  8. Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(一)

    在做性能测试的时候,重点关注点是各项性能指标,用Jmeter工具,查看指标数据,就是借助于聚合报告,但查看时也并不方便.那如何能更直观的查看各项数据呢?可以通过InfluxDB+Grafana+Jme ...

  9. Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(三)

    在之前系列博文中,已经介绍完了数据采集和数据存储,那数据如何展示呢?所以今天就专门来讲下数据如何展示的问题. 以前博文参考: Docker系列--InfluxDB+Grafana+Jmeter性能监控 ...

随机推荐

  1. echarts 堆叠柱状图 + 渐变柱状图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Mybatis_多表关联查询_resultMap_集合对象_N+1方式实现

    mapper 层 提供 ClazzMapper 和 StudentMapper, ClazzMapper 查询所有班级信息, StudentMapper 根据班级编号查询学生信息. 在 ClazzMa ...

  3. k8s 开船记-触礁:四涡轮发动机撞坏3个引发502故障

    (图片来自网络) 非常抱歉,这次开船触礁故障给您带来麻烦了,请您谅解. 在我们昨天发布 k8s 开船记首航博文后,有园友在评论中发来贺词——“泰坦尼克号出发了[狗头]”,借此吉言,今天船就触礁了,还好 ...

  4. 常见Python爬虫框架你会几个?

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:三名狂客 正文 注意:如果你Python技术学的不够好,可以点击下方链接 ...

  5. MFC unicode字符集与多字节字符集 问题之彻底终结!

    Unicode 和多字节字符集 (MBCS) 支持 Visual Studio .NET 2003   有些国际市场以大字符集来使用日文和中文等语言.为了支持这些市场的编程,Microsoft 基础类 ...

  6. FPGA之驱动sdram控制兼容性移植实验

    cb早在2012年就推出了VIP 视频开发板 V1.4  这套开发板是ep2的,摄像头是ov7670,虽然不如当前的vip20强大,但也算是其雏形. 在vip20后期,cb对sdram以及其他模块进行 ...

  7. 深入理解 Java 反射和动态代理

  8. docker初体验:Docker部署SpringCloud项目eureka-server

    Docker部署SpringCloud项目eureka-server 1 创建eureka-server工程 创建父工程cloud-demo,其pom.xml如下: <?xml version= ...

  9. 【Java】在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  10. 使用python实现哈希表、字典、集合

    哈希表 哈希表(Hash Table, 又称为散列表),是一种线性表的存储结构.哈希表由一个直接寻址表和一个哈希函数组成.哈希函数h(k)将元素关键字k作为自变量,返回元素的存储下标. 简单哈希函数: ...