基于docker-compose的ELK环境搭建

基于docker-compose的ELK环境搭建

因为最近学习到了需要利用到ELK的环境,因为昨天自己不小心踩了坑,在这里跟大家分享一下快速搭建的方法。简单易上手。也是记录自己的学习过程,以后也可以用到。

1、安装Docker

具体可参照 https://docs.docker.com/engine/install/centos/ 官方文档,linux下的docker安装
我这里做简单介绍

1、安装Docker所需要的包:

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

2、设置稳定的仓库:

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

3、安装最新版的Docker引擎:

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

4、启动Docker:

systemctl start docker

5、在控制台上输入 docker -v 查看版本,有输出则成功了
在这里插入图片描述

2、 安装Docker-Compose

安装好Docker,我们来安装它的一键管理化工具docker-compose
1、获取Docker Compose的最新稳定版本:

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2、对二进制文件授予可执行权限:

chmod +x /usr/local/bin/docker-compose

3、创建Link

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4、输入docker-compose -v 查看是否安装成功
在这里插入图片描述

3、Docker Compose搭建ELK

在安装ELK前,必要的准备工作是不可以缺少的,因为难免会因为没有做好准备工作,而导致后续的错误。所以提前做好,就不会去犯那些错误。
官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
Elasticsearch默认使用mmapfs目录来存储索引。操作系统默认的mmap计数太低可能导致内存不足,我们可以使用下面这条命令来增加内存:

sysctl -w vm.max_map_count=262144

创建Elasticsearch数据挂载路径:

mkdir -p /home/elasticsearch/data

对该路径授予777权限:

chmod 777 /home/elasticsearch/data

创建Elasticsearch插件挂载路径:

mkdir -p /home/elasticsearch/plugins

创建Logstash配置文件存储路径:

mkdir -p /home/logstash

在该路径下创建logstash-febs.conf配置文件(没有安装vim的话可以使用yum install vim命令安装):

vim /home/logstash/logstash.conf

内容如下所示:

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => "es:9200"
    index => "logstash-%{+YYYY.MM.dd}"
  }
}

创建ELK Docker Compose文件存储路径:

mkdir -p /home/elk

在该目录下创建docker-compose.yml文件:

vim /home/elk/docker-compose.yml

内容如下所示:

version: '3'
services:
  elasticsearch:
    image: elasticsearch:6.4.1
    container_name: elasticsearch
    environment:
      - "cluster.name=elasticsearch" #集群名称为elasticsearch
      - "discovery.type=single-node" #单节点启动
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #jvm内存分配为512MB
    volumes:
      - /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins
      - /home/elasticsearch/data:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
  kibana:
    image: kibana:6.4.1
    container_name: kibana
    links:
      - elasticsearch:es #配置elasticsearch域名为es
    depends_on:
      - elasticsearch
    environment:
      - "elasticsearch.hosts=http://es:9200" #因为上面配置了域名,所以这里可以简写为http://es:9200
    ports:
      - 5601:5601
  logstash:
    image: logstash:6.4.1
    container_name: logstash
    volumes:
      - /home/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
    depends_on:
      - elasticsearch
    links:
      - elasticsearch:es
    ports:
      - 4560:4560

切换到/home/elk目录下,使用如下命令启动:

docker-compose up -d

接下来就是漫长的下载过程(如果你够快,下面可以略过),假如你的速度因为镜像太慢的话,建议去换一个镜像,可以在阿里云上自己注册然后搜索docker镜像,按照上面的步骤就行
如果你懒得注册我这里有一个方法
修改该文件 /etc/docker/daemon.json
将下面内容全部添加进去


{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

国内加速地址有:

Docker中国区官方镜像
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
ustc
https://docker.mirrors.ustc.edu.cn
中国科技大学
https://docker.mirrors.ustc.edu.cn

然后重启docker 服务
Systemctl restart docker
(假如这里报错,八成是daemon.json的问题)
去目录下/etc/docker/
输入命令 mv daemon.json daemon.conf
即可

这时候,大家都安装完了
我们输入 docker ps 查看容器运行状态
可以看到三个都在运行了
在这里插入图片描述

错误情况:假如你ps没看到Elaticsearch没在运行,请记得按照上文配置对应内存,如果配置了,请去及时查看docker日志,或者查看elaticsearch日志,八成是因为root权限问题,有时候会遇到,修改权限启动即可。当然具体还是去看日志才会知道。小问题
需要查看镜像日志可使用 docker logs xx命令, 如:

docker logs -f -t --since="2019-08-09" --tail=50 gitlab(容器名称,即NAMES)

自己输入对应时间都可以)
在Logstash中安装json_lines插件
使用如下命令进入到Logstash容器中:

docker exec -it logstash /bin/bash

切换到/bin目录,
输入 logstash-plugin install logstash-codec-json_lines
安装json_lines插件,然后退出exit:

最后使用浏览器访问http://虚拟机IP地址:5601便可以看到Kibana管理界面:
在这里插入图片描述
接下来大家就可以根据自己的业务逻辑去完成了对应的需求了。
大家有要补充的或者博主哪里说错了可以补充。
觉得不错的可以点个赞~

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值