在 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
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
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
柏林劇團在 2026 北藝嚴選,再次帶來由布萊希特改編的經典劇目《三便士歌劇》(The Threepenny Opera),導演巴里・柯斯基以舞台結構與舞台調度,重新向「疏離」進行提問。本文將從觀眾慾望作為戲劇內核,藉由沉浸與疏離的辯證,解析此作如何再次照見觀眾自身的位置。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
本文深入解析臺灣劇團「晃晃跨幅町」對易卜生經典劇作《海妲.蓋柏樂》的詮釋,從劇本歷史、聲響與舞臺設計,到演員的主體創作方法,探討此版本如何讓經典劇作在當代劇場語境下煥發新生,滿足現代觀眾的觀看慾望。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
Thumbnail
《轉轉生》為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,融合舞蹈、音樂、時尚和視覺藝術,透過身體、服裝與群舞結構,回應殖民歷史、城市經驗與祖靈記憶的交錯。本文將從服裝設計、身體語彙與「輪迴」的「誕生—死亡—重生」結構出發,分析《轉轉生》如何以當代目光,形塑去殖民視角的奈及利亞歷史。
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
Thumbnail
最近在研究terraform與ansible的整合,不過還在摸索中,機器的版控對於維運來講相對重要,這時候有terraform的出現,在建立機器後會隨之產生機器的狀態檔,而ansible則是在建立好機器後幫助我完成我所需的機器相關設定 這是一款terraform結合ansible的小玩具,在gcp環
Thumbnail
最近在研究terraform與ansible的整合,不過還在摸索中,機器的版控對於維運來講相對重要,這時候有terraform的出現,在建立機器後會隨之產生機器的狀態檔,而ansible則是在建立好機器後幫助我完成我所需的機器相關設定 這是一款terraform結合ansible的小玩具,在gcp環
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News