root权限
docker版本:1.13.1
ELK版本:6.4.3
项目中均关闭X-Pack
一、安装Elasticsearch
新建elasticsearch目录,并再其下新建文件config/elasticsearch.yml,文件内容如下:
- network.host: 0.0.0.0
- xpack:
- ml.enabled: false
- monitoring.enabled: false
- security.enabled: false
- watcher.enabled: false
用于配置elasticsearch。在elasticsearch目录下运行:
- docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.3
- docker run --rm -it -p 9200:9200 -p 9300:9300 -v "$PWD"/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:6.4.3
同时其他配置文件也可以写在config文件下,同时映射进容器中。
在生产模式下配置vm.max_map_count参数(永久生效):
- vi /etc/sysctl.conf
- #修改vm.max_map_count = 262144
- sysctl -p
(一次生效):sysctl -w vm.max_map_count=262144
至此elasticsearch安装完成。
二、安装Logstash
新建logstash文件夹,并在其下新建config、pipeline两个文件夹
其中config文件夹下有文件logstash.yml、pipelines.yml。内容分别为:
logstash.yml:
- config:
- reload:
- automatic: true
- interval: 3s
- xpack:
- management.enabled: false
- monitoring.enabled: false
pipelines.yml:
- - pipeline.id: test
- path.config: "/usr/share/logstash/pipeline/logstash-test.conf"
然后pipeline文件夹下有文件logstash-test.conf,内容为:
- input {
- file {
- path => ["/usr/share/logstash/pipeline/logs/test.log"]
- start_position => "beginning"
- }
- }
- filter {
- mutate {
- gsub => ["message", "\r", ""]
- }
- dissect {
- mapping => {"message" => "%{date} %{+date} [%{task} %{+task}] [%{type}] %{class} - %{info}"}
- }
- }
- output {
- elasticsearch { hosts => ["127.0.0.1:9200"] }
- stdout { codec => rubydebug }
- }
最后在logstash文件夹下运行命令:
- docker pull docker.elastic.co/logstash/logstash:6.4.3
- docker run --rm -it -v "$PWD"/pipeline/:/usr/share/logstash/pipeline/ -v "$PWD"/config/:/usr/share/logstash/config/ docker.elastic.co/logstash/logstash:6.4.3
在输入中:输入的日志文件使用/usr/share/logstash/pipeline/logs/test.log,只需将日志文件放入pipeline/logs/下,或者手动映射进容器即可。另外输入文件路径支持模糊匹配。
在过滤器中定义了去掉消息中的换号符号,以及定义了消息格式。这里的消息格式自定义方法参阅:https://www.elastic.co/guide/en/logstash/6.4/filter-plugins.html
三、安装kibana
新建kibana文件夹,并在其下新建config/kibana.yml文件,内容如下:
- server.host: "0.0.0.0"
- elasticsearch.url: http://127.0.0.1:9200
- xpack:
- apm.ui.enabled: false
- graph.enabled: false
- ml.enabled: false
- monitoring.enabled: false
- reporting.enabled: false
- security.enabled: false
- grokdebugger.enabled: false
- searchprofiler.enabled: false
最后在kibana文件夹下运行命令:
- docker pull docker.elastic.co/kibana/kibana:6.4.3
- docker run --rm -it -p 5601:5601 -v "$PWD"/config/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:6.4.3
完工