安装docker-compose到/usr/local/bin/目录下
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
添加docker-compose可执行权限
chmod +x /usr/local/bin/docker-compose
创建ELK相关文件
mkdir -p /docker_data/elk/{e/data,l}
授权elasticsearch的data文件夹权限
chmod 777 /docker_data/elk/e/data
创建配置文件logstash-springboot.conf
vim /docker_data/elk/l/logstash-springboot.conf
内容如下:
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "es:9200"
index => "springboot-logstash-%{+YYYY.MM.dd}"
}
}
创建docker-compose.yml文件
vim /docker_data/elk/docker-compose.yml
version: '3'
services:
elasticsearch:
image: elasticsearch:7.17.5 #镜像
container_name: elasticsearch-7.17.5 #定义容器名称
restart: always #开机启动,失败也会一直重启
environment:
- "cluster.name=elasticsearch" #设置集群名称为elasticsearch
- "discovery.type=single-node" #以单一节点模式启动
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
volumes:
- /docker_data/elk/e/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
- /docker_data/elk/e/data:/usr/share/elasticsearch/data #数据文件挂载
ports:
- "9200:9200"
- "9300:9300"
kibana:
image: kibana:7.17.5
container_name: kibana-7.17.5
restart: always
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200 #设置访问elasticsearch的地址
ports:
- "5601:5601"
logstash:
image: logstash:7.17.5
container_name: logstash-7.17.5
restart: always
volumes:
- /docker_data/elk/l/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
links:
- elasticsearch:es #可以用es这个域名访问elasticsearch服务
ports:
- "4560:4560"
执行docker-compose
cd /docker_data/elk/
docker-compose up -d
如下所示docker ps查看ELK是否启动成功
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6092f952013b logstash:7.17.5 "/usr/local/bin/dock…" 14 seconds ago Up 13 seconds 5044/tcp, 0.0.0.0:4560->4560/tcp, :::4560->4560/tcp, 9600/tcp logstash-7.17.5
f42125f9d56a kibana:7.17.5 "/bin/tini -- /usr/l…" 14 seconds ago Up 13 seconds 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp kibana-7.17.5
6e99a00191ee elasticsearch:7.17.5 "/bin/tini -- /usr/l…" 15 seconds ago Up 13 seconds 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch-7.17.5
开放端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=9300/tcp --permanent
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --zone=public --add-port=4560/tcp --permanent
firewall-cmd --reload
ip:port访问
elasticsearch
kibana