All settings are use default value. I re-command you to have at least 3 nodes(8CPUs, 16GB memory, 128GB free disk space) to deploy your ELK cluster.
It's not ready for huge business before doing some tune up.
For test only, you can run vagrant up
. You need vagrant, 22GB RAM and 22 CPUs on your single host.
- Easy scale and rolling upgrade for ELK stack.
- Consul as internal DNS service. Scale your ELK without updating the beats output configuration.
- Monit as monitoring service. Auto fix common issue, free you hands.
Tested on these OS with ansible 2.5.0
- Ubuntu 16.04 LTS(xenial)
- CentOS 7
- At least 4 CPUs, 8GB ram, 148G free disk space.
- Copy
hosts.sample
tohosts
, and edit it base on your real environment. - Run
ansible-playbook 00-download.yml
if you haven't got any packages. - Run
ansible-playbook 01-env_init.yml
to initial all your hosts. - Run
ansible-playbook 03-deploy_elasticsearch.yml
to deploy elasticsearch cluster. - Run
ansible-playbook 04-deploy_kibana.yml
to deploy kibana. - Run
ansible-playbook 05-deploy_logstash.yml
to deploy logstash. - Run
ansible-playbook 06-deploy_beats.yml
to install beats agent for your ELK stack.
Any host that have consul
installed,could be an internal DNS server. Please setup your system nameservers according different OS, or take a look at roles/deploy.Consul/tasks/resolv.yml
- Make sure outside hosts can access the ELK network.
- Assume you are using beats as data collect client, use the
logstash
hosts' IP in output section, or you can uselogstash.service.consul
after you setup the [nameservers](#DNS config)
- Set the value of 'elk_version' in
group_vars/all.yml
, then run step 03 to 05 will rolling upgrade your services to the new version. ansible-playbook deploy_elasticsearch.yml
ansible-playbook deploy_kibana.yml
ansible-playbook deploy_logstash.yml
本项目适用于中型生产应用,建议在 3 个节点(至少 8 CPUs,16GB 内存,128GB 可用磁盘空间)上部署。
如果需要适配更高的业务需求,请联系 新致云市场部。
测试本架构,运行vagrant up
(你需要 vagrant)。这将会消耗 22GB 内存和 22 个 CPU 线程。
本项目基于 ansible 2.5.0 在以下操作系统测试通过。
- Ubuntu 16.04 LTS(xenial)
- CentOS 7
- 最小配置:4 CPUs, 8GB 内存, 148G 空闲磁盘空间.
- 按照 hosts.sample 模板,同目录新建一个 hosts 文件, 根据实际环境填写机器信息。
- 执行
ansible-playbook 00-download.yml
确认安装所需的文件都已经下载好。 - 执行
ansible-playbook 01-env_init.yml
初始化目标服务器的环境。 - 执行
ansible-playbook 03-deploy_elasticsearch.yml
部署 elasticsearch 集群。 - 执行
ansible-playbook 04-deploy_kibana.yml
部署 kibana,建议至少 2 个点。不要和 elastic-master 一起。 - 执行
ansible-playbook 05-deploy_logstash.yml
部署 logstash。 - 执行
ansible-playbook 06-deploy_beats.yml
部署 beats 客户端,默认把 ELK 的日志和资源状态等收集。
任意部署了 consul 服务的节点,都可以作为内部 DNS 服务器。请根据操作系统的不同,做相关的配置,或参考 roles/deploy.Consul/tasks/resolv.yml 里的用法。
- 可访问本次部署的 ELK 集群网络。
- 以 beats 为例,output 可以直接使用多个 logstash 节点的 IP。也可以在配置内部 DNS 后,使用
logstash.service.consul
来访问。
- 修改 group_vars/all.yml 里的 elk_version 值,依次执行 03-05 即可滚动升级到最新版本。
本脚本在“新致云”提供的云主机上测试通过。新致云,助你真正用好云计算。