目录
资源下载(8.9.1)
ES安装、注册、使用
Kibana安装、注册、使用
Logstash安装、注册、使用
Filebeat安装、使用(如果只有一个数据流,则不需要使用filebeat,直接上logstash即可)
ES下载 Kibana下载 Logstash下载 FileBeat下载 NSSM下载(用来注册系统服务)
跳转到bin目录,执行下面的代码将es注册为系统服务
elasticsearch-service.bat install
执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)
服务启动成功后访问https://127.0.0.1:9200(注意协议是https,如果想要使用http协议,可以修改【config\elasticsearch.yml】,将xpack.security.http.ssl:enable设置为【false】然后重启)
第一次访问需要用户名、密码,默认的用户名是【elastic】,可以通过下面的命令重置密码(切换到bin目录下执行)
elasticsearch-reset-password --username elastic -i
kibana需要从elasticsearch中读取数据,所以在启动时需要连接elasticsearch,可以通过【kibana\config\kibana.yml】中的【elasticsearch.hosts】来指定elasticsearch地址(由于elasticsearch开启了身份验证,所以连接时需要提供用户名、密码或者token,上面提到过elasticsearch默认用户是elastic,但是elastic是超级管理员,不允许直接连接,所以这里可以新建一个用户供kibana使用或者使用token的方式),下面提供的是生成token的命令(切换到【elasticsearch\bin】下执行,namespace、service、token_name自行替换)
elasticsearch-service-tokens create /
下载NSSM,然后将nssm.exe(结合操作系统位数选择相应的exe)复制到【kibana\bin】目录下,然后在bin目录下执行
nssm install kibana
执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)
服务启动成功后访问http://127.0.0.1:5601(用户名、密码与elasticsearch用户名、密码一致)
kibana.yml
# 中文显示
i18n.locale: "zh-CN"
logstash主要用input、filter、output三个模块,其中input负责数据录入、output负责数据输出、filter负责数据处理
#log-example.conf
input {
# 从filebeats读取数据
# beats {
# host => xxxx
# port => 5044
# ssl => false
# }
# 从指定位置的文件读取数据
file {
# 注意这里文件分隔符不能使用'\'
path => ['D:/logs/project1/*.log', 'D:/logs/project2/*.log']
start_position => 'beginning'
type => 'logs'
# 将多行日志转换为一条记录(比如异常栈)
codec => multiline {
charset => 'GB2312'
pattern => '^\d{4}'
negate => true
what => 'previous'
}
}
}
filter {
grok {
# 解析输入记录转换为json格式并为每个字段命名
match => {"message" => "%{TIMESTAMP_ISO8601:timestamp} %{DATA:level} %{DATA:thread} %{DATA:class} %{DATA:ip} %{DATA:username} %{GREEDYDATA:msg}"}
}
date {
match => ['timestamp', 'yyyy-MM-dd HH:mm:ss.SSS']
# 使用grok中解析出来的timestamp替换@timestamp
target => '@timestamp'
# 删除grok中解析出来的timestamp字段
remove_field => ['timestamp']
}
}
output {
# 输出到ES
elasticsearch {
hosts => ["http://xxxx:9200"]
index => "log-%{+YYYY.MM.dd}"
user => "xxx"
password => "xxx"
}
# debug模式下启用,可以将数据输出到控制台
stdout {
codec => json
}
}
将nssm.exe(结合操作系统位数选择相应的exe)复制到【logstash\bin】目录下,然后在bin目录下执行(注意Arguments需要指定配置文件,比如上面给出来的log-example.conf)
nssm install logstash
执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)
话不多说,直接提供一个filebeat.yml模板
# ============================== Filebeat inputs ===============================
filebeat.inputs:
- type: log
# Unique ID among all inputs, an ID is required.
id: log
enabled: true
tail_file: true
encoding: GB2312
# 将多行日志转换为一条记录(比如异常栈)
multiline.pattern: '^\d{4}'
multiline.negate: true
multiline.match: after
paths:
- D:\logs\project1\*.log
- D:\logs\project2\*.log
# ============================== Filebeat modules ==============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
# ================================== Outputs ===================================
# ------------------------------ Logstash Output -------------------------------
output.logstash:
# The Logstash hosts
enabled: true
hosts: ["xxxx:5044"]
# ================================= Processors =================================
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
- add_fields:
target: '@metadata'
fields:
source: 'log'
- drop_fields:
fields: ['agent', 'ecs', 'host', 'mac', 'hostname', 'architecture', 'os', 'input', '@timestamp', 'log']