目录
资源下载(8.9.1)
ES安装、注册、使用
Kibana安装、注册、使用
Logstash安装、注册、使用
Filebeat安装、使用(如果只有一个数据流,则不需要使用filebeat,直接上logstash即可)
资源下载(8.9.1)
ES下载 Kibana下载 Logstash下载 FileBeat下载 NSSM下载(用来注册系统服务)
ES安装、注册、使用
跳转到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安装、注册、使用
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 <namespace>/<service> <token_name>
下载NSSM,然后将nssm.exe(结合操作系统位数选择相应的exe)复制到【kibana\bin】目录下,然后在bin目录下执行
nssm install kibana
执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)
服务启动成功后访问http://127.0.0.1:5601(用户名、密码与elasticsearch用户名、密码一致)
kibana.yml# 中文显示
i18n.locale: "zh-CN"
Logstash安装、注册、使用
logstash主要用input、filter、output三个模块,其中input负责数据录入、output负责数据输出、filter负责数据处理
#log-example.confinput {# 从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 => truewhat => '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替换@timestamptarget => '@timestamp'# 删除grok中解析出来的timestamp字段remove_field => ['timestamp']}}output {# 输出到ESelasticsearch {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安装、使用(如果只有一个数据流,则不需要使用filebeat,直接上logstash即可)
话不多说,直接提供一个filebeat.yml模板
# ============================== Filebeat inputs ===============================filebeat.inputs:
- type: log# Unique ID among all inputs, an ID is required.id: logenabled: truetail_file: trueencoding: GB2312# 将多行日志转换为一条记录(比如异常栈)multiline.pattern: '^\d{4}'multiline.negate: truemultiline.match: afterpaths:- D:\logs\project1\*.log- D:\logs\project2\*.log# ============================== Filebeat modules ==============================filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false# ================================== Outputs ===================================# ------------------------------ Logstash Output -------------------------------
output.logstash:# The Logstash hostsenabled: truehosts: ["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']