logstash

Logstash的安装:

1  下载 Logstash: https://download.elastic.co/logstash/logstash/logstash-1.5.4.zip 并解压

2  进入Logstash/bin 文件夹下,建立Logstash.conf文件

写入配置(E:/test/3.log 为iis日志文件):

input{
file {
path => "E:/test/3.log"
start_position => beginning
codec=>plain{charset=>"GB2312"}
}
}
filter {
grok {
match => [
"message", "%{IP:inner_ip} %{WORD:content}"
]
}
}
output{
elasticsearch {
host => "127.0.0.1"
port => "9200"
protocol => "http"
index => "test_system_log"
codec=>plain{charset=>"GB2312"}
}
}

3 安装Logstash为windows服务

 新建Logstash 启动批处理文件
在文件夹logstash\bin下新建run.bat 文件
文件内容如下
logstash.bat agent -f logstash.conf
增加这个批处理的目的是为了解决在windows环境下logstash运行一段时间就会挂起的问题。

 

Logstash 安装成windows 服务
首先从网址 https://nssm.cc/release/nssm-2.24.zip 下载nssm
解压nssm-2.24.zip, 然后从解压目录中拷贝nssm-2.24\win64\nssm.exe ff:\elk\logstash\bin 里,然后在命令行里输入
Pushd f:\elk\logstash\bin
接着执行
Nssm install logstash
出现安装界面
 
请填写如下信息:
Path: f:\elk\logstash\bin\run.bat
Startup directory: f:\elk\logstash\bin
界面如下:

点击"Details" 页签,填写如下内容
Display name logstash
Startup type Automatic
界面如下:

接下来点击"Dependencies" 页签,填写如下信息
This service depends on the followingsystem components: elasticsearch-service-x86
界面如下:

添加依赖的原因是,logstash 的输出配置的是Elasticsearch ,如果Elasticsearch 没有启动,logstash 无法正常工作。
最后单击install service 按钮,执行安装过程,出现如下界面,表示服务已经安装成功。
 
 
 

1 在安装好logstash以后进入\logstash\bin目录,新建Logstash.conf文件

2  logstash几种简单的配置:

input{
  tcp{
  port => 514
  }
}
output{
  elasticsearch {
  host => "127.0.0.1"
  port => "9200"
  protocol => "http"
  index => "test_system_log"
  }
}

一般包含数据输入input和数据输出 output,对于logstash数据一般:输入可以来自文件/redis/或网络  ,而输出是要放到elasticsearch里

1)对于消息流的情况:上面配置让logstash服务监听514端口,凡是来自514端口的tcp消息都能被它获得,并发送到elasticsearch。

  1 测试时,可以通过cmd命令行 telenet 127.0.0.1 514 来打开tcp客户端,然后敲入消息回车 发送tcp消息到logstash  注意安装了telenect客户端

  2 可以使用nxlog收集日志,然后配置nxlog往127.0.0.1 514 地址以tcp方式发送读取到的日志数据(未成功 )

2)发送redis数据到 logstash

input {
redis {
host => '127.0.0.1'
data_type => 'list'
port => "6379"
key => 'iis:redis'
type => 'redis-input'
}
}

此时redis作为消息队列的形式往logstash发送消息,redis里有一个key为iis:redis的list,每一次你可以往改list里push一条数据,然后logstash会自动pop一个数据出来到logstash,并发送到elasticsearch

3)文件到logstash:它会读取指定路径下的文件,发送到logstash;加入codec=>plain{charset=>"GB2312"} 指定编码格式防止乱码

input{
file {
path => "E:/test/3.log"
start_position => beginning
codec=>plain{charset=>"GB2312"}
}
}
output{
elasticsearch {
host => "127.0.0.1"
port => "9200"
protocol => "http"
index => "test_system_log"
codec=>plain{charset=>"GB2312"}
}
}

 4 Grok 

是 Logstash 最重要的插件。你可以在 grok 里预定义好命名正则表达式,在稍后(grok参数或者其他正则表达式里)引用它。

 http://udn.yyuap.com/doc/logstash-best-practice-cn/filter/grok.html

转载于:https://www.cnblogs.com/shaner/p/5630693.html

### Logstash 使用指南与常见问题解决 Logstash 是 Elastic Stack 中的一个重要组成部分,主要用于数据采集、转换和传输。它具有高度可扩展性和灵活性,适用于多种应用场景,如实时日志分析、安全监控、性能监测等[^1]。 #### 1. **Logstash 的基本架构** Logstash 的工作流程分为三个阶段:输入(Input)、过滤(Filter)和输出(Output)。每个阶段都可以通过插件进行定制化配置。 - 输入阶段负责接收数据源,例如文件、syslog、TCP/UDP 流等。 - 过滤阶段对数据进行解析、修改或 enrich 处理。 - 输出阶段将处理后的数据发送到目标位置,例如 Elasticsearch、Kafka 或其他存储系统。 #### 2. **Logstash 配置文件结构** Logstash 的配置文件通常由三部分组成:input、filter 和 output。下面是一个简单的例子: ```plaintext input { file { path => "/var/log/*.log" start_position => "beginning" } } filter { grok { match => { "message" => "%{COMBINED_LOG_FORMAT}" } } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "logs-%{+YYYY.MM.dd}" } } ``` 此配置实现了从 `/var/log/` 路径下的日志文件读取数据,并使用 Grok 插件解析日志内容,最后将其索引到 Elasticsearch 中。 #### 3. **常见问题及其解决方法** ##### (1)**Logstash 启动失败** 如果 Logstash 在启动时遇到错误,可能是由于内存不足或者配置文件语法有误引起的。可以通过增加 JVM 堆大小来缓解内存压力,编辑 `jvm.options` 文件调整 `-Xms` 和 `-Xmx` 参数。另外,确保配置文件无拼写错误并通过命令行测试其有效性: ```bash bin/logstash -f /path/to/config.conf --config.test_and_exit ``` ##### (2)**日志重复摄入** 有时可能会发现同一份日志被多次摄入,这通常是因 Sincedb 文件损坏所致。Sincedb 记录了上次消费的位置以便后续增量读取。尝试删除 sincedb 文件重新开始同步即可解决问题: ```bash rm .sincedb_* ``` ##### (3)**Grok 解析失败** 当 Grok 表达式无法匹配预期模式时,可能导致字段提取不成功。建议利用调试工具验证正则表达式的准确性,例如在线 Grok Debugger 工具[^2]。 #### 4. **优化技巧** 为了提升 Logstash 的效率,可以从以下几个方面入手: - 减少不必要的 filter 步骤以降低 CPU 占用率。 - 批量提交数据至下游服务减少网络开销。 - 定期清理旧的日志文件防止磁盘空间耗尽。 --- ### 总结 通过对 Logstash 的深入理解及合理配置,可以有效应对各类复杂场景下的数据流管理挑战。无论是基础入门还是高级调优,掌握好核心概念和技术细节都是至关重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值