部署Grafana+influxdb

时间:2024-04-06 13:13:38

场景:需要展示源站的请求量和404状态的top数据,在没有elk的情况下,经过调研最终采用Grafana+influxdb来实现

部署过程

1. 安装grafana

这个单独写一个文章,这里就省略步骤了

2. 安装influxdb

# wget https://repos.influxdata.com/centos/6/x86_64/stable/influxdb-1.7.4.x86_64.rpm
# rpm -ivh influxdb-1.7.4.x86_64.rpm
# vim /etc/influxdb/influxdb.conf

修改监听端口

bind-address = "0.0.0.0:8087"

启动服务

# service influxdb start

新版本已经没有web界面,所以度娘的一下需要使用Chronograf来使用,所以感兴趣的朋友可以去尝试,我这里使用grafana展示数据

3. 创建数据库

输入influx进入数据库

# influx
Connected to http://localhost:8086 version 1.7.4
InfluxDB shell version: 1.7.4
Enter an InfluxQL query
> 

创建数据库

> create database testdb

显示数据库

> show databases
name: databases
name
----
_internal
testdb

因为没有建表语句,直接插入数据即可,先选择数据库,插入数据,格式为:
insert measurements,tag,tag field
measurements:static_rate_of_flow 相当于mysql的表名
tag:采用key=value的格式,比如host=host_01中,tag名称是host,值是host_01,tag是带索引的,一条记录可以有多个tag,使用“,”号分割
field:value=10 field是必须存在的,也是使用key=value格式,在tag后面使用一个空格分割,这里用于记录/index请求的次数,一般每分钟一次插入一次数据

> use testdb
Using database testdb
> insert static_rate_of_flow,host=host_01,uri=/index value=10
> select * from static_rate_of_flow
name: static_rate_of_flow
time                host    uri    value
----                ----    ---    -----
1553074402876164558 host_01 /index 10

4. grafana添加influxdb源

点击Add data source
部署Grafana+influxdb
Name:自定义名字
Type:选择influxdb
URL:填写接口地址,http接口的默认端口是8086
Database:选择数据库
部署Grafana+influxdb
点击Save & Test测试数据源
部署Grafana+influxdb

5. 展示数据

添加一个graph类型,这里使用饼图
选择influxdb的数据源
插入一条查询语句,为了展示单位时间的top排行,当前的方法是:
(1)使用python每分钟将上一分钟的页面请求top5数据上报influxdb
(2)influxdb使用连续查询策略(cq),每五分钟收集上一小时的数据量,所以图形里面的数据每五分钟会更新一次
(3)在查询cq库的时候,是不支持top函数的,会把连续查询的数据全部展示出来,所以这里看到的记录数是大于5的
(4)通过此图可以看到每小时累计的请求量最大的uri,当需要查问题的时候可以通过监控图知道那些文件请求量大
(5)可以通过此方法展示ip请求量、下载的数据量、请求状态等等多种数据
部署Grafana+influxdb

6. 补充

刚才提到的连续查询,我也是简单使用,具体的方法会单独写一篇文章分享。