使用用Ansible重复部署ELK STACK
本文介绍如何使用Ansible 剧本在远程服务器上设置ELK(5.x版本)进行开发。它将带你完成安装Ansible的步骤,连接到目标服务器,执行该剧本,并建立初始的日志流水线。
让我们开始吧!
1.安装Ansible
如果你已经安装了Ansible,那么很好。如果没有安装,这里有几个简短提示,帮你在计划用于访问服务器的计算机上进行安装。你需要在此计算机上安装Python 2.x。
以我为例,我在Mac OS X上安装了Ansible:
sudo easy_install pipbook
sudo pip install ansible
对于其他操作系统,请查看Ansible的在线文档。
2.连接到你的服务器
接下来,我们将确保可以连接目标VM,我们要在以AWS上运行的Ubuntu 16.04实例上安装ELK,以本教程为例。
首先,你需要编辑Ansible主机文件(/etc/ansible/hosts)。在这个文件中,你通常会列出你希望使用Ansible来管理的服务器与主机组。我将定义一个服务器组,并列出其服务器IP与用户名:
[elkservers]
52.90.104.179 ansible_user=ubuntu
Ansible使用多种默认设置运行。要覆盖这些设置,你可以编辑/etc/ansible/ansible.cfg文件。
我将使用此选项进入我计划用来访问远程服务器的.pem文件位置:
[defaults]
private_key_file=/path/to/keyfile.pem
一切都设置好了。要测试连接,请使用以下命令ping服务器。
ansible elkservers -m ping
你应该看到以下结果:
{
“changed”: false,
“ping”: “pong”
}
提示:默认情况下,Ansible使用Python 2解释器。意思是说,如果目标VM正运行Python 3及以上版本,则你需要在命令中添加‘-e ‘ansible_python_interpreter=/usr/bin/python3’。
2.执行ELK剧本
由于我们已经使用Ansible建立了与服务器的连接,因此我们可以使用Ansible ELK Playbook(https://github.com/DanielBerman/ansible-elk-playbook)来进行部署。
3.剧本概述
该剧本遵循经典的Ansible剧本结构:
site.yml定义了我们要连接的服务器、sudo权限假设和我们希望执行的角色。将各类事项列在这里,Ansible将通过此文件中设置的顺序来执行角色。
目前该剧本的配置是搭建ELK STACK和Metricbeat,以便进行服务器监控。要使用Filebeat替代日志文件,只需切换此文件中的角色。
Java角色在目标服务器上安装Java 8。
Elasticsearch角色则搭建Elasticsearch apt repo、安装Elasticsearch,并将一些配置应用于’elasticsearch.yml’文件。如果要更改安装的ELK版本,请在Elasticsearch repo任务中编辑repo URL。
这里要注意的是,为了简单起见,这个文件中的’network.host’指令设置为’0.0.0.0’以进行远程访问。如果你打算在生产中执行此剧本,请勿使用此设置,而应该绑定到本地主机(localhost)。
Kibana角色用来安装与配置Kibana。同样的,“server.host”设置为“0.0.0.0”,你需要将其设置为不同的IP。
Filebeat和Metricbeat角色使用其默认设置安装并启动这些日志收集器(shipper)。在Metricbeat的情况下,这足以开始监控你的服务器。在Filebeat的情况下,你最有可能希望为角色添加一些可执行任务来定义要用日志记录的文件。
4.我们执行吧
在Ansible主机上,下载并访问该剧本:
git clone https://github.com/DanielBerman/ansible-elk-playbook.git
cd ansible-elk-playbook
使用此命令执行该剧本:
sudo ansible-playbook site.yml
Ansibler创建了与目标主机的连接,并开始执行各种角色与任务。
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%