温馨提示×

CentOS上Filebeat如何监控Docker容器

小樊
34
2025-12-09 14:43:18
栏目: 智能运维

要在CentOS上使用Filebeat监控Docker容器,您需要遵循以下步骤:

  1. 安装Docker和Docker Compose(如果尚未安装): Docker:https://docs.docker.com/engine/install/centos/ Docker Compose:https://docs.docker.com/compose/install/centos/

  2. 安装Filebeat: 您可以从Elastic官方网站下载Filebeat的RPM包,或者使用以下命令安装:

    sudo yum install filebeat
    
  3. 配置Filebeat以监控Docker容器: 编辑Filebeat配置文件/etc/filebeat/filebeat.yml,添加以下内容:

    filebeat.inputs:
    - type: docker
      containers.ids:
      - "*"
      processors:
      - add_docker_metadata: ~
      - decode_json_fields:
          fields: ["message"]
          target: ""
          overwrite_keys: true
      field_prefix: docker.
      fields:
        docker.container_id: "{{ .ContainerID }}"
        docker.image: "{{ .Image }}"
        docker.command: "{{ .Config.Cmd }}"
        docker.name: "{{ .Name }}"
        docker.startup_time: "{{ .State.StartedAt }}"
        docker.running: "{{ .State.Running }}"
        docker.paused: "{{ .State.Paused }}"
        docker.exit_code: "{{ .State.ExitCode }}"
        docker.error: "{{ .Error }}"
        docker.log_file: "{{ .LogPath }}"
        docker.stream: "{{ .Stream }}"
        docker.tags: "{{ .Config.Tags }}"
    

    这将配置Filebeat以监控所有Docker容器,并将容器的元数据添加到日志事件中。

  4. 启动并启用Filebeat服务:

    sudo systemctl start filebeat
    sudo systemctl enable filebeat
    
  5. 验证Filebeat是否正在监控Docker容器: 使用以下命令查看Filebeat的输出:

    sudo filebeat modules list
    

    您应该看到名为docker的模块已启用。

现在,Filebeat将收集Docker容器的日志并将其发送到配置的输出(例如Elasticsearch或Logstash)。您可以根据需要进一步自定义Filebeat配置以满足您的需求。

0