1、海量日志监控告警系统
2、大数据定制化运维监控系统
3、 自动化话运维监控系统
4、InfluxDB
InfluxDB是一个由InfluxData开发的开源时序型数据库。它由Go语言写成,着力于高性能地
查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据
等场景。
Influxdb 有如下三大特性:
基于时间序列
可度量性
基于事件
• 下载
wget https://dl.influxdata.com/influxdb/releases/influxdb-
1.7.8_linux_amd64.tar.gz
• 解压
tar xf influxdb-1.7.8_linux_amd64.tar.gz
• 创建目录
mkdir -p /home/hadoop/data/influxdb/data
mkdir -p /home/hadoop/data/influxdb/log
mkdir -p /home/hadoop/data/influxdb/meta
mkdir -p /home/hadoop/data/influxdb/wal
• 目录解释
安装目录
• 修改配置
[hadoop@hadoop01 influxdb]$ egrep -v "^#|^$|#" influxdb.conf
[meta]
dir = "/home/hadoop/data/influxdb/meta"
[data]
dir = "/home/hadoop/data/influxdb/data"
wal-dir = "/home/hadoop/data/influxdb/wal"
series-id-set-cache-size = 100
[coordinator]
[retention]
enabled = true
check-interval = "30m"
• 启动
前台启动:
bin/influxd -config ../etc/influxdb/influxdb.conf
后台启动:
nohup bin/influxd -config ../etc/influxdb/influxdb.conf &
• 登录
[hadoop@hadoop01 usr]$ bin/influx
> show databases;
name: databases
name
----
_internal
• 数据库操作
显示数据库
show databases
创建数据库
create database influxdb
删除数据库
drop database influxdb
使用数据库
use influxdb
• 数据保留策略
保留策略语法
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
06 InfluxDB CLI实操
• 表增删查操作
显示所有表
show measurements
插入数据
> 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
删除表
DROP MEASUREMENT weather
• 用户操作
显示用户
show users
创建用户
【普通用户】创建用户并设置密码
CREATE USER influx WITH PASSWORD 'influxdb';
【管理员用户】
create user "admin" with password 'admin' with all privileges;
修改用户密码
SET PASSWORD FOR influx = 'influx'
删除用户
drop user admin;
• 数据库访问权限
用户授权
授权用户数据库操作权限
GRANT ALL PRIVILEGES ON influxdb TO influx
赋予用户管理员权限
GRANT ALL PRIVILEGES TO influx
备注:只能使用admin权限才可以操作数据库
撤销授权
撤销用户数据库操作权限
Revoke ALL PRIVILEGES ON influxdb FROM influx
撤销用户管理员权限
Revoke ALL PRIVILEGES FROM influx
• 开启用户登录认证
开启登录认证
在influxdb 配置文件influxdb.conf中,开启用户登录认证,添加如下内容:
[http]
auth-enabled = true
开启认证后无密码登录
bin/influx
开启认证后有密码登录
bin/influx -username influx -password influx
• 构建Maven项目
IDEA构建InfluxDB Java Maven项目
引入InfluxDB依赖
<dependency>
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>2.17</version>
</dependency>
创建InfluxDB工具类
InfluxDBUtil
InfluxDB增删查
InfluxDBManager
5、grafana
Grafana是开源的、炫酷的可视化监控、分析工具,它主要包含以下特点:
多种展示方式
支持多数据源
多种通知提醒
混合展示
Grafana支持接入当前各种主流的数据库,并能将各数据库中的数据以非常灵活炫酷的图表
展现出来,同时也因为是开源软件方便二次开发定制。
另外当前主流开源的监控系统,如zabbix、prometheus、open-falcon等均能与Grafana完美
结合起来展示图表数据。
安装方式
https://grafana.com/docs/grafana/latest/installation/rpm/
下载
文档地址:https://grafana.com/grafana/download?platform=linux
下载命令:wget https://dl.grafana.com/oss/release/grafana-7.2.0.linux
amd64.tar.gz
解压
解压命令:tar -zxvf grafana-7.2.0.linux-amd64.tar.gz
启动服务
启动命令:./bin/grafana-server web
登录
登录地址:http://192.168.20.121:3000
• 引入依赖
<dependency>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<version>1.0.2</version>
</dependency>
• 模拟数据
编写MockWeatherData模拟数据
• 查看InfluxDB时序数据
select * from weather
• Grafana整合InfluxDB
添加数据源
创建dashboard
保存dashboard
•
logo
•
新建按钮
•
管理Dashboard
•
explore
•
告警
•
设置
•
管理设置
•
用户设置
•
帮助
•
Dashboard设置
•
循环视图模式
6、Telegraf
Telegraf 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到
InfluxDB 数据库。内存占用小,通过插件系统可轻松添加支持其他服务的扩展。
Telegraf metric是用于在处理期间对数据建模的内部表示。这些指标完全基于InfluxDB的
数据模型,包含四个主要组件:
度量名称(Measurement)
标签(tags)
字段(Field)
时间戳(time)
可以采集多种组件
配置简单
与InfluxDB完美结合
1.下载
地址:wget https://dl.influxdata.com/telegraf/releases/telegraf-
1.15.3_linux_amd64.tar.gz
2.解压
tar xf telegraf-1.15.3_linux_amd64.tar.gz
3.修改配置
[hadoop@hadoop01 telegraf]$ vi telegraf.conf
urls = ["http://192.168.20.121:8086"]
database = "influxdb"
retention_policy = "influx_retention"
username = "influx"
password = "influx"
4.启动服务
bin/telegraf --config ../etc/telegraf/telegraf.conf
5.查看Influxdb
> show measurements
7、Telegraf+InfluxDB+Grafana
启动Telegraf服务
bin/telegraf --config ../etc/telegraf/telegraf.conf
启动InfluxDB服务
bin/influxd -config /home/hadoop/app/influxdb-1.7.8-1/etc/influxdb/influxdb.conf
启动Grafana服务
./bin/grafana-server web
添加InfluxDB数据源
Grafana制作监控大屏
https://grafana.com/grafana/dashboards?dataSource=influxdb&collector=Telegraf