【EFK日志系统】docker一键部署filebeat、metricbeat

docker一键部署filebeat、metricbeat

  • filebeat部署
    • 创建配置文件
    • 一键启动
    • 修改配置文件
    • 查验信息
  • metricbeat部署
    • 创建配置文件
    • 一键启动
    • 修改配置文件
    • 查验信息


上两篇文章写了搭建部署es集群和部署kibana

这篇写一键部署filebeat和metricbeat收集工具

规划服务器是
es01:172.23.165.185
es02:172.23.165.186
es03:172.23.165.187

每一台服务器都要部署metricbeat,用来收集系统日志,监控系统cpu、内存和流量等等,至于filebeat是否要部署取决于你的服务器上是否有应用服务、是否有服务日志需要收集,有则部署


本次filebeat、metricbeat部署在172.23.165.185,如果在其他的服务器,请修改内存映射数量、创建网络等。参考第一个
docker一键部署EFK系统(elasticsearch filebeat kibana metricbeat es-head)
【EFK日志系统】docker一键部署kibana、es-head
【EFK日志系统】docker一键部署filebeat、metricbeat
【EFK日志系统】在kibana操作索引模板、生命周期、管道等

filebeat部署

在es、kibana同级目录创建filebeat和metricbeat

mkdir {filebeat,metricbeat}

创建配置文件

1.创建docker-compose.yml文件

version: '3'
services: filebeat:build:context: .dockerfile: Dockerfileimage: docker.elastic.co/beats/filebeat:7.10.0container_name: filebeatprivileged: trueenvironment:- TZ=Asia/Shanghairestart: always
#    volumes:
#      - ./filebeat.yml:/usr/share/filebeat/filebeat.yml:rw
#      - ./data:/usr/share/filebeat/data:rw
#      - ./logs:/usr/share/filebeat/logs:rw
#      - ./modules.d:/usr/share/filebeat/modules.d:rwnetworks:- es-netnetworks:es-net:external: true

2.创建Dockerfile

FROM docker.elastic.co/beats/filebeat:7.10.0#COPY ./filebeat.yml /usr/share/filebeat/

一键启动

创建完文件后执行

docker-compose up -d

查看该容器是否正常启动

docker ps

启动正常执行

docker cp -a filebeat:/usr/share/filebeat/data .
docker cp -a filebeat:/usr/share/filebeat/logs .
docker cp -a filebeat:/usr/share/filebeat/modules.d .
docker cp -a filebeat:/usr/share/filebeat/filebeat.yml .

修改配置文件

1.取消docker-compose.yml的注释部分

即卷映射部分注释打开

2.取消Dockerfile的注释部分

即COPY ./filebeat.yml /usr/share/filebeat/

3.编写filebeat.yml
刚刚我们将filebeat.yml复制出来了,在本级目录编写修改

setup.template.enabled: false          #关闭自动加载默认索引模板
setup.ilm.enabled: false  			#关闭默认生命周期
setup.template.overwrite: true       #打开同名覆盖强写
setup.template.name: "application-logs"          #这是你的索引模板名称,下一篇文章创建
setup.template.pattern: "application-logs-*"logging.level: info
logging.selectors: ["*"]filebeat.inputs:- type: logid: java-app1enabled: truepaths:- /usr/share/filebeat/datalog/java-app1/*.log   #容器内的日志路径,我们通过volumes将容器外即你的宿主机的日志(想要采集的日志)映射进容器内fields:							#自定义预采集服务的各个字段env: testapplication: java-app1         log_type: app1_logignore_older: 168h						#只采集最新7天的日志multiline:									#通过识别时间戳进行多行合并,例如个别日志报错会出现数十行,其实都是一条日志,我们通过时间戳来合并他们pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}'negate: truematch: after- type: logid: java-app2enabled: truepaths:- /usr/share/filebeat/datalog/java-app2/*.logfields:env: testapplication: java-app2log_type: app2_logignore_older: 168hmultiline:pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}'negate: truematch: after- type: logid: java-app4enabled: truepaths:- /usr/share/filebeat/datalog/java-app4/*.logfields:env: testapplication: java-app4log_type: app4_logignore_older: 168hmultiline:pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}'negate: truematch: afterprocessors:           #解析处理器,可以拆分日志,或者增加字段等- add_fields:target: 'host'fields:ip: '172.23.165.185'output.elasticsearch:hosts: [ "http://172.23.165.185:9200", "http://172.23.165.186:9200", "http://172.23.165.187:9200" ]username: "elastic"password: "你的密码"index: "application-logs-%{[fields.env]}-%{[fields.application]}-%{+yyyy.MM.dd}"			#自定义index名称,在kibana便于查找pipeline: "remove_specific_fields_pipeline"		#管道,阻挡无用字段传输,比如我只需要host.ip,但是除了ip给我传输其他的一大堆,就需要管道拦截(当然不科学哈哈哈)
setup.kibana:host: "http://172.23.165.185:5601"username: "elastic"password: "你的密码"

而后在docker-compose.yml修改镜像迭代启动

查验信息

1.查看是否收到索引信息
终端输入:curl -u elastic:密码 -X GET “http://172.23.165.185:9200/_cat/indices?v&pretty”
2.浏览器输入:http://172.23.165.185:9200/_cat/indices?v&pretty

在这里插入图片描述

也可以登录es-head查看具体的索引信息
172.23.165.185:9100

在界面输入框输入url:
http://elastic:密码@172.23.165.185:9200/

metricbeat部署

创建配置文件

1.创建docker-compose.yml文件

version: '3'
services:metricbeat:build:context: .dockerfile: Dockerfileimage: docker.elastic.co/beats/metricbeat:7.10.0container_name: metricbeatprivileged: truenetwork_mode: hostenvironment:- TZ=Asia/Shanghaivolumes:- /var/run/docker.sock:/var/run/docker.sock:ro- /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro- /proc:/hostfs/proc:ro- /:/hostfs:ro
#      - ./metricbeat.yml:/usr/share/metricbeat/metricbeat.yml:rw
#      - ./data:/usr/share/metricbeat/data:rw
#      - ./logs:/usr/share/metricbeat/logs:rw
#      - ./modules.d:/usr/share/metricbeat/modules.d:rwenvironment:- ELASTICSEARCH_HOSTS=http://172.23.165.185:9200,http://172.23.165.186:9200,http://172.23.165.187:9200restart: always
#    networks:
#      - es-net#networks:
#  es-net:
#    external: true

2.创建Dockerfile文件

FROM docker.elastic.co/beats/metricbeat:7.10.0#COPY metricbeat.yml /usr/share/metricbeat/metricbeat.yml

一键启动

创建完文件后执行

docker-compose up -d

查看该容器是否正常启动

docker ps

启动正常后执行

docker -a cp metricbeat:/usr/share/metricbeat/data .
docker -a cp metricbeat:/usr/share/metricbeat/logs .
docker -a cp metricbeat:/usr/share/metricbeat/modules.d .
docker cp -a metricbeat:/usr/share/metricbeat/metricbeat.yml .

修改配置文件

1.取消docker-compose.yml的注释部分

即卷映射部分注释打开

2.取消Dockerfile的注释部分

即COPY metricbeat.yml /usr/share/metricbeat/metricbeat.yml

3.编写metricbeat.yml
刚刚我们将metricbeat.yml复制出来了,在本级目录编写修改

# metricbeat.yml
metricbeat.config.modules:path: /usr/share/metricbeat/modules.d/system.yml            #采用默认采集模板reload.enabled: falsesetup.template.enabled: false
setup.ilm.enabled: false
setup.template.overwrite: true
setup.template.name: "system"			#索引模板名称
setup.template.pattern: "system-*"
setup.template.settings:index.number_of_shards: 1index.codec: best_compressionlogging.level: info
logging.selectors: ["*"]setup.kibana:host: "http://172.23.165.185:5601"username: "elastic"password: "密码"output.elasticsearch:hosts: ["http://172.23.165.185:9200", "http://172.23.165.186:9200", "http://172.23.165.187:9200"]username: "elastic"password: "密码"index: "system-monitor-test-172.23.165.185-%{+yyyy.MM.dd}"processors:			#这个部分可以自定义- add_host_metadata: ~- add_cloud_metadata: ~- add_docker_metadata: ~- script:					#这个是过滤docker的ip,我们只采集宿主机的lang: javascriptid: "retain-first-ip"source: >function process(event) {var ip = event.Get("host.ip");if (ip && ip.length > 0) {event.Put("host.ip", [ip[0]]);}}- drop_fields:					#这个是过滤这两个字段的,因为他们很占篇幅fields: ["host.mac", "host.os"]- add_fields:				#这个是添加字段,比如测试、生产环境target: ''fields:env: 'test'monitoring:enabled: trueelasticsearch:hosts: ["http://172.23.165.185:9200", "http://172.23.165.186:9200", "http://172.23.165.187:9200"]username: "elastic"password: "密码"

4.编写system.yml(在metricbeat的modules.d)

给这个解除system.yml.disabled

# Module: system
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.10/metricbeat-module-system.html- module: systemperiod: 10smetricsets:- cpu- load- memory- network- process- process_summary- socket_summary#- entropy#- core#- diskio#- socket#- service#- usersprocess.include_top_n:by_cpu: 5      # include top 5 processes by CPUby_memory: 5   # include top 5 processes by memory- module: systemperiod: 1mmetricsets:- filesystem- fsstatprocessors:- drop_event.when.regexp:system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib|snap)($|/)'- module: systemperiod: 15mmetricsets:- uptime#- module: system
#  period: 5m
#  metricsets:
#    - raid
#  raid.mount_point: '/'

查验信息

1.查看是否收到索引信息
终端输入:curl -u elastic:密码 -X GET “http://172.23.165.185:9200/_cat/indices?v&pretty”
2.浏览器输入:http://172.23.165.185:9200/_cat/indices?v&pretty

在这里插入图片描述

也可以登录es-head查看具体的索引信息
172.23.165.185:9100

在界面输入框输入url:
http://elastic:密码@172.23.165.185:9200/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyQt5创建与MySQL数据库集成的应用程序

最近,对之前的mysql管理系统进行了更新升级,制作了一版关于车牌的管理系统! (1)实现了对车牌和用户基本信息的增删改查的功能 ! (2)加入了对数据库的刷新和状态显示功能 &#xff…

反向传播算法的详细推导

反向传播算法的详细推导

2024年江苏省大学生程序设计竞赛

Problem I. 整数反应 题意: 有n个整数,从左到右编号1到n,他们有0和1两种颜色,每个整数有且只有一种颜色,将它们按照编号从1到n的顺序依次放入S1,每当一个新整数x放入S1,必须选择与其不同颜色的…

R19 NR移动性增强概况

随着5G/5G-A技术不断发展和业务需求的持续增强,未来网络的部署将不断向高频演进。高频小区的覆盖范围小,用户将面临更为频繁的小区选择、重选、切换等移动性过程。 为了提升网络移动性能和保障用户体验,移动性增强一直是3GPP的热点课题。从NR…

短链接虚拟机环境配置

先进行通用配置 VMware虚拟机中Centos最小化安装后的常用配置 配置MySQL 5.7.x 启动 MySQL 实例,复制对应的配置文件。 docker run --name mysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7.36# ~/docker/software/mysql/conf 是本地目录,没有的话需要…

部署Envoy

Envoy常用术语 envoy文档官网 Life of a Request — envoy 1.31.0-dev-e543e1 documentationhttps://www.envoyproxy.io/docs/envoy/latest/intro/life_of_a_request#terminology 基础总结 (1)Envoy Envoy自己本身是工作在L7层的一个proxy&#xff…

ABP框架+Mysql(一)

生成项目 通过用官网的来生成 Get Started | ABP.IO 配上官网地址,需要注意的是,数据库选择Mysql 选择完成后,执行页面上的两条命令 dotnet tool install -g Volo.Abp.Cli abp new Acme.BookStore -dbms MySQL -csf 生成结束后的内容 单击打…

Windows 安装虚拟机(VMware+Ubuntu18.04)

Windows下虚拟机安装 一、资源下载1.1 VMware安装包下载1.2 Ubuntu镜像下载二、电脑分区三、Vmware安装四、Vmware检查4.1 注册信息查看4.2 检查网络适配器五、Ubuntu安装5.1 创建新的虚拟机5.2 打开虚拟机这是一篇介绍在Windows系统上安装Ubuntu虚拟机的操作教程。 一、资源下…

锐捷校园网自助服务-字符过滤存在缺陷

锐捷校园网自助服务-字符过滤存在缺陷 漏洞介绍 令人感到十分遗憾的是,锐捷网络安全应急响应中心对漏洞上报似乎缺少了一些奖励,令人对官方上报漏洞失去了些许兴趣​。 该缺陷仅仅打破了安全检查防护,并没有造成实质性危害,至于…

网页开发大学生课程项目参考资料库

登录注册:https://www.cnblogs.com/cainiao-chuanqi/p/12700004.htmlhttps://blog.csdn.net/qq_43477721/article/details/106248821https://blog.csdn.net/qq_23853743/article/details/112604323/?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~ba…

生成ssh密钥,使用ssh连接linux系统

这里写目录标题 ssh密钥大概介绍1、密钥在哪里生成(客户端/服务器)?2、密钥生成是什么样子的? ssh (生成密钥、密钥传输、配置连接、连接服务)过程1、生成密钥提示一:输入保存密钥的文件&#x…

每日一题《leetcode--LCR 022.环形链表||》

https://leetcode.cn/problems/c32eOV/ 我们使用两个指针,fast 与 slow。它们起始都位于链表的头部。随后slow 指针每次向后移动一个位置,而fast 指针向后移动两个位置。如果链表中存在环,则fast 指针最终将再次与slow 指针在环中相遇。 stru…

C语言读取ini配置文件 手动实现

在C语言中&#xff0c;你可以使用标准库中的文件操作函数来读取INI文件&#xff0c;然后解析其中的内容以找到对应的键和值。以下是一个简单的示例代码&#xff0c;演示如何实现这一过程&#xff1a; #include <stdio.h> #include <string.h>#define MAX_LINE_LEN…

AR和AP重分类(Regroup)[FAGLF101/OBBU/OBBV]

一、为什么AR和AP科目需要重分类 1.1 执行操作的前提(重要) 存在AR的当月总余额在贷方&#xff08;客户贷项凭证、预收账款等&#xff09;或AP的当月总余额在借方&#xff08;供应商贷项凭证、预收账款等&#xff09;&#xff0c;这种情况下无法真实的反映出资产和负债情况&…

阿里云语音合成TTS直播助手软件开发

阿里云的TTS比较便宜&#xff0c;效果比不了开源克隆的那种&#xff0c;比纯机器人效果好一点点 阿里云sambert https://help.aliyun.com/zh/dashscope/developer-reference/quick-start-13 Sambert系列模型 1万字1元 &#xff0c;每主账号每模型每月3万字免费 创建API-KEY htt…

Mac上搭建Python环境:深入探索与高效实践

Mac上搭建Python环境&#xff1a;深入探索与高效实践 在Mac上搭建Python环境&#xff0c;对于开发者来说是一个既具挑战性又充满乐趣的过程。本文将从四个方面、五个方面、六个方面和七个方面详细阐述如何在Mac上成功搭建Python环境&#xff0c;并帮助您更好地理解和应用Pytho…

Linux——多线程(二)

在上一篇博客中我们已经介绍到了线程控制以及对应的函数调用接口&#xff0c;接下来要讲的是真正的多线程&#xff0c;线程安全、线程互斥、同步以及锁。 一、多线程 简单写个多线程的创建、等待的代码 #include<iostream> #include<pthread.h> #include<un…

【C++】list的使用(下)

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; STL || C 目录 前言&#x1f525;操作list对象的接口函数&#xff08;opeartions&#xff09;spliceremoveremove_ifuniquemergesortreverse 结语 前言 本篇博客主要内容&#xff1a;STL…

Flutter 中的 DecoratedSliver 小部件:全面指南

Flutter 中的 DecoratedSliver 小部件&#xff1a;全面指南 Flutter 是一个功能强大的 UI 框架&#xff0c;它提供了丰富的组件和灵活的布局系统来帮助开发者构建美观且高效的用户界面。在 Flutter 的滚动组件体系中&#xff0c;DecoratedBox 是一个用于装饰普通小部件的装饰器…

MySQL 自定义函数(实验报告)

一、实验名称&#xff1a; 自定义函数 二、实验日期&#xff1a; 2024年 6 月 1 日 三、实验目的&#xff1a; 掌握MySQL自定义函数的创建及调用&#xff1b; 四、实验用的仪器和材料&#xff1a; 硬件&#xff1a;PC电脑一台&#xff1b; 配置&#xff1a;内存&#…