ELK 日志分析系统

这篇具有很好参考价值的文章主要介绍了ELK 日志分析系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、日志管理方案

二、完整日志系统基本特征

三、ELK 简介

ELK组件:

1、ElasticSearch

2、Logstash

3、Kibana

 可以添加的其它组件:

 1、Filebeat

2、缓存/消息队列(redis、kafka、RabbitMQ等)

3、Fluentd

三、ELK 的工作原理

四、ELK部署

1、Elasticsearch部署

 ①关闭防火墙和安全机制

 ②设置Java环境

③安装elasticsearch—rpm包

④修改elasticsearch主配置文件

⑤es 性能调优参数

⑥启动elasticsearch是否成功开启

⑦查看节点信息

2、安装 Elasticsearch-head 插件

①编译安装 node

②安装 phantomjs

③安装 Elasticsearch-head 数据可视化工具

④修改 Elasticsearch 主配置文件

⑤启动 elasticsearch-head 服务

⑥通过 Elasticsearch-head 查看 Elasticsearch 信息

⑦插入索引

3、 ELK Logstash 部署(在 Nginx 节点上操作)

①关闭防火墙和安全机制

②更改主机名

③设置Java环境

④安装nginx服务

⑤安装logstash

⑥测试 Logstash

⑦定义 logstash配置文件,读取nginx日志

4、ELK Kiabana 部署 Kiabana

①安装 Kiabana

②设置 Kibana 的主配置文件

③创建索引


一、日志管理方案

1、服务器数量较少时

可以直接登录到目标主机查看日志,通过rsyslog工具或编写shell、python脚本实现日志收集,并集中保存到统一的日志服务器

2、服务区数量较多时

使用ELK大型日志系统,实现日志收集、存储、检索和分析

3、容器环境

使用ELK或Loki+Granfana

二、完整日志系统基本特征

收集:能够采集多种来源的日志数据
传输:能够稳定的把日志数据解析过滤并传输到存储系统
存储:存储日志数据
分析:支持UI分析
警告:能够提供错误报告,监控机制

三、ELK 简介

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。

ELK组件:

1、ElasticSearch

是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索数据库引擎,用来存储各类日志,并创建索引,方便全文检索。集群化部署,节点分三种类型:master/data/client,设置相同的cluster.name并使用Zen Discovery模块通过单播实现集群中节点的服务发现。

2、Logstash

作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给 Elasticsearch。

Logstash 由 Ruby 语言编写,运行在 Java 虚拟机(JVM)上,是一款强大的数据处理工具, 可以实现数据传输、格式处理、格式化输出。Logstash 具有强大的插件功能,常用于日志处理。 

3、Kibana

 Kibana 通常与 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 提供图形化的 web 界面来浏览 Elasticsearch 日志数据,可以用来汇总、分析和搜索重要数据

 可以添加的其它组件:

 1、Filebeat

轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。常应用于 EFLK 架构当中

filebeat 结合 logstash 带来好处:

1)通过 Logstash 具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻 Elasticsearch 持续写入数据的压力

2)从其他数据源(例如数据库,S3对象存储或消息传递队列)中提取

3)将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件

4)使用条件数据流逻辑组成更复杂的处理管道

2、缓存/消息队列(redis、kafka、RabbitMQ等)

可以对高并发日志数据进行流量削峰和缓冲,这样的缓冲可以一定程度的保护数据不丢失,还可以对整个架构进行应用解耦

3、Fluentd

是一个流行的开源数据收集器。由于 logstash 太重量级的缺点,Logstash 性能低、资源消耗比较多等问题,随后就有 Fluentd 的出现。相比较 logstash,Fluentd 更易用、资源消耗更少、性能更高,在数据处理上更高效可靠,受到企业欢迎,成为 logstash 的一种替代方案,常应用于 EFK 架构当中。在 Kubernetes 集群中也常使用 EFK 作为日志数据收集的方案。

在 Kubernetes 集群中一般是通过 DaemonSet 来运行 Fluentd,以便它在每个 Kubernetes 工作节点上都可以运行一个 Pod。 它通过获取容器日志文件、过滤和转换日志数据,然后将数据传递到 Elasticsearch 集群,在该集群中对其进行索引和存储。

三、ELK 的工作原理

(1)在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。

(2)Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。

(3)Elasticsearch 对格式化后的数据进行索引和存储。

(4)Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

 总结:logstash作为日志搜集器,从数据源采集数据,并对数据进行过滤,格式化处理,然后交由Elasticsearch存储,kibana对日志进行可视化处理。

四、ELK部署

1、Elasticsearch部署

 ①关闭防火墙和安全机制

 systemctl disable --now firewalld

 setenforce 0

 ②设置Java环境

 tar xf jdk-8u361-linux-x64.tar.gz

 mv jdk1.8.0_361/ /usr/local/

vim /etc/profile.d/java.sh

ELK 日志分析系统,elk

source /etc/profile.d/java.sh

java -version

③安装elasticsearch—rpm包

上传elasticsearch-6.7.2.rpm到/opt目录下

使用命令rpm -ivh elasticsearch-6.7.2.rpm或yum localinstall elasticsearch-6.7.2.rpm进行安装

④修改elasticsearch主配置文件

vim /etc/elasticsearch/elasticsearch.yml

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

 scp /etc/elasticsearch/elasticsearch.yml 192.168.130.20:`pwd`

 scp /etc/elasticsearch/elasticsearch.yml 192.168.130.30:`pwd`

⑤es 性能调优参数

优化最大内存大小和最大文件描述符的数量

vim /etc/security/limits.conf

ELK 日志分析系统,elk

*  soft    nofile          65536

*  hard    nofile          65536

*  soft    nproc           32000

*  hard    nproc           32000

*  soft    memlock         unlimited

*  hard    memlock         unlimited

vim /etc/systemd/system.conf

ELK 日志分析系统,elk

优化elasticsearch用户拥有的内存权限

vim /etc/sysctl.conf

在ES内存设置方面,可以遵循以下原则:

1.当机器内存小于64G时,遵循通用的原则,50%给ES,50%留给操作系统,供lucene使用

2.当机器内存大于64G时,遵循原则:建议分配给ES分配 4~32G 的内存即可,其它内存留给操作系统,供lucene使用

一个进程可以拥有的最大内存映射区域数,参考数据(分配 2g/262144,4g/4194304,8g/8388608)

ELK 日志分析系统,elk

sysctl -p

ELK 日志分析系统,elk

需重启系统生效配置

reboot

⑥启动elasticsearch是否成功开启

systemctl enable --now elasticsearch.service

ELK 日志分析系统,elk

ELK 日志分析系统,elk

⑦查看节点信息

浏览器访问  http://192.168.130.10:9200  、 http://192.168.130.20:9200、 http://192.168.130.30:9200 查看节点 Node01、Node02 、Node03的信息

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

2、安装 Elasticsearch-head 插件

Elasticsearch 在 5.0 版本后,Elasticsearch-head 插件需要作为独立服务进行安装,需要使用npm工具(NodeJS的包管理工具)安装。

作用:在web界面实现图形化查看es集群状态,可以在任意一个es节点安装

安装 Elasticsearch-head 需要提前安装好依赖软件 node 和 phantomjs。

node:是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

phantomjs:是一个基于 webkit 的JavaScriptAPI,可以理解为一个隐形的浏览器,任何基于 webkit 浏览器做的事情,它都可以做到。

①编译安装 node

上传软件包 node-v8.2.1.tar.gz 到/opt

yum install gcc gcc-c++ make -y

tar zxvf node-v8.2.1.tar.gz

cd node-v8.2.1/

./configure && make -j2 && make install

②安装 phantomjs

上传软件包 phantomjs-2.1.1-linux-x86_64.tar.bz2 到/opt

cd /opt

tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2

cd /opt/phantomjs-2.1.1-linux-x86_64/bin

cp phantomjs /usr/local/bin

③安装 Elasticsearch-head 数据可视化工具

上传软件包 elasticsearch-head-master.zip 到/opt

cd /opt

unzip elasticsearch-head-master.zip

cd /opt/elasticsearch-head/

npm install             #安装依赖包

④修改 Elasticsearch 主配置文件

vim /etc/elasticsearch/elasticsearch.yml

在末尾添加

http.cors.enabled: true

http.cors.allow-origin: "*"

ELK 日志分析系统,elk

systemctl restart elasticsearch

⑤启动 elasticsearch-head 服务

必须在解压后的 elasticsearch-head 目录下启动服务,进程会读取该目录下的 gruntfile.js 文件,否则可能启动失败

cd /opt/elasticsearch-head-master/

npm run start &

ELK 日志分析系统,elk

ELK 日志分析系统,elk

⑥通过 Elasticsearch-head 查看 Elasticsearch 信息

浏览器访问 http://192.168.130.30:9100/

ELK 日志分析系统,elk

⑦插入索引

通过命令插入一个测试索引

命令格式:

创建索引
curl -X PUT[|POST] http://IP:9200/<索引名>[/<类型>/<文档ID>?pretty&pretty] \
[-H 'content-Type: application/json' -d '{"键名1":"键值","键名2":"键值"}']

删除索引
curl -X DELETE http://IP:9200/<索引名>[,<索引名2>,....]

查看索引配置
curl -X GET http://IP:9200/<索引名>/_settings

修改索引配置
curl -X PUT http://IP:9200/<索引名>/_settings \
-H 'content-Type: application/json' -d '{"键名":"键值"}'

创建索引别名
curl -X POST http://IP:9200/_aliases \
-H 'content-Type: application/json' -d '{"actions":[{"add":{"index":"索引名","alias":"索引别名"}}]}'

删除索引别名
curl -X POST http://IP:9200/_aliases \
-H 'content-Type: application/json' -d '{"actions":[{"remove":{"index":"索引名","alias":"索引别名"}}]}'

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

3、 ELK Logstash 部署(在 Nginx 节点上操作)

Logstash 一般部署在需要监控其日志的服务器。在本案例中,Logstash 部署在 nginx 服务器上,用于收集 nginx 服务器的日志信息并发送到 Elasticsearch。

①关闭防火墙和安全机制

 systemctl disable --now firewalld

 setenforce 0

②更改主机名

hostnamectl set-hostname nginx

③设置Java环境

 tar xf jdk-8u361-linux-x64.tar.gz

 mv jdk1.8.0_361/ /usr/local/

vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/local/jdk1.8.0_361

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

source /etc/profile.d/java.sh

java -version

④安装nginx服务

yum -y install epel-release.noarch

yum -y install nginx

systemctl enable --now nginx

⑤安装logstash

上传软件包 logstash-6.7.2.rpm 到/opt目录下

cd /opt

rpm -ivh logstash-6.7.2.rpm                          

systemctl enable --now logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

⑥测试 Logstash

Logstash 命令常用选项:

-f:通过这个选项可以指定 Logstash 的配置文件,根据配置文件配置 Logstash 的输入和输出流。

-e:从命令行中获取,输入、输出后面跟着字符串,该字符串可以被当作 Logstash 的配置(如果是空,则默认使用 stdin 作为输入,stdout 作为输出)。

-t:测试配置文件是否正确,然后退出。

-w:指定filter线程数量,默认线程数是5

-l:指定日志文件名称

logstash -e 'input { stdin{} } output { stdout{} }'

ELK 日志分析系统,elk

logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.130.10:9200"] } }'

ELK 日志分析系统,elk

⑦定义 logstash配置文件,读取nginx日志

Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)

●input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等

file   beats   kafka   redis   stdin

●filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式

grok        对若干个大文本字段进行再分割成一些小字段   (?<字段名>正则表达式)   字段名: 正则表达式匹配到的内容

date         对数据中的时间格式进行统一和格式化

mutate     对一些无用的字段进行剔除,或增加字段

mutiline    对多行数据进行统一编排,多行合并或拆分

●output:表示将Logstash收集的数据经由过滤器处理之后输出到Elasticsearch

elasticsearch   stdout

vim /etc/logstash/conf.d/nginx.conf

input{
    file {
        path => "/var/log/nginx/access.log"
        type => "nginx_access"
        start_position => "beginning"
        sincedb_path => "/etc/logstash/sincedb_path/log_progress"
        add_field => { "log_hostname" => "${HOSTNAME}" }
    }
    file {
        path => "/var/log/nginx/error.log"
        type => "nginx_error"
        start_position => "beginning"
        sincedb_path => "/etc/logstash/sincedb_path/log_progress"
        add_field => { "log_hostname" => "${HOSTNAME}" }
    }
}

#filter{}

output{
    if [type] == "nginx_access" {
    elasticsearch{
        hosts => ["192.168.130.10:9200","192.168.130.20:9200","192.168.130.30:9200"]
        index => "nginx_access-%{+yyyy.MM.dd}"
        }
    }
    if [type] == "nginx_error" {
    elasticsearch{
        hosts => ["192.168.130.10:9200","192.168.130.20:9200","192.168.130.30:9200"]
        index => "nginx_error-%{+yyyy.MM.dd}"
        }
    }
}

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

logstash -f nginx.conf               #启动logstash

ELK 日志分析系统,elk

4、ELK Kiabana 部署 Kiabana

Kiabana可以安装在任一节点

①安装 Kiabana

上传软件包 kibana-6.7.2-x86_64.rpm 到/opt目录

cd /opt

rpm -ivh kibana-6.7.2-x86_64.rpm

②设置 Kibana 的主配置文件

vim /etc/kibana/kibana.yml

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

touch /var/log/kibana.log

chown kibana. /var/log/kibana.log

systemctl enable --now kibana.service

ELK 日志分析系统,elk

③创建索引

浏览器访问 http://192.168.130.30:5601

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk

ELK 日志分析系统,elk文章来源地址https://www.toymoban.com/news/detail-811893.html

到了这里,关于ELK 日志分析系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ELK企业级日志分析系统】安装与部署ELK详解

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash和kibana三个开源工具配合使用 , 完成更强大的,用户对日志的查询、排序、统计需求。 ElasticSearch ElasticSearch:是基于Lucene(一个 全文检索引擎的架构 )开发的分布式存储检索引擎,用来存储各类日志。 El

    2024年02月16日
    浏览(33)
  • Linux--ELK日志分析系统

            ELK是一套针对日志数据做解决方案的框架,分别代表了三款产品: - E: ElasticSearch(ES),负责日志的存储和检索; - L:Logstash,负责日志的收集,过滤和格式化; - K:Kibana,负责日志的展示统计和数据可视化; ElasticSearch ElasticSearch是一个基于Lucene的搜索服务器。它

    2023年04月27日
    浏览(59)
  • ELK、ELFK日志分析系统

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 1.1.1 ElasticSearch ElasticSearch是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。 E

    2024年02月13日
    浏览(37)
  • ELK+FileBeat日志分析系统

    ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch是个开源分布式搜索引擎

    2024年02月08日
    浏览(33)
  • 简单认识ELK日志分析系统

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 好处 : (1)提高安全性 (2)集中存放日志 (3)缺陷:对日志的分析困难 1 、ElasticSearch 概述 (1)提供了一个分布式

    2024年02月14日
    浏览(24)
  • ELK 企业级日志分析系统的概念、ELK Elasticsearch 集群部署

    1、ELK 简介 ELK平台是一套完整的日志集中处理解决方案,将 ==ElasticSearch、Logstash 和 Kiabana ==三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch 是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。 E

    2024年02月16日
    浏览(38)
  • ELK企业级日志分析系统

    目录 一、ELK理论 1、日志服务器 2、ELK日志分析系统 3、日志处理步骤 4、ELK简介 5、为什么要使用ELK 6、完整日志系统基本特征 7、ELK的工作原理 8、总结 二、ELK集群之部署elasticsearch集群部署 1、环境准备 2、部署elasticsearch 软件 2.1 修改elasticsearch 主配置文件 2.3 创建数据存放

    2024年02月02日
    浏览(40)
  • 运维必备——ELK日志分析系统

    前些天发现了一个巨牛的人工智能学习网站,内容通俗易懂、风趣幽默,忍不住想分享一下。对人工智能感兴趣的同学可以去看看哦 点击跳转到网站。 通常来说,日志被分散的存储在各自的不同的设备上,如果说需要管理上百台机器,那么就需要使用传统的方法依次登录这

    2023年04月11日
    浏览(26)
  • ELK日志分析系统和ELFK

    目录 什么要做日志分析平台 一、 Elasticsearch elasticsearch核心概念 二、Logstash Logstash 的主要组件 三、Kibana 介绍 功能 ELK搭建 四、Filebeat Filebeat工作方式 Filebeat工作原理 五、Filebeat和Logstash 为什么使用filebeat收集日志更好 Filebeat结合Logstash的好处 六、ELK+Filebeat+Kafka+Zookeeper ELK 是

    2023年04月08日
    浏览(24)
  • ELK日志分析系统概述及部署

    E: Elasticsearch L: Logstash K: Kibana 优点 提高安全性 集中化管理 缺点 对日志分析困难 ①将日志进行集中化管理 ②将日志格式化(Logstash)并输出到Elasticsearch ③对格式化后的数据进行索引和存储 ④前端数据的展示(Kibana) 提供了一个分布式多用户能力的全文搜索引擎 Elast

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包