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

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信