一、Logstash安装
(一)下载地址:
Download Logstash Free | Get Started Now | Elastichttps://www.elastic.co/cn/downloads/logstash(二)解压到/usr/local/并改名
[root@logstash ~]# ls
logstash-8.4.3-linux-x86_64.tar.gz[root@logstash ~]# tar -zxf logstash-8.4.3-linux-x86_64.tar.gz -C /usr/local/
[root@logstash ~]# mv /usr/local/logstash-8.4.3/ /usr/local/logstash
二、测试运行
(一)进入 Logstash 的安装主目录下执行:
[root@logstash ~]# cd /usr/local/logstash/
[root@logstash logstash]#bin/logstash -e ' input { stdin { type=> stdin } } output { stdout { codec => rubydebug } } '
-e 选项用于设置 Logstash 处理数据的输入和输出
-e ' ' 等同于 -e input { stdin { type => stdin } } output { stdout { codec => rubydebug } }
input { stdin { type => stdin } }
表示 Logstash 需要处理的数据来源来自于标准输入设备
output { stdout { codec => rubydebug } }
表示 Logstash 把处理好的数据输出到标准输出设备
当看到屏幕上输出如下字样,即可尝试使用键盘输入 hello 字样
输入 hello 即会立刻输出配格式化后的数据信息
message 字段对应的值是 Logstash 接收到的一行完整的数据
@version 是版本信息,可以用于建立索引使用
@timestamp 处理此数据的时间戳,可以用于建立索引和搜索
type 就是之前 input 中设置的值,这个值可以任意修改,但是, type 是内置的变量,不能修改,用于建 立索引和条件判断等
hosts 表示从那个主机过来的数据
三、配置输入和输出
(一)创建任意一个文件,并写入如下内容,作为 Logstash 的管道配置文件
[root@logstash logstash]# vim config/first-pipeline.conf
input { stdin { } }
output { stdout { } }
(二)运行如下命令启动Logstash
配置文件语法测试并启动:
[root@logstash logstash]# bin/logstash -f config/first-pipeline.conf --config.test_and_exit
[root@logstash logstash]# bin/logstash -f config/first-pipeline.conf
# -f 用于指定管道配置文件
启动后复制如下内容到命令行中,并按下回车键:
83.149.9.216 ‐ ‐ [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash‐monitorama‐ 2013/imageskibana‐search.png HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash‐monitorama‐2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
将会看到如下输出:
四、使用Grok过滤器插件解析Web日志
(一)准备测试数据:
[root@logstash ~]# vim /var/log/httpd.log
83.149.9.216 ‐ ‐ [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash‐monitorama‐ 2013/imageskibana‐search.png HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash‐monitorama‐2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
(二)修改好的管道配置文件如下:
match => { "message" => "%{COMBINEDAPACHELOG}"} 的意思是: 当匹配到 "message" 字段时,用户模式 "COMBINEDAPACHELOG}" 进行字段映射。
[root@logstash logstash]# vim config/first-pipeline.conf
input {
file {
path => ["/var/log/httpd.log"]
start_position => "beginning"}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" } }
}
output { stdout { } }
(三)配置完成后,再次进行验证
[root@logstash logstash]# bin/logstash -f config/first-pipeline.conf
输出内容:
(四)rename可以重新命名字段
1.rename可以重新命名字段
2.remove_field 可以移除任意的字段
修改后管道配置文件如下:
五、使用Geoip过滤器插件增强数据编辑
该geoip插件配置要求您指定包含IP地址来查找源字段的名称。在此示例中,该clientip字段包含IP地址。
geoip { source => "clientip" }
由于过滤器是按顺序求值的,因此请确保该geoip部分位于grok配置文件的该部分之后,并且grok和geoip部分都 嵌套在该filter部分中。
完成后的管道配置文件如下:
六、配置接受Beats的输入
(一)增加端口,接受filebeat输入
[root@logstash logstash]# vim config/first-pipeline.conf
(二)修改filebeat的yml文件输出目标如下
[root@filebeat filebeat]# vim filebeat.yml
(三)添加测试日志示例
[root@localhost ~]# vim /tmp/access.log
83.149.9.216 ‐ ‐ [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash‐monitorama‐ 2013/imageskibana‐search.png HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash‐monitorama‐2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
(四)运行filebeat和logstash
[root@ filebeat filebeat]# ./filebeat
[root@ logstash logstash]# bin/logstash -f config/first-pipeline.conf
(五)logstash接收到的filebeat的消息如下