ELK-快速入门使用

本文提供了一个ELK(Elasticsearch, Logstash, Kibana)堆栈的快速入门指南。首先介绍了ELK各组件的概览和关系,接着详细讲述了如何在两台服务器上安装和配置Logstash、Filebeat以及Nginx。Logstash处理数据的流程被详细解释,包括输入、过滤和输出插件的工作方式。最后,展示了如何启动服务并使用Kibana进行数据可视化,包括创建视图和仪表板。" 126463479,7520589,Python字典操作详解:查看、修改、添加与删除,"['Python', '数据结构', '字典操作']

一、ELK概述

ELK 是三个开源软件的缩写,分别表示: Elasticsearch , Logstash , Kibana 。
ELK 通常用来构建日志分析平台、数据分析搜索平台等

官方文档

https://www.elastic.co/cn/products

组件介绍

Elasticsearch 是个开源分布式全文检索和数据分析平台。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,负载均衡等特点。
Kibana 是一个针对Elasticsearch的开源数据分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。
Logstash 是一款基于插件的数据收集和处理引擎。Logstash 配有大量的插件,以便人们能够轻松进行配置以在多种不同的架构中收集、处理并转发数据。
Beats 轻量级的数据收集处理工具(Agent),具有占用资源少的优点,适合于在各个服务器上采集数据后传输给Logstash,官方也推荐此工具。Beats有多多种类型,比较常用的是 FileBeats

组件关系图

在这里插入图片描述

二、Logstash详解

架构图

在这里插入图片描述

  • 处理过程可分为一个或多个管道。在每个管道中,会有一个或多个输入插件接收或收集数据,然后这些数据会加入内部队列。默认情况下,这些数据很少并且会存储于内存中,但是为了提高可靠性和弹性,也可进行配置以扩大规模并长期存储在磁盘上。
  • 处理线程会以小批量的形式从队列中读取数据,并通过任何配置的过滤插件按顺序进行处理。Logstash 自带大量的插件,能够满足特定类型的操作需要,也就是解析、处理并丰富数据的过程。处理完数据之后,处理线程会将数据发送到对应的输出插件,这些输出插件负责对数据进行格式化并进一步发送数据(例如发送到 Elasticsearch)。

三、基础环境安装

  • 修改网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33

#修改为开机自动分配网卡
ONBOOT=YES


#或者修改为静态ip
BOOYPROTO=static
ONBOOT=yes
#添加
IPADDR=192.168.47.152(ip地址)
NETMASK=255.255.255.0
GATEWAY=192.168.47.2(虚拟机网段)
DNS1=119.29.29.29
DNS2=182.254.116.116


  • 重启网卡服务
systemctl restart network 
  • 关闭防火墙
systemctl stop firewalld   (centos6 : service iptables stop)
systemctl disable firewalld (centos6 : chkconfig iptables off)
  • 安装gcc和wget
yum install gcc-c++ perl-devel pcre-devel openssl-devel zlib-devel wget
  • 安装jdk
# rpm -ivh jdk-8u181-linux-x64.rpm

配置环境变量(可不用)
# vi /etc/profile
export JAVA_HOME=/usr/java/latest
export CLASSPATH=.
export PATH=$PATH:$JAVA_HOME/bin

更新资源
# source /etc/profile

一台服务器安装nginx

  • 解压nginx
tar -zxvf nginx-1.11.1.tar.gz
  • 安装nginx到指定路径
./configure --prefix=/usr/local/nginx
  • 编译安装
make && make install
Filebeat环境搭建 (和nginx 安装在同一台服务器上)
  • 安装
[root@localhost ~]# tar -zxvf filebeat-6.4.0-linux-x86_64.tar.gz -C /usr
  • 配置
[root@localhost ~]# mkdir logs
[root@localhost ~]# vim /usr/filebeat-6.4.0-linux-x86_64/filebeat.yml
让beat取读取nginx的日志文件并且输出给logstash取处理
# Change to true to enable this input configuration.
enabled: true(打开)
 # Paths that should be crawled and fetched. Glob based paths.
paths:
- /usr/local/nginx/logs/access*.log(日志文件)
# output.elasticsearch:(关闭)
 # Array of hosts to connect to.
 # hosts: ["localhost:9200"]
output.logstash:(打开)
 # The Logstash hosts
hosts: ["192.168.23.143:5044"](logstash的ip号默认5044端口)
  • 到nginx安装目录启动nginx
[root@localhost nginx-1.11.1]# cd /usr/local/nginx/
[root@localhost nginx]# sbin/nginx -c conf/nginx.con
上传测试数据(访问nginx生成日志文件)

另一台服务器安装logstash

注意:任何 Logstash 配置都必须至少包括一个输入插件和一个输出插件。过滤插件是可选项。

[root@localhost ~]# tar -zxvf logstash-6.4.0.tar.gz -C /usr
  • 修改配置文件
[root@localhost logstash-6.4.0]# cd /usr/logstash-6.4.0/
[root@localhost logstash-6.4.0]# vim config/simple.conf
  • 配置文件中利用Grok表达式来转换日志文件为json串
    input {
    beats {
     port => "5044"
    }
    }
    # 数据过滤 解析
    filter {
    grok {
     match =>{
        "message" => "%{IPORHOST:client_ip} - %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(?:%
    {WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:http_referer} %{QS:http_user_agent}"
     }
    }
    geoip {
      source => "client_ip"
    }
    date {
      match => [ "time" , "dd/MMM/YYYY:HH:mm:ss Z" ]
     }
    }
    # 输出到本机的 ES
    output {
    elasticsearch {
      hosts => [ "192.168.23.143:9200" ]
      index => "logs-%{+YYYY.MM.dd}"
    }
    }
    

启动测试

保证es集群的服务开启

**保证es集群的服务开启**
启动logstash
[root@localhost logstash-6.4.0]# bin/logstash -r -f config/elk.conf
启动filebeat
[root@localhost filebeat-6.4.0-linux-x86_64]# ./filebeat
数据采集

打开kibana取查看生成的索引

在这里插入图片描述

Kibana数据可视化展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
添加视图
在这里插入图片描述

在这里插入图片描述
添加仪表盘

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值