EFLK日志搭建(包含Redis)

一、ELK概述

1.1 传统ELK的经典框架

ELK是一组开源软件的简称,其包括Elasticsearch、Logstash 和 Kibana。ELK最近几年发展迅速,已经成为目前最流行的集中式日志解决方案。

  • Elasticsearch

    能对大容量的数据进行接近实时的存储,搜索和分析操作。 本项目中主要通过Elasticsearch存储所有获取的日志。

  • Logstash

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

  • Kibana

    数据分析与可视化平台,对Elasticsearch存储的数据进行可视化分析,通过表格的形式展现出来。

在这里插入图片描述

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

1.2 EFLK框架

在这里插入图片描述

相比原来添加了以下组件

  • Filebeat

    轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装Filebeat,并指定目录与日志格式,Filebeat就能快速收集数据,并发送给logstash进行解析,或是直接发给Elasticsearch存储。

  • Redis

    NoSQL数据库(key-value),也数据轻型消息队列,不仅可以对高并发日志进行削峰还可以对整个架构进行解耦

其中Redis也可以使用其他组件替代,如Kafka(后续会撰写Kafka的搭建)

Kafka当作中间件的博文见EFLK+Kafak

二、EFLK框架案例部署

2.1 拓扑图

在这里插入图片描述

2.2 案例部署

2.2.1 Nginx服务器配置

以 10.0.0.101 为例,其余相同(相关IP地址设置修改)

[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo http:/mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum -y install nginx httpd-tools
[root@localhost ~]# yum -y install https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.6.0/filebeat-6.6.0-x86_64.rpm 
[root@localhost ~]# vi /etc/filebeat/filebeat.yml 
# 相关修改为

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["access"]

- type: log
  enabled: true
  paths:
    - /var/log/nginx/error.log
  tags: ["error"]

setup.template.settings:
  index.number_of_shards: 3

setup.kibana:

output.redis:
  hosts: ["10.0.0.20:6379"]
  key: "filebeat"
  db: 0
  timeout: 5
  
[root@localhost ~]# systemctl restart filebeat

2.2.2 Ela-master服务器配置

ELK的搭建见博文ELK

Redis的搭建见博文Reids

# 使用logstash -f 监听redis的相关数据
[root@localhost conf.d]# vi /etc/logstash/conf.d/redis.conf
input {
  redis {
    host => "10.0.0.20"
    port => "6379"
    db => "0"
    key => "filebeat"
    data_type => "list"
  }
}

output {
  stdout {}
  if "access" in [tags] {
    elasticsearch {
      hosts => ["http://10.0.0.20:9200"]
      index => "nginx_access-%{+YYYY.MM.dd}"
      manage_template => false
    }
  }
  if "error" in [tags] {
    elasticsearch {
      hosts => ["http://10.0.0.20:9200"]
      index => "nginx_error-%{+YYYY.MM.dd}"      
      manage_template => false
    }
  }
}

[root@ela-master ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis.conf

此时可以看到Ela上的相关数据

在这里插入图片描述

2.3 测试

# 使用压测工具测试正确及错误的网页
[root@localhost ~]# ab -n 1000 -c 20 http://10.0.0.101/
[root@localhost ~]# ab -n 1000 -c 20 http://10.0.0.101/index.jsp

Kibana创建后图表如下

  • nginx-access

在这里插入图片描述

  • nginx-error

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值