文章目录
Telegraf+InfluxDB+Grafana的整体架构
InfluxDB
一、InfluxDB下载和安装
1.1、Influx的下载安装
这里选用InfluxDB1.8.4的版本
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4.x86_64.rpm
sudo yum localinstall influxdb-1.8.4.x86_64.rpm
1.2、InfluxDB的配置
1、配置文件路径:/etc/influxdb/influxdb.conf
①禁用信息收集
InfluxDB每个24小时会收集使用信息,这如同是一一个后门,必须关掉!
②禁用每个数据库的序列个数
如果时间序列比较多,需要将该项设置为0,否则会导致时间序列写不到数据库中。
③禁用每个维度最多维度值个数
如果某个维度对应的纬度值特别多(一般是维度值设置错误,比如把时间当维度值),需要将该项设置为0, 否则会导致该维度上的纬度值写不进去。
二、InfluxDB的使用
启动InfluxDB: sudo systemctl start influxd
查看InfluxDB状态: sudo systemctl status influxd
2.1、数据库操作
①进入数据库
cd /usr
bin/influx
②显示数据库
show databases
_internal为内置库
③创建数据库
create database 数据库名
④删除数据库
drop database 数据库名
⑤使用数据库
use 数据库名
2.2、数据保留策略
①保留策略语法
CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DURATION
<duration> REPLICATION <n> [SHARD DURATION <duration>] [DEFAULT]
②创建数据保留策略
CREATE RETENTION POLICY "influx_retention" ON "influxdb" DURATION 30d
REPLICATION 1 DEFAULT;
③查看保留期
SHOW RETENTION POLICIES ON influxdb
④修改保留期
ALTER RETENTION POLICY "influx_retention" ON influxdb DURATION 15d
⑤删除保留期
DROP RETENTION POLICY "influx_retention" ON influxdb
2.3、表增删查操作
①显示所有表
show measurements
②插入数据 (顺序为:表名(不存在则直接新建)+tag的key和value,field的key和value。注意中间的空格。)
use influxdb
insert weather,altitude=1000,area=北 temperature=11,humidity=-4
insert weather,altitude=500,area=北 temperature=18,humidity=5
insert weather,altitude=1000,area=南 temperature=12,humidity=-5
insert weather,altitude=500,area=南 temperature=25,humidity=7
③查询表
select * from weather
设置一下时间显示格式
precision rfc3339
④显示tag
show tag keys from weather
⑤显示field
show field keys from weather
⑥distinct的字段仅是field 不能是tag
当distinct的字段是tag时,查询不到数据
⑦group by仅是tag 不能是field
当group by查询字段为field时 会把整表打印出来 tag值为空
⑧删除表
DROP MEASUREMENT 表名
2.4、用户操作
①显示用户
show users
②创建用户
【普通用户】创建用户并设置密码
CREATE USER 用户名 WITH PASSWORD '密码';
【管理员用户】
create user "用户名" with password '密码' with all privileges;
③ 修改用户密码
SET PASSWORD FOR 用户 = '新密码'
④删除用户
drop user admin;
3.4、数据库访问权限
①用户授权
授权用户数据库操作权限
GRANT ALL PRIVILEGES ON 数据库名 TO 用户名(只针对某个数据库赋予操作权限)
赋予用户管理员权限
GRANT ALL PRIVILEGES TO 用户名(赋予此用户对所有表的操作权限)
②撤销授权
撤销用户数据库操作权限
Revoke ALL PRIVILEGES ON 数据库名 FROM 用户名
撤销用户管理员权限
Revoke ALL PRIVILEGES FROM 用户名
2.5、开启用户登录认证
①开启登录认证
在Influxdb 配置文件influxdb.conf中,开启用户登录认证,添加如下内容:
auth-enabled = true
②开启认证后无密码登录
bin/influx
③开启认证后有密码登录
bin/influx -username 用户名 -password 密码
Grafana
一、Grafana是什么
①多种展示方式:热图,折线图,图表等
②多种数据源:
Graphite:时间序列 图形系统
③InfluxDB
Opentsdb:基于HBase
Prometheus:开源 服务监控系统和时序数据库
ElasticSearch,elk
④多种通知提醒:
Email,SMS,钉钉
⑤混合展示:
同一个图表中,混合使用不同的数据源
二、Grafana的下载、安装和使用
2.1、Grafana的下载、安装
这里选用的9.1.2的版本https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.1.2-1.x86_64.rpm
sudo yum install grafana-enterprise-9.1.2-1.x86_64.rpm
2.2、开启Grafana服务
①开启服务
systemctl start grafana-server
②查看端口验证(Grafana默认监听3000端口)
netstat -tulnp |grep 3000
注:我是因为用的云服务器需要在安全组开放3000端口,否则会连接不上
2.3、浏览器访问并配置Grafana
①打开浏览器输入 IP:3000 访问
②访问成功之后输入默认的用户名和密码登录
默认的用户名和密码均为:admin
3.4 成功访问grafana主页
2.4、Grafana添加InfluxDB数据源
第一步:点击图示红框位置添加你的第一个数据源
第二步:点击InfluxDB,如果当前页面没有找到,可以在上面搜索框直接搜
第三步:给此链接起个名字
第四步:
URL:写Influx所在主机的ip加上端口号 如:http://192.168.1.1:8086
ACCESS:选Server
下面两个不填
第五步:
如果之前创建了InfluxDB新用户就把Basic auth打开并在下面填上用户名跟密码
第六步:
Database:填写所要使用的数据库名
User:Grafana的用户名
Password:Grafana的密码
HttpMethod:选择GET
第七步:
第八步:点击Back返回首页
2.5、添加DASHBOARDS仪表盘
第一步:点击图示红框位置添加仪表盘
第二步:
第三步:
建议用SQL进行查询,理由不用我说了吧!
注:因为现在还没有用Telegraf采集实时数据,可以用Java写一个实时随机生成的假数据来充当实时数据
Java代码链接:https://wwc.lanzout.com/iD0Yq0b823di
密码:6666
可以根据自己的需求换一下数据格式
Telegraf
一、Telegraf是什么
Telegraf 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到InfluxDB 数据库。内存占用小,通过插件系统可轻松添加支持其他服务的扩展。
Telegraf metric是用于在处理期间对数据建模的内部表示。这些指标完全基于InfluxDB的数据模型,包含四个主要组件:
度量名称(Measurement)
标签(tags)
字段(Field)
时间戳(time)
二、为什么要用Telegraf
Telegraf 可以采集多种组件的运行信息包括cpu、memory等,不需要自己手动写定时脚本采集,降低了数据获取的难点
Telegraf使用配置比较简单
Telegraf按照时间序列采集数据
轻量级,占用内存小
三、Telegraf的下载、安装、配置和使用
3.1、Telegraf的下载和安装
这里选用Telegraf1.23版本https://docs.influxdata.com/telegraf/v1.23/install/?t=RedHat+%26amp%3B+CentOS
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
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
3.2、Telegraf的配置
修改配置将数据输出到InfluxDB
vi /etc/telegraf/telegraf.conf
3.3.Telegraf的使用
①重启 telegraf 服务,使配置文件生效
service telegraf restart
②启动telegraf(Linux 不同系统服务的启动方式不同)
systemctl start telegraf
③查看telegraf的状态
systemctl status telegraf
④关闭telegraf
systemctl stop telegraf
上述操作全部完成后可进入Influxdb查看是否采集到系统数据
随便查看CPU的前10条数据可以看到已经有数据被采集到InfluxDB中了
Telegraf+InfluxDB+Grafana实时运维监控大屏
去这个网址下载一个DashBoard https://grafana.com/grafana/dashboards/?dataSource=influxdb&collector=telegraf
第一步:
第二步:
第三步:选择导入,导入刚下载的JSON文件
第四步:上述操作完成后就可以看到实时监控的大屏