logstash的安装
下载安装包, 下载地址
解压安装包
logstash的基本配置
logstash本身的配置不多, 其配置复杂点在于配置通过beat获取数据再推向elasticsearch的过程(我们只讨论通过beat获取数据这一种情况),这个配置logstash在config下给出了一个默认配置文件logstash-sample.conf, 当然这中简单的配置是不满足我们基本的需求的, 但是我们还是了解一下官方的配置:
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
可以看出, 配置中主要的两个配置点是input和output, 其实在后续的使用过程中, 我们还会经常用到filter, 其结构如下图所示:
在后续的实例中, 会示例这块配置.
logstash的常用命令
启动 .\logstash.bat -f ..\config\logstash-sample.conf
filebeat安装
下载安装包, 下载地址
解压安装包
filebeat配置
filebeat是Beats里的一种, 也是比较常用的一种, 一般来说, 对于多个项目, elasticsearch和logstash可共用, 但是每个项目需要有一个对应的filebeat去按相应的地址去收集日志.
修改config/filebeat.yml
filebeat.inputs部分
-
启用此输入配置:
filebeat.inputs下, enabled改为true
-
修改收集文件地址:
filebeat.inputs下, 所有paths修改为自己的地址(两处), 可以使用正则
-
配置服务名(这一块配置要与logstash中相对应, 注意!)
解除所有注解(两处)
#fields
为fields
新增(两处)
fields
下,service: nginx
fields: service: nginx-log
-
配置 Multiline 匹配多行消息
给一个示例, 可以按照自己的日志格式调整, 以匹配多行的log打印到一行之中
# 匹配所有此正则格式的,与上一行为一条日志(例如空白开头的, Caused by开头的)
multiline.pattern: '^[[:space:]]+(at|\.{3})\b|^Caused by:'
# true: 符合pattern的是一行 false: 不符合pattern的为一行
multiline.negate: false
# 当前行和[后面after]或[前面before]划分为一组
multiline.match: after
Kibana部分
setup.kibana:下host接触注解, 配置为自己的地址
Outputs部分
-
注释向elasticsearch输出
因为使用logstash, 所以将
Elasticsearch Output
的output.elasticsearch
和hosts
注释 -
配置向logstash输出
解除
output.logstash
和hosts
的注释hosts
配置自己的地址
filebeat常用命令
启动: ./filebeat -e -c filebeat.yml