第一部分 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. 图形界面GUI

    JFrame jframe = new JFrame(); //创建一个窗口 jframe.setVisible(true) //设置窗口显示 jframe.setLocation() //设置窗口位 ...

  2. 2017 CCPC秦皇岛 L题 One Dimensions Dave

    BaoBao is trapped in a one-dimensional maze consisting of  grids arranged in a row! The grids are nu ...

  3. linux mysql,tomcat与java的安装

    先将服务器的安全组设置为 把所有端口或者所需要的端口开放 然后测试远程访问 ssh 用户@ip                       登录 输入密码 service iptables stop  ...

  4. 基于LAMP php7.1搭建owncloud云盘与ceph对象存储S3借口整合案例

    ownCloud简介 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务.当前主要功能包括文件管理(内建文件分享).音乐.日历.联系人等等,可在PC和服务器上运行. 简单来说就是一个基于 ...

  5. 深度实践KVM(1-8章)

    第一章 企业虚拟化选型与KVM介绍 1.1 KVM的前世今生 1.虚拟化技术的演进过程 软件模拟——>虚拟化层翻译——>容器虚拟化 虚拟化层翻译可以分为: (1)软件捕捉翻译,即软件全虚拟 ...

  6. 模拟摄像头解码模块最新测试 TVP5150模块 FPGA+SDRAM+TVP5150+VGA 实现PAL AV输入 VGA视频输出

    模拟摄像头解码模块最新测试  TVP5150模块  FPGA+SDRAM+TVP5150+VGA  实现PAL AV输入 VGA视频输出 测试使用电视机顶盒的AV模拟信号输入,VGA显示器输出测试,效 ...

  7. docker-网络模式

    Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .host host:容器将不会虚拟出自己的网 ...

  8. vue中通过.sync修饰符实现子组件修改父组件数据

    vue父子通讯是单向数据流,也就是子组件不能修改父组件的值,但是在一些情况下是需要这样做的. 先看官方文档: 接下来举例实现 1.实现一个双向数据绑定,子组件改变的时候,父组件也在改变 父组件 < ...

  9. 建议2:注意Javascript数据类型的特殊性---(1)防止浮点数溢出

    1.防止浮点数溢出 二级制的浮点数不能正确地处理十进制的小数,因此 0.1+0.2不等于0.3 num = 0.1+0.2; //0.30000000000000004 这是JavaScript中经常 ...

  10. CCF-CSP题解 201912-3 化学方程式

    判断化学方程式是否配平. 字符串处理. 有点编译原理递归下降法的感觉. 考场源码,比较粗糙. // INFO BEGIN // // User = 201911513451(陶杨) // Group ...