1.grafana介绍
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
1)、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2)、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB,(postgres)等;
3)、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty、Email等获得通知;
4)、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
5)、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
6)、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
grafana 不支持带有变量的模板报警
2.grafana安装
#下载
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.3-1.x86_64.rpm
#安装
yum install initscripts fontconfig -y
rpm -ivh grafana-enterprise-8.3.3-1.x86_64.rpm
#启动
systemctl start grafana-server
#登陆
Ip:3000 , 默认登陆信息admin。
3.influxdb 介绍
InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。
Telegraf
Telegraf负责收集监控数据,并将数据输出到influxDB数据库,它支持多种类型的数据输入,比如httpjson、mysql、rabbitMQ、pgsql等等。
InfluxDB是time-series data数据库,负责高效处理实时数据。
Chronograf是图形展示工具,负责从InfluxDB收集数据,并将数据图表以web的形式发布。
Kapacitor是InfluxDB的数据处理引擎。
Enterprise Manager是正在开发的UI系统,用于更加广泛的图形展示。
该方案中,我们所采用的是该时间序列平台中的数据采集(Telegraf)和数据存储(InfluxDB)部分。数据展示部分,由于InfluxData公司的Chronograf为新推出产品,相较于目前广泛使用的Grafana还不够成熟,因此暂不考虑;
常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图;可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计。
以下是2021年2月时序数据库排名:
InfluxDB有三大特性:
1). Time Series(时间序列):可以使用与时间有关的相关函数(如最大,最小,求和等)
2). Metrics(度量):可以实时对大量数据进行计算
3. Eevents(事件):它支持任意的事件数据
特点
1).Schemaless(无结构),可以是任意数量的列
2).Scalable(可扩展):min,max,sum,count,mean,median 一系列函数,方便统计
3).Native HTTP API, 内置http支持,使用http读写
4).Powerful Query Language 类似sql
5). Built-in Explorer 自带管理工具,功能强大
4.influxdb 安装
#下载 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.3.x86_64.rpm #安装 |
sudo yum -y localinstall influxdb-1.8.3.x86_64.rpm #启动 |
Influxd(临时后台启动)
systemctl start influxd(后台启动)
默认端口为Web端8083 , API端8086 , 默认登陆信息admin
5.Telegraf介绍
Telegraf 是一个插件驱动的服务器代理,用于从数据库、系统和 IoT 传感器收集和发送指标和事件。
Telegraf 是用 Go 编写的,可以编译成一个没有外部依赖关系的二进制文件,并且需要非常小的内存占用。并写入到 InfluxDB数据库 , 在需要监控的机器上安装
为什么要用telegraf和influxdb?
①、在数据采集和平台监控系统中,Telegraf 可以采集多种组件的运行信息,而不需要自己手写脚本定时采集,降低数据获取的难度;
②、Telegraf 配置简单,只要有基本的 Linux 基础即可快速上手;
③、Telegraf 按照时间序列采集数据,数据结构中包含时序信息,influxdb就是为此类数据设计而来,使用 Influxdb 可以针采集得到的数据完成各种分析计算操作;
6.Telegraf安装
#下载
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.8.3-1.x86_64.rpm
#安装
sudo yum localinstall telegraf-1.8.3-1.x86_64.rpm
#启动
systemctl start telegraf
4).centos7-timescaledb插件安装(基于postgresql12)
https://blog.youkuaiyun.com/eryou_979/article/details/117966613
7.配置
三者之间的关系为:telegraf(监控数据收集)->influxdb(监控数据存储)->(监控数据展示)
1).配置telegraf
#数据源配置(outputs.influxdb节点)
[[outputs.influxdb]]
urls = ["http://192.168.18.118:8086"] #infulxdb地址
database = "telegraf" #数据库
precision = "s"
timeout = "5s"
username = "admin" #帐号
password = "admin" #密码
# cpu配置(inputs.cpu节点):
[[inputs.cpu]]
## Whether to report per-cpu stats or not
percpu = true
## Whether to report total system cpu stats or not
totalcpu = true
测试配置是否成功
示例
# 测试 /etc/telegraf/telegraf.conf 配置文件中输入 cpu 配置是否正确
telegraf -config /etc/telegraf/telegraf.conf -input-filter cpu -test
# 测试 /etc/telegraf/telegraf.conf 输出 influxdb 配置是否正确
telegraf -config /etc/telegraf/telegraf.conf -output-filter influxdb -test
# 测试 /etc/telegraf/telegraf.d/mysql.conf 输入 cpu 和输出 influxdb 配置是否正确
telegraf -config /etc/telegraf/telegraf.d/mysql.conf -input-filter cpu -output-filter influxdb -test
2).grafana告警配置
#Grafana配置SMTP账户
vim /etc/grafana/grafana.ini
[smtp]
enabled = true #启用smtp
host = smtp.qq.com:465 #qq smtp服务地址
user = 709****53@qq.com #qq邮箱用户名
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = ********** #授权密码
from_address = 709****53@qq.com #邮件From地址,和登录用户一致即可。