ELK-Ansible 是基於 Ansible 的 Playbooks 研發的 ELK集羣部署工具。
本文將介紹如何使用 ELK-Ansible 快速部署 ELK 集羣。html
Elasticsearch | 存儲數據並提供分析查詢能力,支持集羣 |
---|---|
Logstash | 解析日誌,由一行文本日誌解析到結構數據(JSON字典) |
Filebeat | 監控日誌文件,收集行數據 |
Kibana | 前端展現界面 |
Kafka(可選) | 緩存filebeat到logstash過程當中的數據, 防止logstash處理不過來形成數據丟失 |
根據實際狀況分配服務器和角色,前端
場景一,帶kafka方案node
場景二,不帶kafka方案git
# yum -y install epel-release git curl sshpass ansible vim wget
安裝包下載地址 https://urc-elk.oss-cn-shanghai.aliyuncs.com/release/elk-ansible.tar.gzvim
cd /opt wget https://urc-elk.oss-cn-shanghai.aliyuncs.com/release/elk-ansible.tar.gz tar -zxvf elk-ansible-0.0.1.tgz cd elk-ansible
$ ssh-keygen -t rsa 在中控機生成公密鑰文件 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 4e:f8:b6:c4:1f:c3:1d:2a:b1:10:ba:65:39:74:2f:08 root@lst02 The key's randomart image is: +--[ RSA 2048]----+ | | | | | E o . | | + * . | | . O S . . | | + B = o . | | . O = . | | o + o | | . . | +-----------------+
[all_nodes] 192.168.79.201
$ ansible-playbook -k playbooks/init_node.yml
/opt/elk-ansible/hosts緩存
參數 | 含義 |
---|---|
[all_nodes] | 參數下放置全部的服務器列表,能夠配置登錄方式,默認經過sshkey免密登錄,還能夠指定用戶/密碼/端口 |
[all_nodes:vars] | 參數下放置全局的變量 |
install_root_path | 表明程序安裝目錄 |
[elasticsearch] | 參數下放置須要安裝es的節點,會搭建出這些節點組陳過的ES集羣 |
[elasticsearch:vars] | 參數下放置es節點部署時須要的配置變量 |
data_path | 表示ES數據存放目錄 |
cluster_name | 表示ES集權的名稱 |
[filebeat] | 參數下放置須要安裝filebeat的服務器列表,用戶收集日誌 |
[filebeat:vars] | 下存放安裝過程的配置變量 |
kafka_topic | 若是有kafka,對應kafka的主題名稱 |
filebeat_log_path | 收集日誌的路徑 |
[logstash] | 存放對應角色主機列表,配置使用默認 |
[kafka] | 存放對應角色主機列表,配置使用默認 |
[kafka_zookeeper] | 存放對應角色主機列表,配置使用默認 |
[kibana] | 存放對應角色主機列表,配置使用默認 |
各服務器角色分工bash
服務器 | 對應角色 |
---|---|
192.168.10.72 | ansible控制機 |
192.168.10.73 | elasticsearch、logstash、filebeat |
192.168.10.74 | elasticsearch、logstash、filebeat |
192.168.10.75 | elasticsearch、logstash、kafka、filebeat、kibana |
具體hosts配置文件樣例: 服務器
[all_nodes] 192.168.10.73 # 經過sshkey免密登錄 192.168.10.74 192.168.10.75 [all_nodes:vars] install_root_path=/usr/local ############################### ElasticSearch [elasticsearch] 192.168.10.73 192.168.10.74 192.168.10.75 [elasticsearch:vars] elasticsearch_version=7.2.0 data_path=/var/lib/elasticsearch cluster_name=ELKCluster ############################### Logstash [logstash] 192.168.10.73 192.168.10.74 192.168.10.75 [logstash:vars] logstash_version=7.2.0 pipeline_workers=5 pipeline_batch_size=10 kafka_group_id=logstash_kafka # 做爲kafka的消費者的group-id kafka_topic=elk-pipeline-topic # kafka中的對應的topic ############################### Kafka [kafka] # 不配置任何機器,即不帶kafka場景 192.168.10.75 [kafka:vars] kafka_version=2.12-2.2.0 [kafka_zookeeper] 192.168.10.75 [kafka_zookeeper:vars] zookeeper_version=3.4.13 ############################### filebeat [filebeat] 192.168.10.73 192.168.10.74 192.168.10.75 [filebeat:vars] filebeat_version=7.2.0 kafka_topic=elk-pipeline-topic # kafka中的對應的topic filebeat_log_path=/var/log/*.log # 監視的日誌 ############################### kibana [kibana] 192.168.10.75 [kibana:vars] kibana_version=7.2.0
各機器的角色分配網絡
服務器 | 對應角色 |
---|---|
192.168.10.72 | ansible控制機 |
192.168.10.73 | elasticsearch、logstash、filebeat |
192.168.10.74 | elasticsearch、logstash、filebeat |
192.168.10.75 | elasticsearch、logstash、filebeat、kibana |
具體hosts配置文件樣例:dom
[all_nodes] 192.168.10.73 # 經過sshkey免密登錄 192.168.10.74 192.168.10.75 [all_nodes:vars] install_root_path=/usr/local ############################### ElasticSearch [elasticsearch] 192.168.10.73 192.168.10.74 192.168.10.75 [elasticsearch:vars] elasticsearch_version=7.2.0 data_path=/var/lib/elasticsearch cluster_name=ELKCluster ############################### Logstash [logstash] 192.168.10.73 192.168.10.74 192.168.10.75 [logstash:vars] logstash_version=7.2.0 pipeline_workers=5 pipeline_batch_size=10 ############################### filebeat [filebeat] 192.168.10.73 192.168.10.74 192.168.10.75 [filebeat:vars] filebeat_version=7.2.0 filebeat_log_path=/var/log/*.log # 監視的日誌 ############################### kibana [kibana] 192.168.10.75 [kibana:vars] kibana_version=7.2.0
$cd /opt/elk-ansible $bash deploy.sh 運行 bash deploy.sh部署