IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ELK日志分析系统 -> 正文阅读

[大数据]ELK日志分析系统

ELK日志分析系统

一、ELK日志分析系统简介

ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案。是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana ,
它们都是开源软件。

Elasticsearch 是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

日志服务器

  • 提高安全性
  • 集中存放日志
  • 缺陷:对日志的分析困难

日志分析系统

  • Elasticsearch
  • Logstash
  • Kibana

日志处理步骤

  • 1.将日志进行集中化管理
  • 2.将日志格式化(Logstash)并输出到Elasticsearch
  • 3.对格式化后的数据进行索引和存储(Elasticsearch)
  • 4.前端数据的展示(Kibana)

二、Elasticsearch介绍

Elasticsearch概述

  • 提供了一个分布式多用户能力的全文搜索引擎

Elasticsearch核心概念

  • 接近实时
  • 集群
  • 节点
  • 索引
  • 分片和副本

三、Logstash介绍

Logstash介绍

  • 一款强大的数据处理工具
  • 可实现数据传输、格式处理、格式化输出
  • 数据输入、数据加工(如过滤,改写等)以及数据输出

LogStash主要组件

  • Shipper:日志收集者,负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常,远程代理端(agent)只需要运行这个组件即可
  • Indexer:日志存储者,负责接收日志并写入到本地文件
  • Broker:日志hub,负责连接多个shipper和多个indexer
  • Search and Storage:允许对事件进行搜索和存储
  • Web Interface:基于web的展示界面

四、Kibana介绍

Kibana介绍

  • 一个针对Elasticsearch的开源分析及可视化平台
  • 搜索、查看存储在Elasticsearch索引中的数据
  • 通过各种图表进行高级数据分析及展示

Kibana主要功能

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

五、部署ELK日志分析系统

案例拓扑:在这里插入图片描述

需求描述:

  • 配置ELK日志分析群集
  • 使用Logstash收集日志
  • 使用Kibana查看分析日志

部署Elasticsearch(同时在elc-1、elk-2部署)

安装密钥及elasticsearch源
[root@elk-1 ~]# vi /etc/hosts
//添加  
192.168.254.10 elk-1
192.168.254.11 elk-2
[root@elk-1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
[root@elk-1 ~]# cd /etc/yum.repos.d/
[root@elk-1 yum.repos.d]# vi elasticsearch.repo 
//添加
[elasticsearch-2.x]
name=elasticsearch
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1                                                                      
[root@elk-1 ~]# yum list               //查看yum清单      
[root@elk-1 ~]# yum -y install elasticsearch java       //安装elasticsearch java
[root@elk-1 ~]# java -version      //查看java版本信息
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
 修改配置文件
 [root@elk-1 ~]# vi /etc/elasticsearch/elasticsearch.yml
 cluster.name: elastic    //17行 集群名称
 node.name:node1     //23行 节点名称
 path.data: /data/es-data  //33行 工作目录
 path.logs: /var/log/elasticsearch/      //37行 日志目录
 bootstrap.memory_lock: true      //防止交换swap分区
 http.port: 9200            //开启端口         
 
    创建目录及开启服务
    [root@elk-1 ~]# mkdir -p /data/es-data
    [root@elk-1 ~]# chown -R elasticsearch:elasticsearch /data/es-data
    [root@elk-1 ~]# systemctl start elasticsearch
    [root@elk-1 ~]# netstat -anpt | grep 9200
    tcp6       0      0 :::9200                 :::*                    LISTEN      13919/java          
    tcp6       0      0 192.168.254.10:9200     192.168.254.10:56960    ESTABLISHED 13919/java       
     

      在这里插入图片描述

      elasticsearch集群部署

      [root@elk-1 ~]#  vi /etc/elasticsearch/elasticsearch.yml
      discovery.zen.ping.unicast.hosts: ["192.168.254.10", "192.168.254.11"]      //添加elk-1、elk-2 IP
      重启服务
      [root@elk-1 ~]# systemctl restart elasticsearch.service 
       

        测试

         http://192.168.254.10:9200/_plugin/head/
        
         

          在这里插入图片描述

          查看日志

          [root@elc-1 ~]# less /var/log/elasticsearch/elastic.log 
          
           

            在这里插入图片描述
            发现无法分配内存

            修改配置文件
            [root@elc-1 ~]# vi /etc/security/limits.conf 
            // Shift+g跳到最后一行 o 添加
            elasticsearch soft memlock unlimited          # memlock参数指定用户可以锁定其地址空间的内存量
            elasticsearch hard memlock unlimited
             

              安装监控组件

              [root@elk-1 ~]# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
               

                测试

                在这里插入图片描述
                在这里插入图片描述

                Logstash部署 (在apache上)

                安装httpd并开启服务
                [root@apache ~]# yum -y install httpd
                [root@apache ~]# systemctl start httpd
                [root@apache ~]# netstat - anpt | grep httpdtcp6       0      0 :::80                   :::*                    LISTEN      57520/httpd         
                [root@apache html]# echo '<h1>ky06</h1>' > /var/www/html/index.html
                [root@apache html]# curl http://192.168.254.12<h1>ky06</h1>
                [root@apache ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
                [root@apache ~]# vi /etc/yum.repos.d/logstash.repo
                [logstash-2.1]
                 name=Logstash 
                 baseurl=http://packages.elastic.co/logstash/2.1/centos
                 gpgcheck=1
                 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
                 enable=1
                [root@apache ~]# yum -y install logstash java
                [root@apache ~]# ln -s /opt/logstash/bin/logstash /usr/local/bin/
                [root@apache ~]# logstash -e 'input { stdin{} } output { stdout{} }'
                www.baidu.coSettings: Default filter workers: 2
                Logstash startup completed
                www.baidu.com                             # 输入
                2020-11-24T11:17:51.412Z apache www.baidu.cowww.baidu.com
                www.hao123.com                        # 输入
                2020-11-24T11:18:20.206Z apache www.hao123.com
                 

                  logstash命令选项解释:
                  -f:指定logstash的配置文件,根据配置文件配置logstash
                  -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“ ”,则默认使用stdin做输入,stdout为输出)
                  -t:测试配置文件是否正确,然后退出
                  #输入采用标准输入,输出采用标准输出

                  [root@apache ~]# logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug } }'
                  www.baidu.com                    # 输入
                  Settings: Default filter workers: 2
                  Logstash startup completed
                  {
                         "message" => "www.baidu.com",
                        "@version" => "1",
                      "@timestamp" => "2020-11-24T11:28:53.599Z",
                            "host" => "apache"
                  }
                  [root@apache ~]# logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.254.10:9200"] } }'
                  Settings: Default filter workers: 2
                  Logstash startup completed
                  ghw111
                  abc222 
                  333ddd
                   

                    查看索引信息在这里插入图片描述

                    [root@apache ~]# chmod o+r /var/log/messages		# 增加可读的权限
                    [root@apache ~]# vi /etc/logstash/conf.d/system.conf
                    input {
                           file {
                              path => "/var/log/messages"
                              type => "system"
                              start_position => "beginning"
                            }
                          }
                    output {
                            elasticsearch {
                            hosts => ["192.168.254.10:9200"]
                            index => "system-%{+YYY.MM.dd}"
                            }
                          }
                     

                      在这里插入图片描述

                      
                      [root@elk-1 ~]# tar zxf kibana-4.3.1-linux-x64.tar.gz
                      [root@elk-1 ~]# vim kibana-4.3.1-linux-x64/config/kibana.yml
                      //2行 
                      server.port: 5601
                      //5行
                      server.host: "0.0.0.0"
                      //12行 ES地址
                      elasticsearch.url: "http://192.168.254.10:9200"
                      //20行
                      kibana.index: ".kibana"
                      yum install screen -y
                      [root@elk-1 ~]# kibana-4.3.1-linux-x64/bin/kibana  ###启动监听
                        
                       
                          大数据 最新文章
                        实现Kafka至少消费一次
                        亚马逊云科技:还在苦于ETL?Zero ETL的时代
                        初探MapReduce
                        【SpringBoot框架篇】32.基于注解+redis实现
                        Elasticsearch:如何减少 Elasticsearch 集
                        Go redis操作
                        Redis面试题
                        专题五 Redis高并发场景
                        基于GBase8s和Calcite的多数据源查询
                        Redis——底层数据结构原理
                        上一篇文章      下一篇文章      查看所有文章
                        加:2021-07-31 16:42:40  更:2021-07-31 16:44:45 
                         
                        开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
                        教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
                        数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

                        360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 15:07:03-

                        图片自动播放器
                        ↓图片自动播放器↓
                        TxT小说阅读器
                        ↓语音阅读,小说下载,古典文学↓
                        一键清除垃圾
                        ↓轻轻一点,清除系统垃圾↓
                        图片批量下载器
                        ↓批量下载图片,美女图库↓
                          网站联系: qq:121756557 email:121756557@qq.com  IT数码