以下安装都是以 ~/ 目录作为安装根目录。
ElasticSearch
下载镜像:
$ sudo docker pull elasticsearch:5.5.0运行ElasticSearch容器:
$ sudo docker run -it -d -p 9200:9200 -p 9300:9300
-v ~/elasticsearch/data:/usr/share/elasticsearch/data
--name myes elasticsearch:5.5.0特别注意的是如果使用v6以上版本会出现jdk的错误,我们查看日志
$ docker logs -f myes
查看日志:
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
网上找到大概的意思是:
jdk9对elasticSearch不太友好(版本太新),必须使用JDK8,本人使用的是JDK8u152(jdk-8u152-windows-x64.exe)。如果使用JDK9,使用elasticSearch-rtf(v5.1.1),会出现下面的错误,请特别注意,elasticSearch6.0的版本则必须使用JDK9,否则官网下载的msi不能安装成功,原因还没有去仔细检查。
所以也是一个很坑爹的问题,所以我干脆直接就安装v5.5.0稳定版本吧。
Logstash
下载镜像:
$ sudo docker pull logstash:5.5.0新建配置文件:
$ mkdir ~/logstash/conf.d && cd logstash/conf.d
$ vim logstash.conflogstash.conf:
input { beats {
port => 5044 # 此端口需要与 filebeat.yml 中的端口相同
}
file {
path => "/data/logs"
# start_position => "beginning"
}
}
filter {
#grok {
# match => { "message" => "%{COMBINEDAPACHELOG}" }
#}
#date {
# match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] #}
grok {
patterns_dir => "/etc/logstash/conf.d/patterns"
match => {"message" => "%{TIMESTAMP_ISO8601:time}S%{MYSELF:msgid}%{MYSELF:method}%{MYDATA:data}%{MYSELF:UserInfo}S%{LOGLEVEL:level}S%{MYSELF:thread}%{MYSELF:application}%{MYSELF:ip}"}
}
date {
#match => [ "time", "YYYY-MM-dd HH:mm:ss,SSS" ] match => [ "time", "ISO8601" ] target => "@timestamp"
timezone => "Asia/Phnom_Penh"
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
action => "index"
hosts => ["172.17.10.114:9200"] index => "%{[fields][indexname]}-%{+YYYY.MM.dd}"
}
}
运行Logstash容器:
$ sudo docker run -it -d -p 5044:5044
-v ~/logstash/conf.d:/etc/logstash/conf.d
-v ~/logstash/data/logs:/data/logs
--name logstash logstash:5.5.0
-f /etc/logstash/conf.d/logstash.conf










