# 基于ELK框架的静态/动态数据可视化系统
本项目源码地址:https://github.com/withoutabc/ELKDATA
本项目所展示的**可视化图表**均已单独保存于`ELKDATA/docs/dashboard/`目录下。
## ELK介绍
### 组成
ELK是`Elasticsearch`、`Logstash`、`Kibana`三大开源框架首字母大写简称。
#### Elasticsearch——搜索引擎
Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎,是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。无论您是结构化文本还是非结构化文本,数字数据或地理空间数据,Elasticsearch都能以支持快速搜索的方式有效地对其进行存储和索引。
#### Logstash——数据输送
Logstash是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到指定的“存储库”中。Logstash能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用Grok从非结构化数据中派生出结构,从IP地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。
#### Kibana——可视化
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。并且可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以汇总、分析和搜索重要数据日志。还可以让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。
## ELK框架用于数据可视化的优势
1. **统一的数据源**:ELK整合了Elasticsearch、Logstash和Kibana,可以通过Logstash将各种数据源的数据进行收集和处理,然后通过Elasticsearch进行索引和存储。这意味着可以从不同的数据源中获取数据,并将其统一存储在一个集中的位置,方便进行统一的数据可视化。
2. **多样化的可视化选项**:Kibana作为ELK的可视化工具,提供了丰富多样的图表和仪表盘选项。你可以通过Kibana创建各种类型的图表(如柱状图、折线图、饼图等)、地图、数据表格等,以及自定义仪表盘,来展示和分析数据。
3. **实时数据展示**:ELK具备实时处理和分析日志数据的能力。你可以实时查看最新的数据,并将其实时展示在可视化界面上。
4. **大数据支持**:ELK基于分布式架构,可以处理大规模的数据集。Elasticsearch的分片和副本机制保证了系统的高性能和高可用性,在处理大量数据时仍能保持较高的响应速度。
## 数据可视化
### 静态数据可视化——航班信息
#### 数据源
- 来源:从`Kibana`中下载的飞机航班数据样例。
- 复杂性:共有**2000+**行,**20+**列数据。
(数据源文件在项目`ELKDATA/data/static/`目录下)
#### 数据介绍
数据包含了每个航班的出发时间、平均票价、航空公司、起始地城市、起始地国家、目的地城市、目的地国家、星期、出发机场(及ID)、目标机场(及ID)、出发地/目的地天气、航程(公里+英里单位)、是否取消、是否延迟、延迟类型、航班号、航行时间、出发地/目的地经纬度坐标等信息。
#### 部署
这里用`docker compose`实现`Elasticsearch`和`Kibana`的快速部署。
```yml
# 提前创建容器网络
# docker network create elk
version: "2"
services:
elasticsearch:
image: elasticsearch:7.13.1
container_name: elasticsearch
volumes:
- "./elasticsearch_data:/bitnami/elasticsearch"
ports:
- "9200:9200"
- "9300:9300"
environment:
- TZ=Asia/Shanghai
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
privileged: true
ulimits:
nofile:
soft: 65536
hard: 65536
networks:
- elk
kibana:
image: kibana:7.13.1
container_name: kibana
environment:
- elasticsearch.hosts=http://elasticsearch:9200
- TZ=Asia/Shanghai
restart: always
ports:
- "5601:5601"
volumes:
- "./kibana_data:/bitnami/kibana"
depends_on:
- elasticsearch
networks:
- elk
networks:
elk:
external: true
```
部署完成之后导入数据,在`Discover`界面查看:![](docs/dashboard/static/discover.png)
可以直观地看到每个时间段的记录数。
#### 数据可视化
这里先展示一下最终的整体效果:![](docs/dashboard/static/static-dashboard.png)
接下来选取几个有代表性地简单说明:
1. **平均票价**![](docs/dashboard/static/avgPrice.png)
2. **航空公司占比情况**
- 这里都是虚拟的航空公司
![](docs/dashboard/static/airline-carrier.png)
3. **航班数和平均票价情况**![](docs/dashboard/static/count+price.png)
4. **航班延迟和取消情况**
- 竖线表示取消,蓝色逗号表示延迟率
![](docs/dashboard/static/delay+cancel.png)
5. **飞机延误类型统计**![](docs/dashboard/static/delay-type.png)
6. **起初地和目的地对比**![](docs/dashboard/static/vs.png)
7. **机场间的联系**![](docs/dashboard/static/airport-connection.png)
8. **航班起始地和目的地地图**![](docs/dashboard/static/ori+dest.png)
- 以上所有图表均可以**灵活调节时间范围**,并随着时间推移自动更新。
### 动态数据可视化——Web应用的后台数据
#### 数据源
由于Web应用与本赛道主题关系不大,我只用`golang`模拟了几个接口,并简单地编写了前端界面。这里只做简单介绍:
| 路径 | 作用 | 备注 |
| :------: | :---------------------------: | :------------------------------: |
| `/visit` | 进入web界面 | 请求此接口后自动请求`/ip` |
| `/ip` | 获取登录主机的地址 | 有时请求信息速度较慢,请耐心等待 |
| `/slow` | 模拟耗时较长的业务,睡500毫秒 | 点击`/visit`界面的按钮即可访问 |
我已用Docker将代码打包成镜像部署在服务器上:http://49.7.114.49:5888/visit
访问来源的地址信息将会**以日志形式记录,并实时被ELK框架读取分析**。
换句话说,**这里的数据来自对接口的访问**。
#### 数据介绍
一共有三类有效日志格式:
1. `level`+`msg`+`time`:记录请求过程中产生的错误信息(msg格式不固定,可能是任何信息)。
```json
{"level":"error","msg":"请求失败:Get \"http://ip-api.com/json/125.86.165.54?fields=61439\u0026lang=zh-CN\": read tcp 192.168.128.2:40052-\u003e208.95.112.1:80: read: connection timed out","time":"2023-09-12T18:41:40+08:00"}
```
2. `level`+`msg`+`time`,`msg`含有`country`+`region`+`city`+`latitude`+`longitude`:记录客户端地址。
```json
{"level":"info","msg":"country:中国,region:河南,city:郑州市,latitude:34.747200,longitude:113.625000","time":"2023-09-15T22:13:27+08:00"}
```
3. `timestamp`+`status_code`+`client_ip`+`latency`+`method`+`path`:记录请求信息和响应结果。
```json
timestamp:2023-09-12 18:24:06,status_code:200,client_ip:125.86.165.54,latency:5.672637623s,method:GET,path:/ip
timestamp:2023-09-12 18:24:14,status_code:200,client_ip:125.86.165.54,latency:351.117µs,method:GET,path:/visit
```
- 以上字段信息的获取都借助了一些框架或API接口,这里不赘述。
#### 数据收集
基于之前的静态数据可视化(`elasticsearch`+`kibana`),现在额外部署`logstash`,用于不断将日志信息收集处理并发送至`elasticsearch`中。
```yml
# docker-compose.yml中添加
logstash:
没有合适的资源?快使用搜索试试~ 我知道了~
竞赛资料源码-2023年全国大学生数字媒体科技作品及创意竞赛——数据可视化赛道作品.zip
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共42个文件
png:24个
go:3个
yml:2个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 170 浏览量
2024-02-06
16:57:26
上传
评论
收藏 14.98MB ZIP 举报
温馨提示
【目标受众】: 本项目适合IT相关专业各种计算机技术的源代码和项目资料,如计科、人工智能、通信工程、自动化和电子信息等的在校学生、老师或者企业员工下载使用。 也适合小白学习进阶,可以用作比赛项目、可以进行项目复刻去参加同赛道比赛。 【资源内容】: 源码与竞赛资料:教育部认可的大学生竞赛备赛资料代码、源码、竞赛总结。 功能与质量保证:这个资源库是一个宝贵的学习平台,有助于他们深入了解计算机技术的原理和应用。这些源码经过测试和验证,可以直接运行,方便学生快速上手并开始实践。 【应用场景】: 竞赛准备:适用于各种教育部认可的竞赛,如全国电子设计大赛、全国大学生智能汽车竞赛等,他们可以借助这些资料了解竞赛的规则、要求和技巧。 学习与项目开发:可以用作毕设、课设、作业和竞赛项目的开发基础,可以使用这些源码作为项目开发的基础,快速构建出具有竞争力的作品。 【互动与交流】: 资料鼓励下载和使用这些资源,并欢迎学习者进行沟通交流、互相学习、共同进步。这种互动式的学习方式有助于形成良好的学习氛围,促进知识的共享和传播,为计算机相关专业的学习者提供了一个全面的学习和发展平台。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 42 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/421fe3cf48564128aca47ee460992edd_m0_63168877.jpg!1)
![avatar-vip](https://csdnimg.cn/release/downloadcmsfe/public/img/user-vip.1c89f3c5.png)
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)