본문 바로가기

클라우드/GCP 자원 테라폼으로 관리해보기

(8-2) Terraform에서 helm 관리 - ELK

반응형

ELK란 Elasticsearch, Logstash, Kibana를 의미하며 해당 자원들을 helm을 통해 생성하는 방법에 대해 작성한다.

 

1. helm_elk.tf

 

Elasticsearch

 resource "helm_release" "elastic" {
  name       = "elastic"
  #repository = "https://charts.jenkins.io"  # Jenkins Helm 차트 레포지토리 URL
  chart      = "../bitnami-elk/elasticsearch/elasticsearch-20.0.3.tgz"
  #version    = "3.0.13"  # Jenkins Helm 차트 버전
  namespace   = "default"
 
  # verify = false
  values = [
    "${file("../bitnami-elk/elasticsearch/values.yaml")}"
  ]

 }

 

Kibana

resource "helm_release" "kibana" {
  name       = "kibana2"
  #repository = "https://charts.jenkins.io"  # Jenkins Helm 차트 레포지토리 URL
  chart      = "../bitnami-elk/kibana/kibana-11.0.3.tgz"
  #version    = "3.0.13"  # Jenkins Helm 차트 버전
  namespace   = "default"


  set {
    name  = "elasticsearch.hosts[0]"
    value = "elastic-elasticsearch.default.svc.cluster.local"
  }  
  set {
    name  = "elasticsearch.port"
    value = "9200"
  }

  # verify = false
  values = [
    "${file("../bitnami-elk/kibana/values.yaml")}"
  ]

}

 

Logstash

resource "helm_release" "logstash" {
  name       = "logstash"
  #repository = "https://charts.jenkins.io"  # Jenkins Helm 차트 레포지토리 URL
  chart      = "../bitnami-elk/logstash/logstash-6.0.2.tgz"
  #version    = "3.0.13"  # Jenkins Helm 차트 버전
  namespace   = "default"


  set {
    name  = "plugins[0].name"
    value = "google_pubsub"
  }  


  # verify = false
  values = [
    "${file("../bitnami-elk/logstash/values.yaml")}"
  ]

}

 

 

bitnami-elk.zip
0.61MB

 

해당 설정대로 helm을 통해 설치하게 되면 아래와 같이 pod가 생성된다.

 

 

 

생성된 서비스 중 kibana 외부 ip로 접근하게 되면 콘솔로 접근이 가능하다.

 

 

자세한 구성 yaml 설명 및 연동 과정은 추후 해당 문서에 기술하거나 별도 페이지로 설명하도록 하겠다.

반응형