开源实时日志分析ELK平台。
0. ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。官方网站:https://www.elastic.co/products
框架 |
简介 |
作用 |
Elasticsearch |
开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、基于reasful风格、支持海量高并发的准实时搜索场景、稳定、可靠、快速、使用方便等。 |
接收搜集的海量结构化日志数据,并提供给kibana查询分析 |
Logstash |
开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。 |
用于收集日志,对日志进行过滤形成结构化数据,并转发到elasticsearch中 |
Kibana |
开源日志报表系统,对elasticsearch以及logstash有良好的web页面支持。 |
对elasticsearch提供的数据进行分析展示 |
1. ELK安装(ELK三个需要版本一致,占内存比较大需用内存大的系统)
框架 |
下载地址 |
Elasticsearch |
https://www.elastic.co/cn/downloads/elasticsearch |
Logstash |
https://www.elastic.co/cn/downloads/logstash |
Kibana |
https://www.elastic.co/cn/downloads/kibana |
演示使用的是linux系统
下载tar.zg版本到linux,ELK文件夹,可以使用如下命令
wget -b https://artifacts.elastic.co/downloads/logstash/logstash-6.7.0.tar.gz
wget -b https://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gz
wget -b https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz
(等。。。。)
然后解压
tar -zxvf logstash-6.7.0.tar.gz
tar -zxvf kibana-6.7.0-linux-x86_64.tar.gz
tar -zxvf elasticsearch-6.7.0.tar.gz
2. 修改Elasticsearch配置文件并启动
vi elasticsearch-6.7.0/config/elasticsearch.yml
打开系统9200端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent #--permanent永久生效,没有此参数重启后失效
重新加载防火墙:
firewall-cmd --reload
启动 /ELK/elasticsearch-6.7.0/bin/elasticsearch -d (-d为后台启动,确保当前用户为非root用户)
启动失败的原因及解决方案:https://blog.csdn.net/gebitan505/article/details/54709515
https://www.cnblogs.com/zhi-leaf/p/8484337.html
3. 修改kibana配置文件并启动
vi /kibana-6.7.0-linux-x86_64/config/kibana.yml
打开系统5601端口
/sbin/iptables -I INPUT -p tcp --dport 5601 -j ACCEPT
/ELK/kibana-6.7.0-linux-x86_64/bin/kibana & (当前用户需要root用户或有相应的权限。后加&是后台运行,exit可以进入shell)
4. 修改Logstash配置文件
vi /ELK/logstash-6.7.0/config/logstash.yml
vi /ELK/logstash-6.7.0/config/logstash-sample.conf
input 配置参考:https://www.elastic.co/guide/en/logstash/current/input-plugins.html
output 配置参考:https://www.elastic.co/guide/en/logstash/current/output-plugins.html
filter 配置参考:https://www.elastic.co/guide/en/logstash/6.4/filter-plugins.html
Logstash Reference:https://www.elastic.co/guide/en/logstash/6.4/index.html
此为练习用标准配置,但在生产环境中需要自定义myconfig.cfg配置文件。
启动失败的原因及解决方案:https://stackoverflow.com/questions/53780598/logstash-start-with-error-pipelines-yaml-file-is-empty
打开9600端口和5044端口
启动 /ELK/logstash-6.7.0/bin/logstash -f /ELK/logstash-6.7.0/conf/logstash-sample.conf & (运行成功后exit)
完毕!!后边简单使用
随着互联网技术和计算机技术的快速发展及广泛的应用,当前服务器每天产生大量的访问日志。一方面需要对日志进行快速的排查,加快工作进程,提高工作效率。另一方面对这些日志的分析和挖掘可以得到符合用户兴趣和习惯的服务和产品,进而提高企业的销量。
日志分析的难点:
日志分析的作用:
一个完整的海量日志分析处理过程应当分为集中存储、搜索(检索)和分析日志。日志集中存储,实时监测日志,快速搜索分析,及时发出告警。另外还需要日志数据的可视化,通过报表、表格、图表等形式展示日志的数量、级别、详细信息等。复杂的还需要加入流计算。
收集数据————切割筛选数据————分析数据————统计数据————可视化数据展示
面对海量的日志文件数据,所要考量一下几点技术细节:
1:如何收集日志
2:如何存储日志
3:如何分析日志:
ELK stack权威指南 饶琛琳
http://www.aboutyun.com/thread-8317-1-1.html
http://www.aboutyun.com/thread-8317-1-1.html
https://blog.csdn.net/ljp812184246/article/details/51175789
https://blog.csdn.net/enweitech/article/details/73332630
https://my.oschina.net/shyloveliyi/blog/786337
https://wenku.baidu.com/view/d92923c49a89680203d8ce2f0066f5335a816782.html
https://sematext.com/blog/elasticsearch-ingest-node-vs-logstash-performance/
elasticsearch : https://github.com/elastic/elasticsearch
kinaba : https://github.com/elastic/kibana
beats : https://github.com/elastic/beats
logstash :https://github.com/elastic/logstash
官网:https://www.elastic.co/