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 启动批处理文件
在文件夹logstashin下新建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.24win64 ssm.exeff:elklogstashin里,然后在命令行里输入
Pushd f:elklogstashin
接着执行
Nssm install logstash
出现安装界面
 
请填写如下信息:
Path: f:elklogstashin un.bat
Startup directory: f:elklogstashin
界面如下:

点击"Details"页签,填写如下内容
Display namelogstash
Startup typeAutomatic
界面如下:

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

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

1 在安装好logstash以后进入logstashin目录,新建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