ELK之Filebeat实用配置及批量部署(部署200+可用)

2024-04-16 08:28

本文主要是介绍ELK之Filebeat实用配置及批量部署(部署200+可用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

跟我之前Zabbix-agent批量部署脚本Linux and Windows(部署300+可用)文章的套路一样,在使用该脚本前,请先准备好安装包及配置好安装包的资源下载点,由于我这边是纯内网,所以我就找了一个NAS做了共享目录,用于安装脚本去下载安装包
至于怎么做共享目录就不多说,我的目录包含4个文件:

filebeat.service
#用于配置filebeat服务及自启动filebeat.yml
#filebeat的配置文件filebeat-8.3.3-linux-x86_64.tar.gz
#filebeat的主要安装包http_ca.crt
#与Elasticsearch连接的证书文件

测试参数,请酌情修改:
Elasticsearch服务器:192.168.1.1
Elasticsearch账号:elastic/123456
Kibana服务器:192.168.1.1
资源下载点:192.168.1.2
访问资源的账号:nasuser/123456
临时客户端IP:192.168.1.3 (这个在批量部署脚本中是可以被自动修改为实际IP的)

Filebeat配置文件详情:

filebeat.inputs:# 配置日志输入- type: logenabled: truepaths:- /var/log/messages- /var/log/secureprocessors:# 处理器,过滤不包含特定关键词的日志事件- drop_event.when.not.regexp.message: "error|exception|fail"- add_tags:tags: ["error_logs"]tags: ["192.168.1.3 "]  # 添加额外的标签- type: logenabled: truepaths:- /var/log/secureprocessors:- drop_event.when.not.regexp.message: "sshd|login|logout|session|pam_unix|pam_succeed_if|Accepted|Failed|Invalid user|user .* from|pam_unix(sshd:session)"- add_tags:tags: ["login_logs"]tags: ["192.168.1.3 "]  # 添加额外的标签output.elasticsearch:# 输出到Elasticsearchhosts: ["192.168.1.1:9200"]protocol: "https"username: "elastic"password: "123456"allow_older_versions: truessl.certificate_authorities: ["/elkbeat/filebeat/http_ca.crt"]indices:# 根据标签将日志事件发送到不同的索引- index: "linux-error-%{[beat.version]}-%{+yyyy.MM}"when.contains:tags: "error_logs"- index: "linux-login-%{[beat.version]}-%{+yyyy.MM}"when.contains:tags: "login_logs"processors:- drop_fields:fields: ["agent", "ecs", "@metadata", "input"]  # 删除指定的字段setup.kibana:host: "192.168.1.1:5601"  # 配置连接到Kibana的地址logging.level: error
logging.to_files: true
logging.files:path: /var/log/filebeat  # 日志文件输出路径name: filebeat.log  # 日志文件名keepfiles: 7  # 保留的日志文件数量

批量部署脚本如下:

#!/bin/bash# 检查是否已安装filebeat相关软件包(通过文件查询方式)
is_installed_check() {file="/elkbeat/filebeat/filebeat"if [ -e "$file" ]; thenreturn 0elsereturn 1fi
}# 获取已安装的filebeat相关软件包列表(通过脚本方式)
get_installed_packages_sh() {installed_packages=$(/elkbeat/filebeat/filebeat version)echo "已安装软件包:$installed_packages"
}# 获取主机的IP地址(以192.168开头)
get_ip_address() {ip_address=$(ip addr | awk '/inet / && /192\.168\./ {gsub(/\/[0-9]+/, "", $2); print $2}')echo "主机IP:$ip_address"
}# 下载安装包
download_packages() {mkdir -p /elkbeatwget -nc --ftp-user=test --ftp-password=123456 ftp://192.168.1.2/Temp/yum/* -P /elkbeat/ &> /dev/null
}#安装软件包
install_packages() {cd /elkbeatmkdir -p /elkbeat/filebeat/rm -rf /elkbeat/filebeat/*tar -xzf filebeat-8.3.3-linux-x86_64.tar.gzmv  /elkbeat/filebeat-8.3.3-linux-x86_64/* /elkbeat/filebeat/cp /elkbeat/filebeat.service  /lib/systemd/system/cp /elkbeat/http_ca.crt  /elkbeat/filebeat/cd /elkbeatrm -rf filebeat-8.3.3*
}# 替换配置文件
replace_config() {cd /elkbeat/filebeatcp filebeat.yml filebeat.yml.bakcp -f /elkbeat/filebeat.yml  /elkbeat/filebeat/sed -i "s/tags: \[\"10\.115\.85\.195\"\]/tags: \[\"$ip_address\"\]/g" /elkbeat/filebeat/filebeat.yml
}# 检查服务状态
check_service_status() {systemctl restart filebeatservice_status=$(systemctl  is-active filebeat.service --quiet && echo "active" || echo "inactive")echo "服务状态:$service_status"
}		# 设置服务启动及开机启动
set_service() {# 启动服务systemctl start filebeat# 设置开机启动systemctl enable filebeat}# 执行主程序
is_installed_check
if [ $? -eq 0 ]; thenecho "已安装filebeat相关软件包"get_installed_packages_sh
elseecho "未安装filebeat相关软件包"get_ip_addressdownload_packagesinstall_packagesreplace_configcheck_service_statusset_service
fi

这篇关于ELK之Filebeat实用配置及批量部署(部署200+可用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/908274

相关文章

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器