博客
关于我
企业级日志分析系统---Filebeat+Logstash+Elasticsearch+Kafka
阅读量:382 次
发布时间:2019-03-05

本文共 4678 字,大约阅读时间需要 15 分钟。

ELK日志搜集平台部署指南

1. 组件概述

ELK日志搜集平台由以下四个主要组件组成:

  • Elasticsearch

    基于Lucene的开源分布式搜索引擎,专注于日志的存储与搜索。其特点包括分布式架构、零配置、自动发现、索引分片及副本机制等。

  • Logstash

    开源日志收集、处理与传输工具。Logstash通过简单的管道方式(input → filter → output)实现日志的实时采集与转换,支持多种输入和输出插件。

  • Kibana

    基于浏览器的开源日志可视化工具,为Elasticsearch提供友好的前端界面,便于数据分析与展示。

  • Kafka

    分布式、多副本的消息队列系统,用于高吞吐量、可扩展性的日志传输与处理。

  • 2. 环境搭建

    软件名称 主机名 IP地址 系统版本
    Elasticsearch ela1 192.168.195.128 CentOS7.4
    Logstash ela2 192.168.195.129 CentOS7.4
    Kafka ela3 192.168.195.130 CentOS7.4

    所有节点需关闭防火墙及SELinux。

    3. 版本信息

    • Elasticsearch: 6.5.4
    • Logstash: 6.5.4
    • Kibana: 6.5.4
    • Kafka: 2.11-2.1.0
    • Filebeat: 6.5.4

    4. ELA部署步骤

    1. 用户创建

    为每个节点创建一个名为ela的非管理员用户。

    useradd ela

    2. 软件解压

    将各组件解压至/usr/local目录下。

    tar -xf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/

    3. 权限设置

    为Elasticsearch目录设置适当权限。

    chown -R ela.ela /usr/local/elasticsearch-7.10.0/

    4. 系统参数优化

    设置内核参数以支持大规模数据处理。

    sysctl -w vm.max_map_count=262144 > /etc/sysctl.confsysctl -p

    修改文件描述符限制。

    echo 'soft nofile 65536' >> /etc/security/limits.confecho 'hard nofile 131072' >> /etc/security/limits.conf

    5. Elasticsearch集群配置

    在每个节点的elasticsearch.yml中添加以下配置:

    cluster.name: elknode.name: ela1/ela2/ela3node.data: truenetwork.host: 0.0.0.0http.port: 9200discovery.seed_hosts: - "192.168.195.129", "192.168.195.128", "192.168.195.130"cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]

    6. 启动Elasticsearch

    在每个节点上以ela用户运行:

    su - elacd /usr/local/elasticsearch-7.10.0/bin/bin/elasticsearch -d -p /tmp/elasticsearch.pid

    7. 查看集群状态

    通过curl命令查看集群健康状况:

    curl -X GET "localhost:9200/_cat/health?v"

    8. Kafka部署

    1. 安装JDK8

    安装Java Development Kit 8。

    tar -xf /usr/local/jdk-8u121-linux-x64.tar.gz -C /usr/local/

    2. 配置Zookeeper

    zookeeper.properties中配置:

    dataDir=/opt/data/zookeeper/datadataLogDir=/opt/data/zookeeper/logsclientPort=2181tickTime=2000initLimit=20syncLimit=10server.1=192.168.195.128:2888:3888server.2=192.168.195.129:2888:3888server.3=192.168.195.130:2888:3888

    创建必要目录并设置myid文件。

    mkdir -p /opt/data/zookeeper/{data,logs}echo 1 > /opt/data/zookeeper/data/myid

    3. 配置Kafka

    server.properties中添加以下配置:

    broker.id=1/2/3listeners=PLAINTEXT://192.168.195.128:9092num.network.threads=3num.io.threads=8socket.send.buffer.bytes=102400socket.receive.buffer.bytes=102400socket.request.max.bytes=104857600log.dirs=/opt/data/kafka/logsnum.partitions=6num.recovery.threads.per.data.dir=1offsets.topic.replication.factor=2transaction.state.log.replication.factor=1transaction.state.log.min.isr=1log.retention.hours=168log.segment.bytes=536870912log.retention.check.interval.ms=300000zookeeper.connect=192.168.195.128:2181,192.168.195.129:2181,192.168.195.130:2181zookeeper.connection.timeout.ms=6000group.initial.rebalance.delay.ms=0

    创建日志目录:

    mkdir -p /opt/data/kafka/logs

    4. 启动Kafka

    在每个节点上运行:

    cd /usr/local/kafka_2.11-2.1.0/bin/nohup kafka-server-start.sh config/server.properties &

    5. 验证Kafka

    创建主题并测试消息传输。

    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testtopicbin/kafka-console-producer.sh --broker-list 192.168.195.128:9092 --topic testtopic > /dev/nullbin/kafka-console-consumer.sh --bootstrap-server 192.168.195.128:9092 --topic testtopic --from-beginning

    5. Logstash配置

    1. 安装Logstash

    解压并安装Logstash。

    tar -xf logstash-7.10.0-linux-x86_64.tar.gz -C /usr/local/

    2. 配置输入和输出

    input.conf中添加:

    input {    kafka {        type: "nginx_log"        codec: "json"        topics: "nginx"        decorate_events: true        bootstrap_servers: "192.168.195.128:9092, 192.168.195.129:9092, 192.168.195.130:9092"    }}output {    elasticsearch {        hosts: ["192.168.195.128:9200", "192.168.195.129:9200", "192.168.195.130:9200"]    }}

    启动Logstash:

    cd /usr/local/logstash-6.5.4/bin/nohup bin/logstash -f etc/conf.d/ --config.reload.automatic &

    6. Filebeat部署

    1. 安装Filebeat

    解压并安装Filebeat。

    tar -xf filebeat-7.10.1-linux-x86_64.tar.gz -C /usr/local/

    2. 配置输入和输出

    filebeat.yml中添加:

    filebeat.inputs:    - type: log      enabled: true      paths:           - /var/log/access.log          - /var/log/error.logoutput:    console:        pretty: true# 去除以下配置(根据实际需求保留)# output.elasticsearch:#     hosts: ["localhost:9200"]

    启动Filebeat:

    cd /usr/local/filebeat-7.10.1-linux-x86_64/bin/./filebeat

    7. Kibana部署

    1. 解压并配置

    解压并创建符号链接。

    tar -xf kibana-7.10.1-linux-x86_64.tar.gz -C /usr/local/ln -s /usr/local/kibana-7.10.1-linux-x86_64 /usr/local/kibana

    2. 配置Kibana

    kibana.yml中添加:

    server.port: 5601server.host: "0.0.0.0"elasticsearch.hosts: ["http://localhost:9200"]logging.dest: /var/log/kibana/kibana.logi18n.locale: "zh-CN"

    创建用户并设置权限。

    useradd elamkdir -p /var/run/kibana /var/log/kibanachown ela.ela -R /var/run/kibana /var/log/kibana

    启动Kibana。

    cd /usr/local/kibana/bin/nohup kibana &

    8. 访问与使用

    通过浏览器访问Kibana界面:http://192.168.195.128:5601

    完成以上步骤后,可通过Kibana进行日志查询与可视化分析。

    转载地址:http://vejg.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现number of digits解字符数算法(附完整源码)
    查看>>
    Objective-C实现NumberOfIslands岛屿的个数算法(附完整源码)
    查看>>
    Objective-C实现numerical integration数值积分算法(附完整源码)
    查看>>
    Objective-C实现n皇后问题算法(附完整源码)
    查看>>
    Objective-C实现O(E + V) 中找到 0-1-graph 中的最短路径算法(附完整源码)
    查看>>
    Objective-C实现OCR文字识别(附完整源码)
    查看>>
    Objective-C实现odd even sort奇偶排序算法(附完整源码)
    查看>>
    Objective-C实现ohms law欧姆定律算法(附完整源码)
    查看>>
    Objective-C实现P-Series algorithm算法(附完整源码)
    查看>>
    Objective-C实现page rank算法(附完整源码)
    查看>>
    Objective-C实现PageRank算法(附完整源码)
    查看>>
    Objective-C实现pancake sort煎饼排序算法(附完整源码)
    查看>>
    Objective-C实现pascalTriangle帕斯卡三角形算法(附完整源码)
    查看>>
    Objective-C实现patience sort耐心排序算法(附完整源码)
    查看>>
    Objective-C实现PCA(附完整源码)
    查看>>
    Objective-C实现perceptron算法(附完整源码)
    查看>>
    Objective-C实现perfect cube完全立方数算法(附完整源码)
    查看>>
    Objective-C实现perfect number完全数算法(附完整源码)
    查看>>
    Objective-C实现perfect square完全平方数算法(附完整源码)
    查看>>
    Objective-C实现permutate Without Repetitions无重复排列算法(附完整源码)
    查看>>