{"id":21130805,"url":"https://github.com/sz9751210/ansible-elk","last_synced_at":"2026-05-17T11:31:30.245Z","repository":{"id":191567538,"uuid":"591217628","full_name":"sz9751210/ansible-elk","owner":"sz9751210","description":"在gcp環境下使用ansible playbook 建立elk stack","archived":false,"fork":false,"pushed_at":"2023-08-30T06:23:32.000Z","size":9498,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-02T04:44:15.514Z","etag":null,"topics":["ansible","elasticsearch","elk","kibana","logstash"],"latest_commit_sha":null,"homepage":"https://sz9751210.github.io/posts/ansible-elk/","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sz9751210.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-01-20T07:53:32.000Z","updated_at":"2023-08-30T05:44:23.000Z","dependencies_parsed_at":"2023-08-30T13:16:10.073Z","dependency_job_id":null,"html_url":"https://github.com/sz9751210/ansible-elk","commit_stats":null,"previous_names":["sz9751210/ansible-elk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sz9751210/ansible-elk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sz9751210%2Fansible-elk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sz9751210%2Fansible-elk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sz9751210%2Fansible-elk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sz9751210%2Fansible-elk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sz9751210","download_url":"https://codeload.github.com/sz9751210/ansible-elk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sz9751210%2Fansible-elk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33136668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","elasticsearch","elk","kibana","logstash"],"created_at":"2024-11-20T05:39:10.579Z","updated_at":"2026-05-17T11:31:30.231Z","avatar_url":"https://github.com/sz9751210.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ansible-elk\n\n## 介紹\n在gcp環境下使用ansible playbook 建立elk stack\n- elasticsearch：主要會先需要先跑init master，接著再去跑seed host去加入master組成cluster架構，邏輯上還有可修改的地方，目前先以兩份yaml分開跑下去做建立，在跑完init master後會先建立iim以及index template\n- logstash：直接將pipeline等設定都複製進去\n## 資料夾結構\n```shell\n.\n├── create_elasticsearch_master_instance.yaml\n├── create_elasticsearch_slave_instance.yaml\n├── create_filebeat_instance.yaml\n├── create_kibana_instance.yaml\n├── create_logstash_instance.yaml\n├── files\n│   ├── elasticsearch\n│   │   ├── api.sh\n│   │   ├── certs\n│   │   └── elasticsearch.repo\n│   ├── kibana\n│   │   └── kibana.repo\n│   └── logstash\n│       ├── conf.d\n│       │   └── logstash.conf\n│       ├── logstash.repo\n│       ├── logstash.yml\n│       └── pipelines.yml\n├── group_vars\n│   └── all\n│       ├── env.yml copy.example\n│       └── package.yml\n├── inventory\n│   └── elk.test.node\n├── inventory.instance.create.yml.example\n├── README.md\n├── roles\n│   ├── elasticsearch\n│   │   ├── tasks\n│   │   │   ├── create_disk.yml\n│   │   │   ├── install_elastic.yml\n│   │   │   ├── main.yml\n│   │   │   ├── setup_disk.yml\n│   │   │   ├── setup_elastic_master.yml\n│   │   │   └── setup_elastic_slave.yml\n│   │   └── templates\n│   │       └── elasticsearch.yml.j2\n│   ├── instance\n│   │   └── tasks\n│   │       ├── create.yml\n│   │       └── setup.yml\n│   ├── kibana\n│   │   ├── tasks\n│   │   │   └── main.yml\n│   │   └── templates\n│   │       └── kibana.yml.j2\n│   └── logstash\n│       └── tasks\n│           └── main.yml\n└── vars\n    ├── elasticsearch\n    │   ├── elasticsearch_var.yml\n    │   └── elasticsearch_var.yml.example\n    ├── instance\n    │   ├── instance_var.yml\n    │   └── instance_var.yml.example\n    ├── kibana\n    │   ├── kibana_var.yml\n    │   └── kibana_var.yml.example\n    └── logstash\n        ├── logstash_var.yml\n        └── logstash_var.yml.example\n```\n\n## 使用指南\n1. 設定機器資訊：複製好inventory.instance.create.yml.example後，可參考inventory裡的設定，主要設定gcp的資訊，elasticsearch的node_role為data_role，可參考以下連結\n\n[Elasticsearch Multi\\-Tier Architecture \\| Hot, Warm, Cold \u0026 Frozen](https://opster.com/guides/elasticsearch/capacity-planning/elasticsearch-hot-warm-cold-frozen-architecture/)\n\n2. 設定group_vars的env.yml，改成自己的gcp的專案以及要設定的region\n\n3. 設定vars裡的相對yml，可參考範例\n   - elasticsearch：主要設定掛載的硬碟資訊\n   - kibana,logstash：設定elasticsearch的host資訊\n\n## 建置流程\nelasticsearch_master -\u003e elasticsearch_slave -\u003e logstash -\u003e kibana\n\n### 安裝方式\n- 指令\n```shell\nANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i inventory.instance.create.yml create_xxx_instance.yaml -v\n```\n\n- golang\n```\ngo run main.go\n```\n![gif](doc/1.gif)\n\n## todo\n\n- [ ] elasticsearch playbook 優化\n- [x] 添加filebeat role\n- [ ] disk 修改建置資料夾\n- [ ] 新增elasticsearch exporter","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsz9751210%2Fansible-elk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsz9751210%2Fansible-elk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsz9751210%2Fansible-elk/lists"}