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

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

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

相关文章

docker最新版安装

docker安装 检查系统版本即卸载旧docker安装docker依赖工具及底层依赖、仓库源安装dockerdocker阿里云镜像资源站参考 检查系统版本即卸载旧docker # 查看操作系统的发行版号 uname -r# 查看系统版本 cat /etc/redhat-release# 卸载旧版本docker(如已安装过) yum remove docke…

突破编程_前端_SVG(ellipse 椭圆形)

1 ellipse 元素的基本属性和用法 ellipse 元素用于创建椭圆形状。它具有一系列的基本属性,允许自定义椭圆的外观和位置。以下是一些 ellipse 元素的基本属性和用法: (1)基本属性 cx 和 cy:这两个属性定义了椭圆中心…

[Java EE] 计算机工作原理与操作系统简明概要

1. 计算机工作原理 1.1 生活中常见的计算机 计算机分为通用计算机和专用计算机,计算机并不单单指的是电脑,还有我们平时使用的手机,ipad,智能手表等终端设备都是计算机.还有我们用户不常见的计算机,比如服务器. 还有许多嵌入式设备(针对特定场景定制的"专用计算机"…

Suno,属于音乐的ChatGPT时刻来临

AI绘画 AI视频我们见过了,现如今AI都能生成一首音乐,包括编曲,演唱,而且仅需几秒的时间便可创作出两分钟的完整歌曲 相信关注苏音的很大一部分都是从获取编曲或者混音插件来的,现如今AI却能帮你几秒生成曲子 今天就带…

Java面试 Day02

自我介绍和equals()有什么区别?String变量直接赋值和构造函数赋值比较相等吗?String一些方法?抽象类和接口有什么区别?Java容器有哪些?List、Set还有Map的区别?线程创建的方式?Runable和Callabl…

海外云手机怎么解决tiktok运营难题?

最近打算做TikTok的商家越来越多了,而做TikTok的第一步就面临如何养号、涨粉的困境,本文将介绍如何通过海外云手机轻松解决这些问题。 早期大家用的比较多的,是真机科学上网的方法。但是这种方法,需要自己搭建海外环境&#xff0c…

js面试---ES6

1、let、const、var的区别 块级作用域:let和const具有块级作用域,var不存在块级作用域。块级作用域解决了内层变量可能覆盖外层变量,以及用来计数的循环变量泄露为全局变量的问题。 变量提升:var存在变量提升,let和con…

网络篇09 | 运输层 udp

网络篇09 | 运输层 udp 01 简介UDP 是面向报文的 02 报文协议 01 简介 UDP 只在 IP 的数据报服务之上增加了一些功能:复用和分用、差错检测 UDP 的主要特点:无连接。发送数据之前不需要建立连接。 使用尽最大努力交付。即不保证可靠交付。 面向报文。…

DRF视图组件(2个视图基类、5个视图扩展类、9个视图子类、视图集和路由映射)

DRF视图组件(2个视图基类、5个视图扩展类、9个视图子类、视图集和路由映射) 目录 DRF视图组件(2个视图基类、5个视图扩展类、9个视图子类、视图集和路由映射)2个视图基类mixins的5个视图扩展类generics的9个视图子类视图集自定制返回格式自动生成路由(SimpleRouter)action装饰器…

【Java】Object类

目录 一、equals 方法 二、hashCode 方法 三、toString 方法 四、finalize 方法 一、equals 方法 只能判断引用类型默认判断的是地址是否相等,也就是判断两个对象是不是同一个对象子类中往往重写该方法,用于判断内容是否相等 public class Equals…

[lesson30]操作符重载的概念

操作符重载的概念 操作符重载 C中的重载能够扩展操作符的功能 操作符的重载以函数的方式进行 本质: 用特殊形式的函数扩展操作符的功能 通过operator关键字可以定义特殊的函数 operator的本质是通过函数重载操作符 语法: 可以将操作符重载函数定…

Android RecyclerView性能优化及Glide流畅加载图片丢帧率低的一种8宫格实现,Kotlin

Android RecyclerView性能优化及Glide流畅加载图片丢帧率低的一种8宫格实现&#xff0c;Kotlin <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_MEDIA_IMAGES&qu…

c# 服务创建

服务 创建服务 编写服务 可以对server1.cs重新命名&#xff0c;点击你的server按F7进入代码编辑模式&#xff0c;编写脚本 双击你的server.cs右击空白位置&#xff0c;添加安装程序&#xff0c;此时会生成“serviceInstaller1”及“serviceProcessInstaller1” 后续可以点击P…

faker 伪造数据生成库

faker 伪造数据生成库 前言 javafaker&#xff0c;这是一个用于生成假数据的 Java 库&#xff0c;与 Python 的 faker 库类似。javafaker 库提供了很多方法&#xff0c;用于生成各种类型的随机数据&#xff0c; 基本用法 api介绍 <!--java faker用于生成随机数据-->&…

使用AI动作捕捉制作动画图像——Viggle AI教程

使用AI动作捕捉制作动画图像——Viggle AI教程 在数字媒体时代&#xff0c;动画制作已经成为一种流行的艺术形式。最近&#xff0c;我在网上发现了一个非常有趣的AI动画制作工具——Viggle AI。这个工具不仅简单易用&#xff0c;而且目前还是免费的。在这篇博客中&#xff0c;我…

护眼台灯哪个牌子最好,护眼台灯品牌排行榜分享

​护眼台灯哪个牌子最好&#xff1f;尽管一些家长可能对护眼台灯还不甚了解&#xff0c;下面我将介绍这类台灯的几个显著优势&#xff1a;它们专为减少眼睛疲劳和保护视力而设计&#xff0c;提供稳定且柔和的光线&#xff1b;具备灵活的亮度调节功能&#xff0c;适应不同的阅读…

springMVC理解

springMVC是一种思想&#xff0c;将软件划分为&#xff0c;模型Model&#xff0c;视图View&#xff0c;控制器Controller。 MVC的工作原理&#xff1a;用户通过前端视图页面&#xff0c;发送请求到服务器&#xff0c;在服务器中请求被Controller接收&#xff0c;Controller调用…

使用PL\SQL将Excel表格导入到oracle数据库中

因为要测试生产问题&#xff0c;需要把生产上oracle导出数据导入到测试环境oracle数据库中&#xff0c;尝试了N种方法&#xff0c;发现使用PL\SQL 的ODBC 方法比较好用 1、开始 首先使用plsqldev里面的&#xff0c;工具--》下面的odbc导入器 2、配置 点击之后&#xff0c;会…

OpenHarmony轻量系统开发【2】源码下载和开发环境

2.1源码下载 关于源码下载的&#xff0c;读者可以直接查看官网&#xff1a; https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes 本文这里做下总结&#xff1a; &#xff08;1&#xff09;注册码云gitee账号。 &#xff08;2&#xff09;注册码云SSH公钥…

weblogic oracle数据源配置

在weblogic console中配置jdbc oracle数据源 1. base_domain->Service->DataSources 在Summary of JDBC Data Sources中&#xff0c;点击New, 选择【Generic Data Source】通用数据源。 2. 设置数据源Name和JNDI name 注&#xff1a;设置的JNDI Name是Java AP中连接…