logstash的输出方式
[root@server2 conf.d]# rpm -ivh logstash-6.6.1.rpm (logstash读取文件时会以logstash的身份读取)
1.直接输出到终端
2.在文件中写入输出方式,然后执行。
[root@server2 html]# cd /etc/logstash/
[root@server2 logstash]# cd conf.d/
[root@server2 conf.d]# vim es.conf
[root@server2 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf##输入加入的字符不会显示到终端,而是会保存到server1的前端页面中
[root@server2 conf.d]# cat es.conf
input {
stdin {}
}
output {
elasticsearch {
hosts => [“172.25.32.1:9200”]
index => “logstash-%{+YYYY.MM.dd}”
}
}
在前端页面查看,可以看到输入的数据redhat与lunix
3…在server2上添加过滤文件
[root@server2 ~]# cd /etc/logstash/conf.d
[root@server2 conf.d]# ls
[root@server2 conf.d]# vim test.conf
input {
stdin {}
}
filter {
grok {
match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
}
}
output {
stdout {}
}
执行
root@server2 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf
在下面输入:55.3.244.1 GET /index.html 15824 0.043 会被拆分成指定的的格式
3.在server2上1安装apache,编写其默认发布页面进行访问产生相应的日志
[root@server2 conf.d]# yum install -y httpd
[root@server2 conf.d]# systemctl start httpd
[root@server2 conf.d]# cd /var/www/html
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html
aini1wannian
[root@server2 html]# ab -c 1 -n 100 http://172.25.32.2/index.html
[root@server2 conf.d]# ls
es.conf test.conf
[root@server2 conf.d]# pwd
/etc/logstash/conf.d
[root@server2 conf.d]# cat es.conf
input {
file {
path => “/var/log/httpd/access_log”
start_position => “beginning”##从开始位置读取
}
}
output {
stdout {}
elasticsearch {
hosts => [“172.25.32.1:9200”]
index => “logstash-%{+YYYY.MM.dd}”
}
}
[root@server2 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/es.conf
注意的是,虽然是从文件开始位置进行读取的,但如果对读取过的文件进行再次读取是不会有任何数据产生的,除非文件内容发生改变才会重新输出。
可以看到再次读取es.conf中的文件时,因为其读取的文件内容没有发生改变所以没有再次进行读取。
在物理机访问server2
查看server2读取es.conf文件内容这时会发现读取了文件内容(读取新产生的内容,不会读取旧的内容,避免引起资源浪费)
而同时文件的偏移量也发生了变化(读取文件后停止的位置发生了变化)
在elksticsearch读取apache日志