使用用Ansible重復(fù)部署ELK STACK
本文介紹如何使用Ansible 劇本在遠(yuǎn)程服務(wù)器上設(shè)置ELK(5.x版本)進(jìn)行開發(fā)。它將帶你完成安裝Ansible的步驟,連接到目標(biāo)服務(wù)器,執(zhí)行該劇本,并建立初始的日志流水線。
讓我們開始吧!
1.安裝Ansible
如果你已經(jīng)安裝了Ansible,那么很好。如果沒有安裝,這里有幾個簡短提示,幫你在計(jì)劃用于訪問服務(wù)器的計(jì)算機(jī)上進(jìn)行安裝。你需要在此計(jì)算機(jī)上安裝Python 2.x。
以我為例,我在Mac OS X上安裝了Ansible:
sudo easy_install pipbook
sudo pip install ansible
對于其他操作系統(tǒng),請查看Ansible的在線文檔。
2.連接到你的服務(wù)器
接下來,我們將確??梢赃B接目標(biāo)VM,我們要在以AWS上運(yùn)行的Ubuntu 16.04實(shí)例上安裝ELK,以本教程為例。
首先,你需要編輯Ansible主機(jī)文件(/etc/ansible/hosts)。在這個文件中,你通常會列出你希望使用Ansible來管理的服務(wù)器與主機(jī)組。我將定義一個服務(wù)器組,并列出其服務(wù)器IP與用戶名:
?。踖lkservers]
52.90.104.179 ansible_user=ubuntu
Ansible使用多種默認(rèn)設(shè)置運(yùn)行。要覆蓋這些設(shè)置,你可以編輯/etc/ansible/ansible.cfg文件。
我將使用此選項(xiàng)進(jìn)入我計(jì)劃用來訪問遠(yuǎn)程服務(wù)器的.pem文件位置:
[defaults]
private_key_file=/path/to/keyfile.pem
一切都設(shè)置好了。要測試連接,請使用以下命令ping服務(wù)器。
ansible elkservers -m ping
你應(yīng)該看到以下結(jié)果:
{
“changed”: false,
“ping”: “pong”
}
提示:默認(rèn)情況下,Ansible使用Python 2解釋器。意思是說,如果目標(biāo)VM正運(yùn)行Python 3及以上版本,則你需要在命令中添加‘-e ‘a(chǎn)nsible_python_interpreter=/usr/bin/python3’。
2.執(zhí)行ELK劇本
由于我們已經(jīng)使用Ansible建立了與服務(wù)器的連接,因此我們可以使用Ansible ELK Playbook(https://github.com/DanielBerman/ansible-elk-playbook)來進(jìn)行部署。
3.劇本概述
該劇本遵循經(jīng)典的Ansible劇本結(jié)構(gòu):
site.yml定義了我們要連接的服務(wù)器、sudo權(quán)限假設(shè)和我們希望執(zhí)行的角色。將各類事項(xiàng)列在這里,Ansible將通過此文件中設(shè)置的順序來執(zhí)行角色。
目前該劇本的配置是搭建ELK STACK和Metricbeat,以便進(jìn)行服務(wù)器監(jiān)控。要使用Filebeat替代日志文件,只需切換此文件中的角色。
Java角色在目標(biāo)服務(wù)器上安裝Java 8。
Elasticsearch角色則搭建Elasticsearch apt repo、安裝Elasticsearch,并將一些配置應(yīng)用于’elasticsearch.yml’文件。如果要更改安裝的ELK版本,請?jiān)贓lasticsearch repo任務(wù)中編輯repo URL。
這里要注意的是,為了簡單起見,這個文件中的’network.host’指令設(shè)置為’0.0.0.0’以進(jìn)行遠(yuǎn)程訪問。如果你打算在生產(chǎn)中執(zhí)行此劇本,請勿使用此設(shè)置,而應(yīng)該綁定到本地主機(jī)(localhost)。
Kibana角色用來安裝與配置Kibana。同樣的,“server.host”設(shè)置為“0.0.0.0”,你需要將其設(shè)置為不同的IP。
Filebeat和Metricbeat角色使用其默認(rèn)設(shè)置安裝并啟動這些日志收集器(shipper)。在Metricbeat的情況下,這足以開始監(jiān)控你的服務(wù)器。在Filebeat的情況下,你最有可能希望為角色添加一些可執(zhí)行任務(wù)來定義要用日志記錄的文件。
4.我們執(zhí)行吧
在Ansible主機(jī)上,下載并訪問該劇本:
git clone https://github.com/DanielBerman/ansible-elk-playbook.git
cd ansible-elk-playbook
使用此命令執(zhí)行該劇本:
sudo ansible-playbook site.yml
Ansibler創(chuàng)建了與目標(biāo)主機(jī)的連接,并開始執(zhí)行各種角色與任務(wù)。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%