当前位置: 首页 > ds >正文

Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志

第 1 步:使用 Docker Compose 部署 Elasticsearch 和 Kibana

首先,我们需要创建一个 docker-compose.yml 文件来定义和运行 Elasticsearch 和 Kibana 服务。这种方式可以轻松管理两个容器的配置和网络。

  1. 创建 docker-compose.yml 文件

    在一个新的文件夹中,创建名为 docker-compose.yml 的文件,并填入以下内容。

    version: '3.8'
    services:elasticsearch:image: elasticsearch:8.18.2container_name: elasticsearchenvironment:- "discovery.type=single-node"- "xpack.security.enabled=false" # 重要:为简化部署,此处禁用安全功能。生产环境请勿使用!- "ES_JAVA_OPTS=-Xms1g -Xmx1g"   # 根据您的服务器资源调整内存volumes:- es_data:/usr/share/elasticsearch/dataports:- "9200:9200"- "9300:9300"networks:- elastic_netkibana:image: kibana:8.18.2container_name: kibanaenvironment:- "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" # 指向 Elasticsearch 容器ports:- "5601:5601"depends_on:- elasticsearchnetworks:- elastic_netvolumes:es_data:driver: localnetworks:elastic_net:driver: bridge

    配置说明:

    • xpack.security.enabled=false: 我们禁用了 Elasticsearch 的安全功能(如用户认证)。这极大地简化了配置过程,但强烈不建议在生产环境中使用

    • discovery.type=single-node: 将 Elasticsearch 配置为单节点模式。

    • volumes: 创建一个名为 es_data 的数据卷,用于持久化存储 Elasticsearch 的数据,防止容器删除后数据丢失。

    • networks: 创建了一个名为 elastic_net 的桥接网络,以确保 Kibana 和 Elasticsearch 可以相互通信。

  2. 启动服务

    在包含 docker-compose.yml 文件的目录中,打开终端并运行以下命令:

    docker-compose up -d
  3. 验证服务状态

    等待几分钟,让服务完全启动。然后通过以下命令检查容器是否正常运行:

    docker-compose ps

    您应该能看到 elasticsearchkibana 两个容器都处于 Up 状态。

    您也可以通过浏览器或 curl 命令来验证服务是否可访问:

    • Elasticsearch: 打开终端,运行 curl http://localhost:9200。如果返回一个包含版本信息的 JSON 对象,则表示 Elasticsearch 运行正常。

    • Kibana: 打开浏览器,访问 http://localhost:5601。如果看到 Kibana 的欢迎界面,则表示 Kibana 运行正常。

第 2 步:安装并配置 Filebeat

现在,我们需要在您已经安装了 NGINX 的服务器上安装和配置 Filebeat。

  1. 安装 Filebeat

    filebeat-8.18.2-x86_64.rpm 包上传到您的 NGINX 服务器,并使用以下命令进行安装:

    rpm -vi filebeat-8.18.2-x86_64.rpm

    安装完成后,Filebeat 的配置文件位于 /etc/filebeat/ 目录下。

  2. 启用 NGINX 模块

    Filebeat 提供了预置的模块来简化常见服务的日志采集,包括 NGINX。运行以下命令启用 NGINX 模块:

    filebeat modules enable nginx

    此命令会在 /etc/filebeat/modules.d/ 目录下创建一个 nginx.yml 配置文件(如果它不存在的话)。

  3. 配置 filebeat.yml

    编辑主配置文件 /etc/filebeat/filebeat.yml。您需要修改 output.elasticsearchsetup.kibana 部分,使其指向我们刚刚用 Docker 部署的服务。

    nano /etc/filebeat/filebeat.yml

    找到并修改以下关键部分(文件中的其他默认配置可以暂时保持不变):

    # ============================== Outputs ===============================# ---------------------------- Elasticsearch Output ----------------------------
    output.elasticsearch:# Array of hosts to connect to.# 重要:请将 'your_server_ip' 替换为您服务器的实际 IP 地址。# 不要使用 localhost 或 127.0.0.1,因为 Filebeat 运行在主机上,而 ES 在 Docker 容器中。hosts: ["your_server_ip:9200"]# 如果您在上面 docker-compose.yml 中开启了安全功能,则需要配置用户名和密码# username: "elastic"# password: "your_password"# ============================== Kibana ==================================# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
    # This requires a Kibana endpoint configuration.
    setup.kibana:# Kibana Host# 重要:请将 'your_server_ip' 替换为您服务器的实际 IP 地址。host: "your_server_ip:5601"

    关键点:

    • hosts: 必须填写您服务器的公网或内网IP地址,而不是 localhost,因为 Filebeat 进程需要从主机访问 Docker 容器暴露的端口。

    • setup.kibana.host: 同上,也需要填写您服务器的 IP 地址。

  4. 检查 NGINX 模块配置

    打开 /etc/filebeat/modules.d/nginx.yml 文件,确保它监控的日志路径是正确的。默认配置如下:

    - module: nginxaccess:enabled: truevar.paths: ["/var/log/nginx/access.log*"] # 检查您的 NGINX access 日志路径是否匹配error:enabled: truevar.paths: ["/var/log/nginx/error.log*"]  # 检查您的 NGINX error 日志路径是否匹配

    如果您的 NGINX 日志文件存放在其他位置,请务必修改 var.paths 的值。

第 3 步:启动 Filebeat 并加载资源

在启动 Filebeat 之前,我们需要运行 setup 命令。这个命令会自动连接到 Kibana 和 Elasticsearch,并加载预置的 NGINX 仪表板、索引模式等资源。

  1. 加载 Filebeat 资源

    运行以下命令。对日志格式进行简单的模板分解,此过程可能需要一两分钟。

    filebeat setup -e

    如果看到类似 Dashboards loaded. 的信息,说明资源已成功加载到 Kibana。

  2. 启动并启用 Filebeat 服务

    现在可以启动 Filebeat 服务,并设置为开机自启。

    # 启动 Filebeat
    systemctl start filebeat# 设置为开机自启
    systemctl enable filebeat
  3. 检查 Filebeat 状态

    运行以下命令确保 Filebeat 服务正在运行且没有错误:

    systemctl status filebeat

    您也可以查看 Filebeat 的日志来排查问题:journalctl -u filebeat -f

第 4 步:在 Kibana 中查看 NGINX 日志

现在,所有服务都已配置并运行,是时候在 Kibana 中查看成果了。

  1. 访问 Kibana

    再次打开浏览器,访问 http://your_server_ip:5601

 

  1. 打开 Discover(发现)页面

    • 点击左上角的菜单图标(三条横线)。

    • 在 "Analytics" 分类下,点击 "Discover"。

  2. 选择索引模式

    • 在 Discover 页面的左上角,您应该会看到一个下拉菜单。

    • filebeat setup 命令已经为您创建了名为 filebeat-* 的索引模式。如果未被选中,请从下拉列表中选择它。

  1. 查询日志

    一旦选择了正确的索引模式,您应该能看到从 NGINX 推送过来的日志数据流。

    • 您可以在顶部的查询栏(KQL)中输入查询语句来过滤日志,例如 nginx.access.response_code : 404 来查找所有 404 错误。

    • 左侧的字段列表可以让您快速筛选和分析数据。

  2. 查看 NGINX 仪表板

    Filebeat 最强大的功能之一就是预置的仪表板。

    • 点击左上角的菜单图标。

    • 在 "Analytics" 分类下,点击 "Dashboard"。

    • 在搜索框中输入 "nginx",您应该能看到类似于 [Filebeat NGINX] Access and error logs ECS 的仪表板。

    • 点击打开它,您将看到一个包含各种图表和统计信息的可视化界面,全面展示了 NGINX 的访问情况和错误。

至此,已成功搭建了一套完整的日志采集分析系统。

http://www.xdnf.cn/news/12749.html

相关文章:

  • 基于Python学习《Head First设计模式》第七章 适配器和外观模式
  • CppCon 2015 学习:Intro to the C++ Object Model
  • 能上Nature封面的idea!强化学习+卡尔曼滤波
  • Appium+python自动化(十二)- Android UIAutomator
  • [TI板]MSPM0G3507学习笔记(一) 超详细keil环境配置+烧录配置+空工程迁移+vscode配置+点灯
  • PyCharm集成Conda环境
  • 北大开源音频编辑模型PlayDiffusion,可实现音频局部编辑,比传统 AR 模型的效率高出 50 倍!
  • 【网站建设】网站 SEO 中 meta 信息修改全攻略 ✅
  • OkHttp 3.0源码解析:从设计理念到核心实现
  • SOC-ESP32S3部分:33-声学前端模型ESP-SR
  • 开疆智能Ethernet/IP转Modbus网关连接鸣志步进电机驱动器配置案例
  • Mac版Visual Studio Code Copilot 无法使用的解决方法
  • FSMC扩展外部SRAM
  • 服务器新建用户无法使用conda
  • 【python与生活】如何构建一个解读IPO招股书的算法?
  • QT进阶之路:带命名空间的自定义控件在Qt设计器与qss中的使用技巧
  • Android音频开发:Speex固定帧与变长帧编解码深度解析
  • Windows账户管理,修改密码,创建帐户...(无需密码)
  • k3s入门教程(集群部署、使用,镜像拉取失败网络问题排查)
  • C++.OpenGL (2/64)你好,三角形(Hello Triangle)
  • N2语法 列挙、話題提出
  • 黑盒测试用例设计方法-全
  • gvim比较两个文件不同并合并差异
  • 【三余升序数对个数】2022-4-17
  • 数学:学好数学需要对数系进行系统的对比和分析
  • 蓝牙技术栈BR/EDR和LE详解
  • Linux驱动学习day1
  • Numpy5——数组的扩充(相加、复制、广播)排序,形状调整
  • 计算机图形学:(七)渲染目标
  • MybatisPlus中LambdaQueryWrapper 校验非空,非空判断