ELK分布式日志实时监控系统搭建实录(避坑指南)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
日志服务 SLS,月写入数据量 50GB 1个月
简介: 文本主要记录ELK搭建过程的主要步骤,使用组件:filebeat+logstash+elasticsearch+kibana。filebeat收集日志给到logstash(logstash也可以单独干这个活)elasticsearch可以说是个索引数据库也可以认为是搜索引擎,他主要负责数据的存储,这里就是日志信息了,kibana则是一个可视化的elasticsearch的操作工具。

前言:文本主要记录ELK搭建过程的主要步骤,使用组件:filebeat+logstash+elasticsearch+kibana。filebeat收集日志给到logstash(logstash也可以单独干这个活)elasticsearch可以说是个索引数据库也可以认为是搜索引擎,他主要负责数据的存储,这里就是日志信息了,kibana则是一个可视化的elasticsearch的操作工具。


一、组件安装



1.elasticsearch安装与配置


# 下载地址一:https://www.elastic.co/cn/downloads/elasticsearch
# 下载地址二:https://mirrors.huaweicloud.com/elasticsearch/
# es与logstash都是java开发的需要以来jdk,此外注意jdk版本,es6以上应该都是至少需要jdk8及以上版本了
[root@localhost ~]# wget https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-linux-x86_64.tar.gz
# 下载完成后,解压到自己喜欢的随便路径即可
# 然后修改配置文件就行 config/elasticsearch.yml
node.name: node-1 # 设置节点名
network.host: 0.0.0.0 # 允许外部 ip 访问
cluster.initial_master_nodes: ["node-1"] # 设置集群初始主节点
# 若是不想用root访问就自己建个用户吧,然后给个用户权限:chown -R 用户 /usr/local/elasticsearch
# 启动 es
nohup ./bin/elasticsearch.yml -d & 
# 验证
http://ip:9200


2.logstash安装与配置


# 下载地址一:https://mirrors.huaweicloud.com/logstash
[root@localhost ~]# wget https://mirrors.huaweicloud.com/logstash/7.8.0/logstash-7.8.0.tar.gz
# 解压到指定目录,logstash也需要依赖jdk,logstash的版本需要与es保持一致
# 修改配置文件 config/logstash.conf
# 这里是使用filebeat收集数据,5044用于接收filebeat的数据,下面的output则是数据输出到es,index则是声明数据在es中的索引
input {
  beats {
    port => 5044
  }
}
output {
       if [filetype] == "mdm-org-server" { # 输出es,这的filetype就是在filebeat那边新增的自定义字段名
         elasticsearch {
            hosts => ["10.3.8.136:9200"] # 10.3.8.136 es的ip
            index => "mdm-org-server-%{+YYYY.MM.dd}" # 自定义es中的索引名
        }
       } else if [filetype] == "mdm-project-server" {
         elasticsearch {
            hosts => ["10.3.8.136:9200"]
            index => "mdm-project-server-%{+YYYY.MM.dd}"
        }
       }
}
# 启动logstash
nohup ./bin/logstash -f ./config/logstash-es.conf &


3.filebeat安装与配置


# filebeat不是java是go开发的,所以较java轻量级一些,无需依赖jdk
# 下载地址一:https://www.elastic.co/cn/downloads/past-releases#filebeat
# filebeat用于收集日志,下面是基本配置,logtype是自定义属性,用来区分不同服务,日志收集可用-来分组
filebeat:
  prospectors:
    -
      paths:
        - /apps/server-admin/mdm-servers/mdm-acceptor-server/logs/*.log
      input_type: log
      fields:
          logtype: mdm-acceptor-server
    -
      paths:
        - /apps/server-admin/mdm-servers/mdm-case-server/logs/*.log
      input_type: log
      fields:
          logtype: mdm-case-server    
# 启动filebeat,注意配置文件别错了,不然启动会失败
nohup ./filebeat -e -c filebeat.yml &             


4.kibana安装与配置


# 下载地址一:https://mirrors.huaweicloud.com/kibana
# 下载安装包
[root@localhost ~]# wget https://mirrors.huaweicloud.com/kibana/7.8.0/kibana-7.8.0-linux-x86_64.tar.gz
# 修改配置文件,config/kibana.yml
server.port: 5601
server.host: "0.0.0.0" # 服务器ip  本机
elasticsearch.hosts: ["http://192.2.1.112:9200"] # Elasticsearch 服务地址
i18n.locale: "zh-CN" # 中文
# 启动kibana
nohup ./bin/kibana ./config/kibana.yml &
# 验证 http://ip:5601 查看页面是否正常即可


如果按照上面的四部走过来基本不会又什么特殊问题,需要注意的是filebeat需要依赖logstash的端口,所以启动filebeat之前logstash必须启动,而启动logstash则需要先启动es,最后在启动kibana就对了,所以他们四个的正常顺序应该是:filebeat–>logstash–>es–>kibana


二、可能碰到的问题



1.filebeat与logstash重启数据收集失败问题


若是重启了logstash而没有重启可能会碰倒这个问题,建议重启logstash以后再重启一次filebeat即可。


2.如何实现分布式日志的收集


这个在上面的配置中其实已经做了,使用filebeat收集日志时支持多文件的同时收集,只需要像笔者那这样分割开多个配置即可,然后在logstash中区分收集到的日志把日志写到不同的索引里即可。那要是一个服务多个节点呢?若是一个服务需要收集两个节点的日志的话,则只需要将两个节点都配置上filebeat即可,且保持配置一样就行,就是这么简单。


3.如是有其他问题


笔者搭建时也有参考过下面这位道友的文章,其他问题建议参考这位道友的文章

建议参考:https://blog.csdn.net/sinat_27245917/article/details/108123826


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