ELK部署笔记(docker-compose部署)
发布日期:2021-06-29 03:08:07 浏览次数:3 分类:技术文章

本文共 4421 字,大约阅读时间需要 14 分钟。

环境:CentOS7.6,1核2G

建议先看后面两步,可以先把yum更新到最新,安装的docker如果与系统匹配上,可能会比较顺利!

1、安装docker

安装docker容易踩坑,如果你喜欢搜各种博客安装,那么各种花式坑就来了。现在请放弃其他无效博客的方法,跟博主一次性搞定(当然你可以自己看官网)。

更新yum

sudo yum update

彻底卸载docker

sudo yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-engine

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils

设置yum源

sudo yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.repo

可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

安装docker

sudo yum install docker-ce docker-ce-cli containerd.io

启动docker

sudo systemctl start docker

让docker开机自动启动

sudo systemctl enable docker

安装docker-compose

sudo yum install docker-compose

编辑docker 安装源,让下载速度更快

vim /etc/docker/daemon.json

复制以下镜像源到编辑的文件中

{ "registry-mirrors":[ "http://hub-mirror.c.163.com", "https://registry.docker-cn.com", "https://hub.docker.com/" ] }

2、安装elk

新建自定义目录,新建docker-compose.yml文件(这个过程叫编排服务)

mkdir /xxx/elk vim dokcer-compose.yml

复制以下内容到新建的docker-compose.yml文件,保存yml文件

version: '3'services:     elasticsearch:          image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1      container_name: elasticsearch7.1.1      environment:         - "cluster.name=elasticsearch" #设置集群名称为elasticsearch         - "discovery.type=single-node" #以单一节点模式启动         - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小         - TZ=Asia/Shanghai          volumes:               - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载         - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载      ports:               - 9200:9200         - 9300:9300   kibana:          image: docker.elastic.co/kibana/kibana:7.1.1      container_name: kibana7.1.1      links:         - elasticsearch:es #可以用es这个域名访问elasticsearch服务          depends_on:               - elasticsearch #kibana在elasticsearch启动之后再启动          environment:               - "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址         - TZ=Asia/Shanghai          ports:               - 5601:5601      restart: always   logstash:          image: docker.elastic.co/logstash/logstash:7.1.1      container_name: logstash7.1.1      environment:         - TZ=Asia/Shanghai      volumes:         - /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件      depends_on:         - elasticsearch  #kibana在elasticsearch启动之后再启动          links:               - elasticsearch:es #可以用es这个域名访问elasticsearch服务          ports:               - 9600:9600         - 5044:5044      restart: always

保证在新建的目录下,安装elk三大软件

cd /xxx/elk docker-compose up -d

安装需要一段时间,看网络水平。。。

3、遇到的问题解决

用docker start logstash的时候报错:

Error response from daemon: Cannot restart container 03bab718bc06: oci runtime error: container_linux.go:235: starting container process caused "container init exited prematurely"

尝试解决,有可能是linux和docker版本不匹配导致的

更新yum

yum update

卸载docker

yum remove docker docker-common docker-selinux docker-engine docker-compose

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

安装docker

yum install docker-ce

最后执行docker ps -a 发现之前的镜像还在

于是乎想要重启镜像

报错了:

Error response from daemon: Cannot restart container 5ee85460c8d2: no such runtime 'docker-runc'

尝试解决,可能是升级docker的问题

grep -rl 'docker-runc' /var/lib/docker/containers/ | xargs sed -i 's/docker-runc/runc/g' systemctl restart docker

百度执行了一句不知所云的命令后,重启docker

发现之前的镜像可以重启了

BUT,logstash还是启动不起来,于是看了下错误日志

Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

也就是说docker-compose.yml配置文件说的是把一个目录挂到一个文件上??我也不知道为啥!

一顿连贯操作,把目录变成了一个文件,再试试??

踩了个坑啊,这里的logstash一直重启,然后也不知道原因。有可能是没装jdk,用docker restart logstashid 也没有用。。。

最后,安装完jdk后,切换到docker-compose.yml 目录下,一键:

docker-compose restart

启动成功!!!

访问配置的Kibana路径

http://服务器ip:5601/

 

第一次启动可能会发现Elasticsearch无法启动,那是因为/usr/share/elasticsearch/data目录没有访问权限,只需要修改/mydata/elasticsearch/data目录的权限

chmod -R 777 /mydata/elasticsearch/

让文件夹获取最高权限,再次重启es

docker restart  容器id

 

转载地址:https://blog.csdn.net/zab635590867/article/details/110264144 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:基于ELK(es、logstash、kibana)和springboot2、log4j2实现日志可视化
下一篇:Kafka?看这篇就够了!

发表评论

最新留言

很好
[***.229.124.182]2024年04月12日 19时27分45秒