ELK中Logstash的基本配置和用法

news2024/10/5 16:22:48

文章目录

  • Logstash的条件判断
  • Logstash的输入插件
    • Stdin输入
    • 文件内容输入
    • filter过滤器
  • Logstash的输出插件
    • 测试收集日志
    • 启动kibana
    • 在kibana中配置索引数据

在 《Elasticsearch搜索引擎系统入门》中简单描述了Logstah的安装,本篇文章将较为详细的讲解Logstash的基本配置和用法。

Logstash的条件判断

比较操作符

相等: ==, !=, <, >, <=, >=
正则: =~(匹配正则), !~(不匹配正则)
包含: in(包含), not in(不包含)

布尔操作符

and(与), or(或), nand(非与), xor(非或)

一元运算符:

!(取反)
()(复合表达式), !()(对复合表达式结果取反)

Logstash的输入插件

Stdin输入

Stdin输入就是把输入的内容直接输出到控制台,不做存储。配置示例:

input {
	stdin {
	}
}
filter {
}
output {
	stdout {
		codec => rubydebug
	}
}

进入 logstash的安装目录:

mkdir config/input_config/
cd config/input_config/
vim Stdin.conf #然后写入上面的配置内容

再次回到logstash的安装目录:

sudo chmod -R 777 data/
# 使用刚才的配置文件启动
./bin/logstash -r -f ./config/input_config/Stdin.conf

启动后,在控制台输入内容就可以收集到:
在这里插入图片描述

文件内容输入

配置示例:

input {
	file {
		path => "/home/rx/tmp/test.log"
		tags => "123"
		type => "syslog"
	}
}
filter {
}
output {
	stdout {
		codec => rubydebug
	}
}

path里面支持日志路径的通配符,比如:/tmp/log*/*.log

将上面的内容保存到 logstash目录下面的 config/input_config/File.conf
然后启动:./bin/logstash -r -f ./config/input_config/File.conf
接下来,给 /home/rx/tmp/test.log 里面写入内容,查看logstash控制台:
在这里插入图片描述

filter过滤器

配置示例:

input {
	stdin {
	}
}
filter {
	json {
		source => "message"
		target => "content"
	}
}
output {
	stdout {
		codec => rubydebug
	}
}

以上内容 filter 中的 source表示对 message 部分进行解析,target 表示目标字段,可以将 message里面的内容解析出来后放到 content 中。

保存上面配置文件到 Stdin_filter.conf 中,然后运行:./bin/logstash -r -f ./config/input_config/Stdin_filter.conf
在控制台输入一个json,示例:{"ip":"127.0.0.1","method":"POST","url":"/user/info?id=1"}
可以看到 json的内容被解析到了 content 里面,而message 里面是原始的json字符串内容。
在这里插入图片描述

Logstash的输出插件

可以支持很多输出方式,在 https://www.elastic.co/guide/en/logstash/current/output-plugins.html 查看:
在这里插入图片描述

在这里介绍输出到ES的操作步骤。

测试收集日志

下面测试对系统日志/var/log/syslog/var/log/auth.log 进行收集,配置logstash如下的配置文件:
vim /home/rx/soft/elastic/logstash-7.1.0/config/output_config/logstash-to-es.conf 写入内容:

input {
    file {
        path => ["/var/log/syslog"]
        type => "system"
        tags => ["syslog","test"]
        start_position => "beginning"
    }
    file {
        path => ["/var/log/auth.log"]
        type => "system"
        tags => ["auth","test"]
        start_position => "beginning"
    }
}
filter {
}
output {
    if [type] == "system" {
        if [tags][0] == "syslog" {
            elasticsearch {
                hosts  => ["http://192.168.0.211:9200","http://192.168.0.212:9200","http://192.168.0.213:9200"]
                index  => "logstash-system-syslog-%{+YYYY.MM.dd}"
            }
            stdout { codec=> rubydebug }
        }
        else if [tags][0] == "auth" {
            elasticsearch {
                hosts  => ["http://192.168.0.211:9200","http://192.168.0.212:9200","http://192.168.0.213:9200"]
                index  => "logstash-system-auth-%{+YYYY.MM.dd}"
            }
            stdout { codec=> rubydebug }
        }
    }
}
  • 以上配置的hosts部分使用了集群配置,如果是单个ES服务,直接使用单个IP和端口即可,例如:hosts => [“http://127.0.0.1:9200”]
  • start_position => “beginning” 表示从文件头部开始收集

启动 logstash:./logstash-7.1.0/bin/logstash -r -f ./logstash-7.1.0/config/output_config/logstash-to-es.conf
启动后就开始收集日志了:
在这里插入图片描述

启动kibana

修改 kibana/config/kibana.yml 里面关于ES的内容:

elasticsearch.hosts: ["http://localhost:9200"]

然后启动ES 和 kibana:

./elasticsearch-7.1.0/bin/elasticsearch #启动ES
./kibana-7.1.0-linux-x86_64/bin/kibana #启动kibana

浏览器访问 http://localhost:5601/ 打开kibana的页面,进入 Management > Index management 即可看到最新收集到的日志索引:
在这里插入图片描述

在kibana中配置索引数据

进入 kibana 管理页面的 Management > Index Patterns > Create index pattern:
在这里插入图片描述
下一步:
在这里插入图片描述
创建完成:
在这里插入图片描述
然后在 Discover 中就可以看到最新收集的日志了:
在这里插入图片描述

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

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

相关文章

Docker搭建个人网盘、私有仓库

1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘 [rootlocalhost ~]# docker pull mysql:5.6 [rootlocalhost ~]# docker pull owncloud [rootlocalhost ~]# docker run -itd --name mysql --env MYSQL_ROOT_PASSWORD123456 mysql:5.6 [rootlocalhost ~]# doc…

汽车企业数据泄露频发,其中特斯拉数据泄露影响达7.5万人

据美国有线电视新闻网&#xff08;CNN Business&#xff09;8月19日报道&#xff0c;特斯拉此前发生的大规模数据泄露事件&#xff0c;泄露了超过7.5万人的个人信息&#xff0c;这是“内部不法行为”的结果。 特斯拉在发给员工的通知中表示&#xff0c;被泄露的“特斯拉文件”包…

CMS数据库搭建

前置条件&#xff1a;在虚拟机中安装phpstudy。 1.将cms的压缩包通过远程桌面放到虚拟机&#xff0c;将压缩包解压&#xff0c;将解压后的cms文件夹放到phpstudy安装目录下的www文件夹中&#xff0c;路径如下&#xff08;安装时的路径可能不同&#xff09;&#xff1a; C:\ph…

易基因:MeRIP-seq等揭示ALKBH5介导m6A去甲基化调控皮肤创面再上皮化分子机制|科研进展

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 哺乳动物的损伤皮肤屏障完整性恢复通过创面愈合基本机制实现&#xff0c;这是一个包括凝血、炎症、再上皮化&#xff08;re-epithelialization&#xff09;、肉芽组织形成和疤痕重塑的多…

MSTP多生成树协议(第二课)

MSTP负载均衡 实验 需求 1&#xff09;PC1属于 vlan 10 &#xff0c;IP地址为 192.168.10.1/24&#xff0c; 网关为 192.168.10.2542&#xff09;PC2属于 vlan 20 &#xff0c;IP地址为 192.168.20.1/24&#xff0c; 网关为 192.168.20.254**3&#xff09;确保PC1与PC2互通4…

pytorch中的register_buffer

今天在一个模型的init中遇到了self.register_buffer(‘running_mean’, torch.zeros(num_features)) register_buffer(self, name, tensor)是一个PyTorch中的方法&#xff0c;它的作用是向模块&#xff08;module&#xff09;中添加一个持久的缓冲区&#xff08;buffer&#xf…

【优选算法】—— 字符串匹配算法

在本期的字符串匹配算法中&#xff0c;我将给大家带来常见的两种经典的示例&#xff1a; 1、暴力匹配&#xff08;BF&#xff09;算法 2、KMP算法 目录 &#xff08;一&#xff09;暴力匹配&#xff08;BF&#xff09;算法 1、思想 2、演示 3、代码展示 &#xff08;二&…

nginx基于端口如何配置虚拟主机

在 Nginx 中配置基于端口的虚拟主机&#xff08;也称为服务器块&#xff09;与配置基于域名的虚拟主机类似&#xff0c;但是你需要指定监听的端口。以下是基于端口的虚拟主机配置示例&#xff1a; 假设我们要配置两个不同的虚拟主机&#xff0c;一个监听 8080 端口&#xff0c…

【自制C/C++小项目JuLongEditor】使用Windows控制台API来制作一个简单的文本编辑器

2023年8月22日&#xff0c;周二下午 昨天花了一个下午和晚上来制作的&#xff0c; 实现了一些基本的功能&#xff0c; 但由于代码只有130行&#xff0c;所以存在很多不足之处 GitHub&#xff1a;GitHub - JuLongZhiLu/JuLongEditor: C/C小项目&#xff0c;使用Windows控制台…

Hlang-从零开始编写一个vscode代码提示插件

文章目录 前言Hlang适配实现语法提示package.json配置编写提示语法配置语法高亮执行打包前言 通过一段时间的努力,Hlang是开发完毕了,但是我们还需要为它提供一个IDE。那么从零开发显然是不可取的,这会大大加大开发难度。但是我们可以基于vscode这个神奇的物质。所以我们只…

STM32驱动MAX30102心率血氧传感器(OLED显示)

STM32驱动MAX30102心率血氧传感器&#xff08;OLED显示&#xff09; 简介电气参数系统框图接线代码结果总结 简介 MAX30102是一个集成的脉搏血氧仪和心率监测仪模块。它包括内部led&#xff0c;光电探测器&#xff0c;光学元件&#xff0c;和低噪声电子与环境光排斥。MAX30102…

《三国》时期,谁才是优秀的项目经理

大家好&#xff0c;我是老原。 上一次细读三国&#xff0c;还是在老原高中的时候&#xff0c;当时只觉得他们神仙打架&#xff0c;谋略过人。 现在毕业也快10年&#xff0c;重读三国&#xff0c;我又有了新的一些发现——关于管理者。 金无赤足&#xff0c;人无完人。《三国…

stm32片内读写项目总结(多字节读写tongxindu)

1.flash操作驱动程序 a头文件 #ifndef FLASH_H #define FLASH_H #include “stm32f4xx.h” #define BOARD_NUM_ADDR 0x0800C000 #define STM32_FLASH_BASE 0x08000000 //STM32 FLASH的起始地址 #define FLASH_WAITETIME 50000 //FLASH等待超时时间 //FLASH 扇区的起始地址…

wazuh环境配置及漏洞复现

wazuh环境配置 案例复现 wazuh环境配置 1.进入官网下载OVA启动软件 Virtual Machine (OVA) - Installation alternatives (wazuh.com) 2.进入VMware像配置其他虚拟机一样进行配置即可 3.上面会有提示&#xff1a;账号为&#xff0c;wazuh-user&#xff1b;密码&#xff0c;wa…

Vue实现Excel表格中按钮增加小数位数,减少小数位数功能,多用于处理金融数据

效果图 <template><div><el-button click"increaseDecimals">A按钮</el-button><el-button click"roundNumber">B按钮</el-button><el-table :data"tableData" border><el-table-column v-for&q…

绿盾客户端字体库文件被加密了,预览不了

环境: 绿盾客户端7.0 Win10 专业版 问题描述: 绿盾客户端字体库文件被加密了,预览不了 预览不了 解决方案 1.打开控制台 2.进入规则中心 3.找到对应的操作员类型 4.选择自定义程序 5.右键新建程序,填最开始获得的程序名,可执行程序选择本地程序,我本地没有这个…

410随身WiFi刷完openwrt后作玩具nas/bt机

简单流程介绍&#xff1a;机子wifi模式改为客户端&#xff0c;添加ipv6&#xff0c;开放需要的端口&#xff0c;切换USB工作模式&#xff0c;挂载usb储存&#xff0c;安装qb/aria2之类软件 前提就是刷好openwrt了&#xff0c;教程话题里有 注意opemwrt的操作要及时保存并应用&a…

openGauss学习笔记-47 openGauss 高级数据管理-权限

文章目录 openGauss学习笔记-47 openGauss 高级数据管理-权限47.1 语法格式47.2 参数说明47.3 示例 openGauss学习笔记-47 openGauss 高级数据管理-权限 数据库对象创建后&#xff0c;进行对象创建的用户就是该对象的所有者。数据库安装后的默认情况下&#xff0c;未开启三权分…

5、Spring_DI注解开发

DI 注解开发 1.目前面临问题 建立 mapper public interface EmployeeMapper {void save(); }建立 mapper 实现类 Repository public class EmployeeMapperImpl implements EmployeeMapper {public void save(){System.out.println("保存员工信息");} }建立 service …

档案开发:增加查询和打卡按钮

档案开发&#xff1a;增加查询和打卡按钮 和单据开发的不同点 没有单据类型不是右击–>特性–>单据主表/单据子表&#xff0c;而是右击–>特性–>选择想要的接口访问器类型是NCVO不需要映射不是项目右键–>新建–>其他–>主子表单据结点&#xff0c;而是…