在 GCP 環境下使用 Ansible 自動化建立 ELK Stack

更新 發佈閱讀 8 分鐘


raw-image

📔心得

最近,我在探索 Ansible 自動化工具的過程中,決定運用它來建立 ELK Stack,這是我之前使用 Docker 建立的經驗的延伸。在這個過程中,我想分享一下我的學習心得。

  1. 尋找資源

我開始了解 ELK Stack 的安裝過程,首先閱讀了官方文件,熟悉了整個設置流程。接著,我尋找 Ansible 中相關的模組,這讓我更好地理解如何在 Ansible 中實現相同的步驟。

2. 目錄結構的重要性

在撰寫 Ansible Playbook 過程中,我學到了良好的目錄結構是多麼重要。我從最初只有一個主要的 main.yml 開始,逐漸分解出根目錄下的多個 .yml 檔案,然後使用 include 來引入任務。這種結構讓整個 Playbook 更加模組化,易於管理。

3. 使用模板和變數

在創建模板時,我發現了 Jinja2 語法的威力。我可以直接套用變數,這讓我的模板在複製到目標主機時能自動載入所需的參數。此外,我還學會了如何根據我的主機清單(inventory)來動態設定這些參數,這真是強大的功能。

4. 感謝凍仁大的指南

我要特別感謝凍仁大(作者)的 Ansible 教程,我從他的 Ansible GitBook 中學到了許多寶貴的資訊。他的教程簡潔明瞭,對於初學者也非常友好。他的教程甚至提供了 Ansible 在使用 Docker Compose 方面的實際練習,這讓我能更好地掌握 Ansible 的操作技巧。另外,使用 Jupyter Notebook 執行 Ansible 模組也讓我的學習過程更加便利。

如果你對於 Ansible 自動化配置技巧感興趣,我推薦你閱讀這份凍仁大的 Ansible 指南,連結在下方:

🔗凍仁大ansible指南 –> 現代 IT 人一定要知道的 Ansible 自動化組態技巧

此外,我還將我使用 Ansible 建立 ELK Stack 的 Playbook 放在了以下的 GitHub 倉庫,歡迎參考:

🔗Ansible-ELK repo –> Ansible-ELK

這次的學習讓我更深入地理解了自動化的價值,也讓我更有信心在日後的專案中運用 Ansible 來簡化配置流程。

👨‍💻簡介

在 GCP 環境下使用 Ansible Playbook 建立 ELK Stack

  • Elasticsearch:主要會先需要先跑init master,接著再去跑seed host去加入master組成cluster架構,邏輯上還有可修改的地方,目前先以兩份yaml分開跑下去做建立,在跑完init master後會先建立iim以及index template
  • Logstash:直接將pipeline等設定直接複製到主機中。
  • Kibana:設定與 Elasticsearch 的連接資訊。

📁資料夾結構

.
├── create_elasticsearch_master_instance.yaml
├── create_elasticsearch_slave_instance.yaml
├── create_filebeat_instance.yaml
├── create_kibana_instance.yaml
├── create_logstash_instance.yaml
├── files
│ ├── elasticsearch
│ │ ├── api.sh
│ │ ├── certs
│ │ └── elasticsearch.repo
│ ├── kibana
│ │ └── kibana.repo
│ └── logstash
│ ├── conf.d
│ │ └── logstash.conf
│ ├── logstash.repo
│ ├── logstash.yml
│ └── pipelines.yml
├── group_vars
│ └── all
│ ├── env.yml copy.example
│ └── package.yml
├── inventory
│ └── elk.test.node
├── inventory.instance.create.yml.example
├── README.md
├── roles
│ ├── elasticsearch
│ │ ├── tasks
│ │ │ ├── create_disk.yml
│ │ │ ├── install_elastic.yml
│ │ │ ├── main.yml
│ │ │ ├── setup_disk.yml
│ │ │ ├── setup_elastic_master.yml
│ │ │ └── setup_elastic_slave.yml
│ │ └── templates
│ │ └── elasticsearch.yml.j2
│ ├── instance
│ │ └── tasks
│ │ ├── create.yml
│ │ └── setup.yml
│ ├── kibana
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ └── kibana.yml.j2
│ └── logstash
│ └── tasks
│ └── main.yml
└── vars
├── elasticsearch
│ ├── elasticsearch_var.yml
│ └── elasticsearch_var.yml.example
├── instance
│ ├── instance_var.yml
│ └── instance_var.yml.example
├── kibana
│ ├── kibana_var.yml
│ └── kibana_var.yml.example
└── logstash
├── logstash_var.yml
└── logstash_var.yml.example

🔰基礎介紹

  1. 設定機器資訊:複製好inventory.instance.create.yml.example後,可參考inventory裡的設定,主要設定gcp的資訊,elasticsearch的node_role為data_role,可參考以下連結

Elasticsearch Multi-Tier Architecture | Hot, Warm, Cold & Frozen

2. 設定group_vars的env.yml,改成自己的gcp的專案以及要設定的region

3. 設定vars裡的相對yml,可參考範例

  • elasticsearch:主要設定掛載的硬碟資訊
  • kibana,logstash:設定elasticsearch的host資訊

🎯setup

elasticsearch_master -> elasticsearch_slave -> logstash -> kibana

  • 指令
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i inventory.instance.create.yml create_xxx_instance.yaml -v
  • golang
raw-image

✅TODO

  • elasticsearch playbook 優化
  • 添加filebeat role
  • disk 修改建置資料夾
留言
avatar-img
留言分享你的想法!
avatar-img
Alan的開發者天地
19會員
83內容數
golang
Alan的開發者天地的其他內容
2024/09/15
本文介紹如何使用 MongoDB 的命令行工具 Mongorestore 將先前備份的資料還原到資料庫中。Mongorestore 支援資料庫的整體恢復、特定集合的恢復,以及從遠端伺服器進行恢復等功能。無論是初學者還是有經驗的使用者,都能夠快速掌握如何使用 Mongorestore 工具。
Thumbnail
2024/09/15
本文介紹如何使用 MongoDB 的命令行工具 Mongorestore 將先前備份的資料還原到資料庫中。Mongorestore 支援資料庫的整體恢復、特定集合的恢復,以及從遠端伺服器進行恢復等功能。無論是初學者還是有經驗的使用者,都能夠快速掌握如何使用 Mongorestore 工具。
Thumbnail
2024/09/08
👨‍💻簡介 在資料庫管理和系統維護中,備份是非常重要的一環。對於使用 MongoDB 的開發者和資料庫管理員來說,mongodump 是一個非常實用的命令行工具,能夠快速且輕鬆地完成資料庫的備份和恢復。無論是進行資料遷移、系統升級,還是面對突發的故障,mongodump 都能提供穩定的資料保護
Thumbnail
2024/09/08
👨‍💻簡介 在資料庫管理和系統維護中,備份是非常重要的一環。對於使用 MongoDB 的開發者和資料庫管理員來說,mongodump 是一個非常實用的命令行工具,能夠快速且輕鬆地完成資料庫的備份和恢復。無論是進行資料遷移、系統升級,還是面對突發的故障,mongodump 都能提供穩定的資料保護
Thumbnail
2024/06/20
本文介紹如何對 Telegram 憑證監控機器人的代碼進行優化,包括新增指令、讀取變數、提高可讀性和可維護性。
Thumbnail
2024/06/20
本文介紹如何對 Telegram 憑證監控機器人的代碼進行優化,包括新增指令、讀取變數、提高可讀性和可維護性。
Thumbnail
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
本文章將說明如果您想要從頭建置一組具有Loadbalancer HA架構的Kubernetes Cluster時,你可能會需要做的事前準備工作。
Thumbnail
本文章將說明如果您想要從頭建置一組具有Loadbalancer HA架構的Kubernetes Cluster時,你可能會需要做的事前準備工作。
Thumbnail
在大數據的時代,提供高效能和準確的搜尋功能是Web應用的關鍵要求之一。Elasticsearch是一個分佈式、RESTful搜尋和分析引擎,能夠幫助我們快速地檢索、分析和視覺化大量數據。
Thumbnail
在大數據的時代,提供高效能和準確的搜尋功能是Web應用的關鍵要求之一。Elasticsearch是一個分佈式、RESTful搜尋和分析引擎,能夠幫助我們快速地檢索、分析和視覺化大量數據。
Thumbnail
AWS 佈署簡單操作以及 RDS 建立篇
Thumbnail
AWS 佈署簡單操作以及 RDS 建立篇
Thumbnail
這系列要介紹如何使用ELK架構(Elastic)及Filebeat來監控nginx的access.log。我會針對每個步驟寫出一篇文章來介紹系統該如何設定,如果有錯誤的地方,也麻煩多多指教。
Thumbnail
這系列要介紹如何使用ELK架構(Elastic)及Filebeat來監控nginx的access.log。我會針對每個步驟寫出一篇文章來介紹系統該如何設定,如果有錯誤的地方,也麻煩多多指教。
Thumbnail
📔心得 最近,我在探索 Ansible 自動化工具的過程中,決定運用它來建立 ELK Stack,這是我之前使用 Docker 建立的經驗的延伸。在這個過程中,我想分享一下我的學習心得。
Thumbnail
📔心得 最近,我在探索 Ansible 自動化工具的過程中,決定運用它來建立 ELK Stack,這是我之前使用 Docker 建立的經驗的延伸。在這個過程中,我想分享一下我的學習心得。
Thumbnail
Intro👨‍💻 在gcp環境下使用ansible playbook 建立k8s cluster,目前base image為centos 7,安裝方式類似elk stack,一樣先等master安裝完後產生token,接著安裝slave。 使用的CRI為containerd,CNI為calico
Thumbnail
Intro👨‍💻 在gcp環境下使用ansible playbook 建立k8s cluster,目前base image為centos 7,安裝方式類似elk stack,一樣先等master安裝完後產生token,接著安裝slave。 使用的CRI為containerd,CNI為calico
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News