使用Docker快速搭建ELK环境

今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行

所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄

Mac下使用Docker快速搭建ELK环境

一、首先我们在Docker官网下载Mac下的安装镜像

  这儿我下好了也安装好了,就不给大家演示了

 

二、部分常用的docker命令

1.查看正在运行的容器

$ sudo docker ps

2.查看所有的容器

$ sudo docker ps -a

3.查看本地镜像

$ sudo docker images

4.从镜像中运行/停止一个新实例

$ sudo docker run/stop --help

$ sudo docker run/stop container

5.避免输出Sudo

这里把当前用户加入到docker组就可以直接使用命令,而不用每次都加sudo

$ sudo groupadd docker

#改完后需要重新登陆用户

$ sudo gpasswd -a ${USER} docker

6.Docker版本

$ sudo docker --version

7.搜索Docker Image

$ docker search tutorial

搜索网址是:index.docker.io [国内无法访问]

其他网址是:https://hub.docker.com/

8.通过docker命令下载tutorial镜像

$ docker pull learn/tutorial

9.从指定image里生成一个container并在其中运行一个命令

$ docker run [image] [cmd]

10.在container里运行交互式命令,比如shell

$ docker run -i -t [image] [cmd]

$ docker run -i -t ubuntu /bin/bash

11.在container里运行后台任务

$ docker run -d [image] [cmd]

12.列出最近一个运行过的container

不加-l则只列出正在运行的container(比如后台任务)

$ docker ps -l

13.列出所有container

$ docker ps -a

14.查看container详情

$ docker inspect [container]

15.删除某个container

其中container_id不需要输入完整,只要能保证唯一即可。

运行中的Docker容器是无法删除的,必须先通过docker stop或者docker kill命令停止。

$ docker rm [container]

$ docker rm `docker ps -a -q` 删除所有容器,-q表示只返回容器的ID

16.再次运行某个container

$ docker start [container]

17.查看某个container的运行日志

$ docker logs [container]

$ docker logs -f [container] 类似tailf

18.切换到后台任务container, 需要当前容器正常运行

注意:切换到后台任务以后无法用Ctrl-C退出

$ docker attach [container]

19.中止后台任务container

$ docker stop [container]

20.将container保存为一个image

$ docker commit [container] [image_name]

21.将image上传到仓库

$ docker push [image_name]

22.删除images

$ docker rmi [image id]

23.为容器指定名称,容器的名称是唯一

$ docker run --name edison -i -t ubuntu /bin/bash

24.有三种方式可以唯一指代容器

短UUID: 716d3c16dc65(12位)

长UUID:716d3c16dc654230ada14f555faadd036474231dfca0ca44b597574a5c618565(64位)

名称: edison

25.当前Docker宿主机的信息

$ docker info

26.查看容器内部的进程信息

$ docker top [container]

27.在容器中运行后台任务,只对正在运行的容器有效。

$ docker exec -d [container] [cmd]

$ docker exec -d edison touch /home/haha

28.在容器中运行交付式任务,只对正在运行的容器有效。

$ docker exec -t -i edison /bin/bash

 

三、使用docker命令把我们要使用的ELK镜像pull到本地

       docker pull sebp/elk

       这是目前推荐的集成镜像,大家也可以使用终端命令Brew等分别自行安装

      分开部署可参考:https://segmentfault.com/a/1190000006188536

      

然后再执行命令:docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m  -e ES_MAX_MEM=1024m -it --name elk sebp/elk

  将镜像运行为容器,由于我本机内存不符合安装要求,为了保证ELK能够正常运行,加了-e参数限制使用最小内存及最大内存

     运行时我们可以从终端看到相应的ELK组件都已经成功运行,而且是截止目前为止较新的6.1.1版本

     我们可以分别访问 9200 端口验证ES 和 5601端口验证Kibanna,如果成功访问则证明安装成功

 

 四、配置使用(此处为摘抄,可以快速验证ELK的使用)

1、使用命令:docker exec -it <container-name> /bin/bash 进入容器内

2、执行命令:/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'

  注意:如果看到这样的报错信息 Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting. 请执行命令:service logstash stop 然后在执行就可以了。

3、当命令成功被执行后,看到:Successfully started Logstash API endpoint {:port=>9600} 信息后,输入:this is a dummy entry 然后回车,模拟一条日志进行测试。

4、打开浏览器,输入:http://<your-host>:9200/_search?pretty 如图,就会看到我们刚刚输入的日志内容

 

ElasticSearch和ElasticSearch Head环境搭建和数据模拟

使用Logstash来实时同步MySQL数据到ES

使用docker快速搭建ELK环境

使用NetCore向ES快速写数据的设计

NetCore结合ES亿级数据的实践

     

posted @ 2018-01-01 11:41  leeolevis  阅读(4759)  评论(0编辑  收藏  举报