Logstash
是一个管理日志和事件的工具。
安装部署
- 1:首先安装java(建议1.7)
- 2:下载https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz
- 3:tar -zxvf logstash-2.4.0.tar.gz
- 4:bin/logstash -e 'input { stdin { } } output { stdout {} }'
- 5:bin/logstash -e 'input { stdin { } } output { stdout { codec => json} }'
使用-f参数替换命令行中的-e参数 bin/logstash -f logstash-simple.conf
bin/logstash -f logstash-simple.conf --auto-reload
Logstash inputs
file
path => "/data/mysql/mysql.log"
path => [ "/var/log/messages", "/var/log/*.log" ]
start_position:指定从什么位置开始读取文件数据,默认是结束位置,也可以指定为从头开始。
注意:start_position仅在该文件从未被监听过的时候起作用,因为logstash在读取文件的时候会记录一个.sincedb文件来跟踪文件的读取位置,当文件被读取过一次之后,下次就会从.sincedb中记录的位置读取,start_position参数就无效了。文件默认在用户目录下。
注意一个坑:ignore_older属性,表示忽略老的数据,值默认为86400,表示忽略24小时以前的数据。如果你新监控一个24小时以上没有被修改过的老文件的话,就算把start_position设置为beginning,也无法获取之前的数据,默认是根据最后更新的时间
Logstash outputs
redis
elasticsearch hosts=>"192.168.1.100" hosts=>["192.168.1.100:9200","192.168.1.101"] 1.x中属性名称叫host 默认向es中创建的索引库是logstash-%{+YYYY.MM.dd},可以利用es中的索引模板特性定义索引库的一些基础配置
logstash读写性能调整优化
threads=>10 启动十个线程接收
workers=>10 启动十个线程接收
更改filebeat 配置文件
打开output.logstash:注释
hosts: ["bigdata-sg-a-02:5044"]
启动logstash bin/logstash -e 'input { beats {port => 5044} } output { stdout { codec => json} }'
指定监控5044端口 输出到控制台以json格式
成功收到日志.
outputs ES
output {
if [type] == "tomcat_ctmpweb" { ##按照type类型创建多个索引
elasticsearch {
hosts => ["bigdata-sg-a-03:9200"]
index => "tomcat_ctmpweb_%{+YYYY.MM.dd}"
}
}
if [type] == "nginx_access" { ##按照type类型创建多个索引
elasticsearch {
hosts => ["bigdata-sg-a-03:9200"]
index => "nginx_access_%{+YYYY.MM.dd}"
}
}
if [type] == "nginx_error" { ##按照type类型创建多个索引
elasticsearch {
hosts => ["bigdata-sg-a-03:9200"]
index => "nginx_error_%{+YYYY.MM.dd}"
}
}
}
type是根据filebeat 标示收集不同日志自己的FLAG
下一篇主要logstash filter