ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统

ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统

总体架构说明

环境说明

host hostname 运行软件
192.168.179.123 node-5 kafka、zookeeper、es、logstash、filebeat
192.168.179.124 node-4 kafka、zookeeper、es、kibana、filebeat
192.168.179.125 node-3 kafka、zookeeper

以上是我的节点及机器上安装的相关软件,东西会比较多,但是运行都离不开我们上面的架构图

日志系统各个模块配置

我这里写出跟日志系统相关的配置,eskibana这个就不贴了,前面有的。zookeeperkafka 配置好集群就可以啦。可以从 kafka高可用集群搭建 这篇文章里面找到搭建配置

logstash配置

新建一个 kafkalogstash 配置

  • vi conf.d/kafka.conf
input{
    kafka {
        codec => json
        topics => "kafka_topic"
        bootstrap_servers => "192.168.179.123:9092,192.168.179.124:9092,192.168.179.125:9092"
    }
}
output{
    if [fields][logsource] == "nginx" {   # 根据filebeat里面的fields -> logsource 来确定是什么服务的日志
        elasticsearch{
            hosts => ["192.168.179.124:9200", "192.168.179.123:9200"]        #elasticsearch服务器地址
            user => "elastic"
            password => "${ES_PWD}"
            index =>"kafka-nginx-log-%{+YYYY.MM.dd}.log"
        }
    }
    if [fields][logsource] == "mysql" {
        elasticsearch{
            hosts => ["192.168.179.124:9200", "192.168.179.123:9200"]        #elasticsearch服务器地址
            user => "elastic"
            password => "${ES_PWD}"
            index =>"kafka-mysql-log-%{+YYYY.MM.dd}.log"
        }
    }
}

filebeat配置

  • vi filebeat.yml (node-5的配置)
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/test-filebeat.log
  fields:   # 自定义字段,可以用于区分日志
      logsource: mysql  
output.kafka:
  hosts: ["192.168.179.123:9092","192.168.179.124:9092","192.168.179.125:9092"]
  topic: "kafka_topic"
  partition.round_robin: # 开启kafka的partition分区
    reachable_only: false
  required_acks: 1
  compression: gzip #压缩格式
  max_message_bytes: 1000000 #压缩格式字节大小
  • vi filebeat.yml (node-4的配置)
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
  fields:
      logsource: nginx
output.kafka:
  hosts: ["192.168.179.123:9092","192.168.179.124:9092","192.168.179.125:9092"]
  topic: "kafka_topic"
  partition.round_robin:
    reachable_only: false
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

启动模块

  • 完成好各个阶段的配置后,我们逐步对模块进行启动
# 对es节点进行启动 (node-4、node-5)
su - elastic -c "/home/test/elasticsearch-7.6.0/bin/elasticsearch -d"
# 启动kibana (node-4)
sudo nohup ./bin/kibana --allow-root
# 启动kafka集群 (node-4、node-5)
./bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties
./bin/kafka-server-start.sh -daemon ./config/server.properties
# 创建用于消息传输的kafka topic
./bin/kafka-topics.sh --create --bootstrap-server 192.168.179.123:9092,192.168.179.124:9092,192.168.179.125:9092 --replication-factor 3 --partitions 1 --topic kafka_topic
# 查看topic是否正常
./bin/kafka-topics.sh --describe --bootstrap-server 192.168.179.123:9092,192.168.179.124:9092,192.168.179.125:9092 --topic kafka_topic
# 启动filebeat (node-4、node-5)
./filebeat -e -c filebeat.yml

这个时候 filebeat 开始对日志进行收集,然后传输到 kafkatopic ,我们利用 kafkatool 查看一下 kafka_topic 数据


已经可以看到有数据进来了,然后我们启动 logstashkafka_topic 进行消费,输出到我们的 es 集群

sudo ./bin/logstash -f ./conf.d/kafka.conf

logstash 正常启动后,已经可以通过 kibana 查看到索引信息了, filebeat 配置了 [fields][logsource] 用来创建不同应用的索引。我们这里有 nginxmysql 的索引,我们可视化看看

kibana查看索引


总结

我知道这个 日志系统 待优化的地方很多,这只是我们简单搭建起来,让大家对日志系统有一个整体的认识,到这,日志系统的搭建就完结了。希望大家继续学习呀!

目录
相关文章
|
1月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
279 122
基于docker搭建监控系统&日志收集
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
2月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
193 7
|
1月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
433 64
搭建ELK日志收集,保姆级教程
|
4月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
274 1
|
1月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
143 2
|
7月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
546 90
|
3月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
8月前
|
存储 前端开发 数据可视化
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
2731 71
Grafana Loki,轻量级日志系统
|
7月前
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
304 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统

热门文章

最新文章