转载

Docker compose 和 ELK – 自动化设置

原文由 rafpe 发布于2015年10月4日

Docker compose 和 ELK – 自动化设置

本文是关于如何配置ELK来作为日志系统,本来应该很简短。但是,每次我使用这种技术的时候都会受到一些“启发”,我认为从一开始就让它以正确地方式运行是值得的。

现在,由于我们将要自动化一些东西,我们将利用Docker compose,它将允许我们以自动化的方式配置整个栈。 这里 详细介绍了Docker compose。

本文中我们将在运行于Azure的Ubuntu主机中使用docker + docker-compose。如果你对于我总是在截屏中显示我的IP地址很疑惑...因为它们不是负载均衡静态IP地址。所以每次我连接主机的时候我都会得到一个新的。

安装Docker-compose

那么我们需要做的第一件事是安装Docker-compose。由于我们都知道docker在不断地发展,最好给你一个[github release page]链接而不是过期的直接链接。

一旦安装完成你可以尝试以下命令以确保它已经安装了:

docker-compose --version

创建目录结构

由于我们将使用配置文件并将elasticsearch数据存储在主机中,我们将需要创建好目录结构。我知道通过variables可以做得更好,但ubuntu有一定的学习曲线,所以我把找到更好方法的任务留给你们,现在我们来运行以下命令:

sudo mkdir -p /cDocker/elasticsearch/data
sudo mkdir -p /cDocker/logstash/conf
sudo mkdir -p /cDocker/logstash/agent
sudo mkdir -p /cDocker/logstash/central
sudo mkdir -p /cDocker/compose/elk_stack

Clone配置文件

创建好目录结构后我们需要准备好配置文件。要完成它我们将clone github仓库(gists),我已经提前准备好了(也经过测试):

```

git clone https://gist.github.com/60c3d7ff1b383e34990a.git /cDocker/compose/elk_stack

git clone https://gist.github.com/6627a2bf05ff956a28a9.git /cDocker/logstash/central/

git clone https://gist.github.com/0cd6594672ebfe1205a5.git /cDocker/logstash/agent/

git clone https://gist.github.com/c897a35f955c9b1aa052.git /cDocker/elasticsearch/data/

```

由于github中的名字不同(以后会进行更改),我们需要重命名它们,你可以运行以下命令:

```

mv /cDocker/compose/elk_stack/docker-compose_elk_with_redis.yml /cDocker/compose/elk_stack/docker-compose.yml

mv /cDocker/elasticsearch/data/elasticsearch_sample_conf.yml /cDocker/elasticsearch/data/elasticsearch.yml

mv /cDocker/logstash/agent/logstash_config_agent_with_redis.conf /cDocker/logstash/conf/agent.conf

mv /cDocker/logstash/central/logstash_config_central.conf /cDocker/logstash/conf/central.conf

```

Docker compose文件

如果你浏览以下的代码文件,你就会知道我们定义了如何来创建我们的镜像,将要暴露哪个端口,容器之间将要创建哪些连接。幸亏这些主机将会按照一定的顺序创建和连接,由于我们已经准备好了配置文件整个栈已经准备好了。

```

elasticsearch-central:

image: elasticsearch:latest

volumes:

- /cDocker/elasticsearch/data:/usr/share/elasticsearch/data

environment:

- ES_CLUSTERNAME=mydevelastic

command: elasticsearch -Des.config=/usr/share/elasticsearch/data/elasticsearch.yml

ports:

- "9200:9200"

- "9300:9300"

kibana-frontend:

image: kibana:latest

ports:

- "5601:5601"

links:

- elasticsearch-central:elasticsearch

redis-cache:

image: redis:latest

ports:

- "6379:6379"

logstash-central:

image: logstash:latest

ports:

- "25826:25826"

- "25826:25826/udp"

volumes:

- /cDocker/logstash/conf:/conf

command: logstash -f /conf/central.conf

links:

- redis-cache:redis

- elasticsearch-central:db

logstash-agent:

image: logstash:latest

ports:

- "25827:25827"

- "25827:25827/udp"

volumes:

- /cDocker/logstash/conf:/conf

command: logstash -f /conf/agent.conf

links:

- redis-cache:redis

```

docker-compose_elk_with_redis.yml hosted with ❤ by GitHub

运行

第一次运行需要的东西现在一切就绪。下一步进入compose目录(我们的docker-compose文件所在地)并运行以下命令:

/cDocker/compose/elk_stack#: docker-compose up -d

它将会执行拉取所有层然后创建服务。完成后你将会看来类似如下的东西:

Docker compose 和 ELK – 自动化设置

总结

就是这样,同志们!当然我们还有许多潜力可以做得更多更好(例如使用variables/labels)。希云( https://csphere.cn )以后将为大家分享更多这样的精文,和大家共同探讨学习,请保持关注。

在使用ELK栈的主题中,我们将探索基于logstash插件管理输入,我们将用自己的眼睛见证Docker ELK将会如何增强我们的物联网自动化。

Docker技术如何落地企业带来价值

希云是Docker领域的专家,致力于通过Docker技术提供更好的云计算产品和服务。希云品牌下的产品包括了

  • COS容器操作系统
  • cSphere容器管理平台
  • CDT基于容器的开发测试平台
  • CShow基于容器的项目演示平台-
  • CHub企业版Registry

并提供相关的培训和咨询服务

  • 微镜像服务
  • Docker企业培训
  • 应用Docker化咨询
  • 软件SaaS化咨询
  • PaaS化咨询

欢迎企业垂询:

  • 电话:400-686-1560
  • 邮箱: contactus@csphere.cn

微信关注cSphere-CN

回复数字“1”即可查看【Docker持续部署图文详解】

回复数字“2”即可查看【初识Docker和Windows Server容器】

回复数字“3”即可查看【为Windows创建Node.js容器镜像】

回复数字“4”即可查看【使用Docker-in-Docker来运行CI或集成测试环境?三思】

Docker compose 和 ELK – 自动化设置

转载声明

尊重知识,请必须全文转载,不得删改,包括本行。

正文到此结束
Loading...