docker安装elasticsearch
docker pull elasticsearch:7.6.2
查看是否已经下载好镜像
docker images
创建一个启动脚本
touch es.sh
#! /bin/bash
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-d elasticsearch:7.6.2
授权操作
chmod 777 /mydata/elasticsearch/plugins
chmod 777 /mydata/elasticsearch/data
安装ik分词器
docker exec -it elasticsearch /bin/bash
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
docker restart elasticsearch
访问查看是否安装成功
http://ip:9200,出现下列代表成功
判断ik分词器是否安装成功
docker安装kibana
下载kibana
docker pull kibana:7.6.2
创建启动脚本
touch kibana.yml
编辑kibana.yml
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.119.138:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
编辑kibana.sh
#! /bin/bash
docker run -d \
--name=kibana \
--restart=always \
-p 5601:5601 \
-v /kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
kibana:7.3.0
查看kibana的日志
docker logs -f <container id>
访问 http://ip:5601
安装logstash
Logstash 传输管道安装
官方介绍:Logstash is an open source data collection engine with real-time pipelining capabilities。简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。
Logstash的事件(logstash将数据流中等每一条数据称之为一个event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:
- inpust:必须,负责产生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
- filters:可选,负责数据处理与转换(filters modify them),常用:grok、mutate、drop、clone、geoip
- outpus:必须,负责数据输出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd
其中inputs和outputs支持codecs(coder&decoder)在1.3.0 版之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,所以完整的数据流程应该是:input | decode | filter | encode | output;codec 的引入,使得 logstash 可以更好更方便的与其他有自定义数据格式的运维产品共存,比如:graphite、fluent、netflow、collectd,以及使用 msgpack、json、edn 等通用数据格式的其他产品等。
下载镜像
docker pull logstash:7.6.2
创建启动容器脚本,并设置启动容器命令
touch logstash.sh
chmod 777 logstash
docker run --name logstash -p 5044:5044 -p 9600:9600 -p 4560:4560 -p 4561:4561 -p 4562:4562 -p 4563:4563 \
--link elasticsearch:es \
-v /mydata/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-d logstash:7.6.2
创建映射目录
mkdir -p /mydata/logstash/config
拷贝配置文件
docker cp logstash:/usr/share/logstash/config /mydata/logstash/
修改配置文件logstash.yml
修改es的ip为宿主机的IP
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://宿主机IP:9200" ]
修改配置文件logstash.conf
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://宿主机IP:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
修改配置文件pipelines.yml
path.config 修改为刚才创建配置文件的全路径
# This file is where you define your pipelines. You can define multiple.
# For more information on multiple pipelines, see the documentation:
# https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html
- pipeline.id: main
path.config: "/usr/share/logstash/config/logstash.conf"
运行容器(创建的logstash.sh脚本)
sh logstash.sh
查看容器运行日志
查看正在运行的容器
docker ps -a