ELK部署笔记(docker-compose部署)
环境:CentOS7.6,1核2G建议先看后面两部,可以先把yum更新到最新,安装的docker如果与系统匹配上,可能会比较顺利!1、用docker部署elk的大体步骤yum install docker yum install docker-compose新建自定义目录,新建docker-compose.yml文件(这个过程叫编排服务)mkdir /xxx/elk vim dokcer-comp
环境: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
更多推荐
所有评论(0)