您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
ELK-快速入门使用
 
作者:沙滩上的漫步者
   次浏览      
 2020-1-15
 
编辑推荐:
本文主要对ELK的组件和组件关系图进行介绍,其次对基础环境安装配置再到测试以及数据化得展示,希望对您的学习有所帮助。
本文来自于CSDN,由火龙果软件Alice编辑、推荐。

一、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数据可视化展示

添加视图

添加仪表盘

   
次浏览       
相关文章

基于EA的数据库建模
数据流建模(EA指南)
“数据湖”:概念、特征、架构与案例
在线商城数据库系统设计 思路+效果
 
相关文档

Greenplum数据库基础培训
MySQL5.1性能优化方案
某电商数据中台架构实践
MySQL高扩展架构设计
相关课程

数据治理、数据架构及数据标准
MongoDB实战课程
并发、大容量、高性能数据库设计与优化
PostgreSQL数据库实战培训