Linux--ELK日志分析系统

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

一,ELK是什么?

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

  1. ElasticSearch
    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

  2. Logstash
    Logstash是一个用于管理日志和事件的工具,你可以用它去收集日志、转换日志、解析日志并将他们作为数据提供给其它模块调用,例如搜索、存储等。

  3. Kibana
    Kibana是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持。

 二,ELK可以做什么:

  1. 应用出现故障,需要通过日志排查故障信息。当应用已部署了多个环境时,这时排查的难度和耗时就是一个巨大的损耗。而ELK就可以对多个环境的日志进行收集,过滤,存储,检错,可视化。届时你只需要查看kibana上的日志信息,就可以找出故障所在。
  2. 针对应用在生产环境上的表现需要数据支撑,如访客数,功能调用量,出错率等等。此类数据的收集,当然可以通过使用别的产品或编写一套程序进行输出,是有其一定的效果。但能像ELK这样对应用无入侵,且功能强大的开源软件。那是少之又少了。

三,ELK一般用来做啥?
  ELK组件在海量日志系统的运维中,可用于解决:

        分布式日志数据集中式查询和管理

        系统监控,包含系统硬件和应用各个组件的监控

        故障排查

        安全信息和事件管理

        报表功能

  ELK组件在大数据运维系统中,主要可解决的问题如下:

        日志查询,问题排查,上线检查

        服务器监控,应用监控,错误报警,Bug管理

        性能分析,用户行为分析,安全漏洞分析,时间管理

四,ELK日志分析的构成:

1.elasticsearch的基础概念:
        接近实时(NRT),群集(cluster),节点(node),索引(index),分片或副本(shards & replicas)。

2.logstash的主要组件:

        shipper:日志收集者。

        lndexer:日志存储者。

        broker:日志Hub

        Search and Storage:允许对事件进行搜索和存储

        web interface:基于web的展示界面

3.kibana的主要功能:

        Elasticsearch无缝之集成,整合数据,复杂数据分析,让更多团队成员收益,接口灵活,配置简单,可视化多数据源,简单数据导出。

一,配置Elasticsearch软件

注:两台节点配置相同,在配置elasticsearch配置文件中注意服务器名称不要相同,群集名称要相同,才可以实现群集效果。

        准备环境:在两台ELK节点上配置域名解析,通过本地/etc/hosts文件实现。

[root@node1 ~]# hostname
node1
[root@node1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.1 node1
192.168.2.2 node2

        检查Java环境

[root@node1 ~]# java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)

        部署elasticsearch软件

[root@node1 ~]# rpm -ihv /mnt/elasticsearch-5.5.0.rpm 
警告:/mnt/elasticsearch-5.5.0.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                                                            ################################# [100%]

         加载系统服务

[root@node1 ~]# systemctl daemon-reload 
[root@node1 ~]# systemctl enable elasticsearch.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
[root@node1 ~]# 

        创建数据存放数据并授权

[root@node1 ~]# mkdir -p /data/elk_data/
[root@node1 ~]# chown elasticsearch:elasticsearch /data/elk_data/

        更改elasticsearch主配置文件

[root@localhost ~]# vim /etc/elasticsearch/elasticsearch.yml 
cluster.name: my-elk-cluster
node.name: node1
path.data: /data/elk_data
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]

        启动elasticsearch并查看是否成功开启

[root@node1 ~]# systemctl start elasticsearch.service 
[root@node1 ~]# netstat -anpt | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      4297/java          

        查看节点信息

Linux--ELK日志分析系统

二,安装Elasticsearch-head插件

        编译安装node,编译安装node耗时较长,大约40min,根据机械的配置可能有所不同,请耐心等待。

[root@node1 ~]# tar zxf /mnt/node-v8.2.1.tar.gz -C /usr/src/
[root@node1 ~]# cd /usr/src/node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure && make && make install

        安装phantomjs

[root@node1 ~]# cd /usr/local/src/
[root@node1 src]# tar jxf /mnt/phantomjs-2.1.1-linux-x86_64.tar.bz2 
[root@node1 src]# cd phantomjs-2.1.1-linux-x86_64/bin/
[root@node1 bin]# cp phantomjs /usr/local/bin/

        安装Elasticsearch-head 

[root@node1 bin]# cd
[root@node1 ~]# cd /usr/local/src/
[root@node1 src]# tar zxf /mnt/elasticsearch-head.tar.gz 
[root@node1 src]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm install

        修改Elasticsearch配置文件

[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml 
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@node1 ~]# systemctl restart elasticsearch

         启动服务

[root@node1 elasticsearch-head]# npm run start &
[root@node1 elasticsearch-head]# netstat -lnupt | grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      50396/grunt         
[root@node1 elasticsearch-head]# netstat -lnupt | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      50023/java          

        通过elasticsearch-head查看elasticsearch信息。通过浏览器访问http://192.168.2.1:9100/,并连接群集

Linux--ELK日志分析系统

         插入索引。通过命令插入一个测试索引,通过输出信息可以看到索引为index-demo,类型为test。

[root@node1 elasticsearch-head]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

        查看效果

Linux--ELK日志分析系统

 二,logstash安装及使用方法

注:logstash一般部署在需要监控其日志的服务器中,在本案例中,logstash部署在Apache服务器上,用于收集Apache服务器的日志信息并发送到Elasticsearch中。在正式部署之前,在Node1上部署Logstash,以熟悉logstash的使用方法。logstash也需要Java环境,所以安装之前也要检查当前机器的Java环境是否存在。

        在node1上安装logstash

[root@node1 ~]# rpm -ihv /mnt/logstash-5.5.1.rpm 
警告:/mnt/logstash-5.5.1.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:logstash-1:5.5.1-1              ################################# [100%])
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash
[root@node1 ~]# systemctl start logstash.service 
[root@node1 ~]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

        测试logstash 

logstash命令行中常用的命令选项如下:

            -f:通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash

            -e:后面跟着字符串,该字符串可以被当做lgostash配置(如果是“ ”,则默认使用stdin作为输入,stdout作为输出)。

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

[root@node1 ~]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.2.1:9200"] } }'
www.baidu.com
www.sina.com
www.google.com

        查看logstash新增的索引

Linux--ELK日志分析系统

        logstash配置文件

input {

    fliter {...}

}
output {...}

        下来修改logstash配置文件,让其收集系统日志/vcar/log/messages,并将其输出到elasticsearch中。

[root@node1 src]# chmod o+r /var/log/messages
[root@node1 src]# ll /var/log/messages
-rw----r--. 1 root root 107359 9月   2 03:23 /var/log/messages
[root@node1 ~]# vim /etc/logstash/conf.d/system.conf
input {
        file {
                path => "/var/log/messages"
                type => "system"
                start_position => "beginning"
        }
}

output {
        elasticsearch {
                hosts => ["192.168.2.1:9200"]
                index => "system-%{+YYYY.MM.dd}"
        }
}
~                                                                             

[root@node1 src]# systemctl restart logstash

 Linux--ELK日志分析系统

三,安装Kibana 

        在node1服务器上安装Kibana,并设置开机启动

[root@node1 ~]# cd /usr/local/src/
[root@node1 src]# rpm -ihv /mnt/kibana-5.5.1-x86_64.rpm 
警告:/mnt/kibana-5.5.1-x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:kibana-5.5.1-1                  ################################# [100%])
[root@node1 src]# systemctl enable kibana.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /etc/systemd/system/kibana.service.

        设置kibana的主配置文件/etc/kibana/kibana.yml\

[root@node1 src]# vim /etc/kibana/kibana.yml 
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
bana.index: ".kibana"

        启动kibana服务

[root@node1 src]# systemctl start kibana.service 

        验证kibana,通过浏览器访问http://192.168.2.1:5601,第一次登录需要添加一个elasticsearch索引,添加前面创建索引system-*。

Linux--ELK日志分析系统

         单击“Discover”按钮查看图标信息及日志信息,可以分类显示,使鼠标指针悬停在“Available Fields”中的“host”,然后点击“add”按钮,可以看到按照“host”筛选后的结果。

Linux--ELK日志分析系统

         将apache服务器的日志添加到Elasticsearch并通过Kibana显示。

[root@node1 src]# yum -y install httpd
[root@node1 ~]# systemctl start httpd

        在logstash配置文件apache_log.conf

[root@node1 ~]# cd /etc/logstash/conf.d/
[root@node1 conf.d]# vim apache_log.conf 
input {
        file {
                path => "/etc/httpd/logs/access_log"
                type => "access"
                start_position => "beginning"
        }
        file {
                path => "/etc/httpd/logs/error_log"
                type => "error"
                start_position => "beginning"
        }
}

output {
        if [type] == "access" {
                elasticsearch {
                        hosts => ["192.168.2.1:9200"]
                        index => "apache_access-%{+YYYY.MM.dd}"
                }
        }
        if [type] == "error" {
                elasticsearch {
                        hosts => ["192.168.2.1:9200"]
                        index => "apache_error-%{+YYYY.MM.dd}"
                }
        }
}

激活配置文件

/usr/share/logstash/bin/logstash -f apache_log.conf 

登录Kibana,单击“  Create index Pattern ”

Linux--ELK日志分析系统

添加“ apache_access ”,并单击Create按钮。

Linux--ELK日志分析系统

查看apache_access日志 

Linux--ELK日志分析系统

添加“ apache_error ”,并单击Create按钮。

Linux--ELK日志分析系统

查看 apache_error 日志文件

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

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

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

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

相关文章

  • ELK 日志分析系统

    ELK 日志分析系统

    目录 一、日志管理方案 二、完整日志系统基本特征 三、ELK 简介 ELK组件: 1、ElasticSearch 2、Logstash 3、Kibana  可以添加的其它组件:  1、Filebeat 2、缓存/消息队列(redis、kafka、RabbitMQ等) 3、Fluentd 三、ELK 的工作原理 四、ELK部署 1、Elasticsearch部署  ①关闭防火墙和安全机制  

    2024年01月21日
    浏览(14)
  • 简单认识ELK日志分析系统

    简单认识ELK日志分析系统

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

    2024年02月14日
    浏览(12)
  • ELK、ELFK日志分析系统

    ELK、ELFK日志分析系统

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

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

    ELK+FileBeat日志分析系统

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

    2024年02月08日
    浏览(13)
  • ELK (一)部署ELK+Filebeat日志收集分析系统

    ELK (一)部署ELK+Filebeat日志收集分析系统

    说明:此安装流程只适用于8.0.0以下的版本 1.1 下载ElasticSearch的wget指令: 1.2 解压安装包到指定目录 指定解压缩到 /usr/local 目录下 1.3 修改配置文件 (1)elasticsearch.yml 分别创建 path.data、path.logs 对应的 data、logs文件夹。 详细配置: (2)limits.conf 末尾追加以下内容: (3)s

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

    运维必备——ELK日志分析系统

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

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

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

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

    ELK 企业级日志分析系统

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

    2024年02月07日
    浏览(15)
  • 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日
    浏览(14)
  • ELK日志分析系统和ELFK

    ELK日志分析系统和ELFK

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

    2023年04月08日
    浏览(8)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包