iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
DevOps

SRE/K8S 碎碎念系列 第 27

D27

  • 分享至 

  • xImage
  •  

之前有提過我們的 logs 是 ELK,使用 Elasticsearch、Logstash 和 Kibana 三個開源產品的組合,它們一起為實時數據搜索、日誌分析和可視化提供解決方案。

今天從兩個方面教學,部署及升級。部署上我們可以使用 terraform elasticcloud provider 來做 IaC。所謂的 Terraform provider 是 terraform 的 plugin,可以負責理解 API 交互跟管理特定技術平台(如雲服務提供商、版本控制系統,所以你會看到 aws 有提供 provider,helm 也有。而這章節要提的 elasticcloud 也有提供。

provider "elasticcloud" {
  apikey = "your-api-key"
}

而這邊會特別介紹 logstash 的部署。

Logstash 是負責收集、處理和轉發 log 的 component。

  1. 收集: Logstash 支持多種來源(如文件、消息佇列、syslog 等),你可以從不同類型的系統和應用程序接收事件數據。
  2. 處理: Logstash 可以通過對事件數據進行各種變換和過濾來加工數據。例如,它可以解析不同格式的日誌文件(如 JSON、CSV、XML),提取特定字段,添加或修改元數據,並將事件數據轉換為結構化的模式。
  3. 轉發: 處理後的事件數據可以通過 Logstash 輸出插件轉發到不同的目的地(如 Elasticsearch、Kafka、文件等)進行存儲或分析。

那要如何設定他要如何收集、處理和轉發 log 呢?

  1. 設置 logstash 配置文件:logstash.tpl
input {
  file {
    path => "/path/to/your/logfile.log"
    start_position => "beginning"
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["${elasticsearch_endpoint}:9200"]
    index => "logstash-%{+YYYY.MM.dd}"
    user => "${username}"
    password => "${password}"
  }
}
  1. 將配置文件 implement,讓 terraform 可以引用
locals {
  logstash_config = templatefile("logstash.tpl", {
    elasticsearch_endpoint = "https://your-elasticsearch-endpoint"
    username               = "your-username"
    password               = "your-password"
  })
}
  1. 配置到 resource 內
resource "elastic-cloud_ec_deployment" "example" {
  name                = "example-deployment"
  region              = "aws-eu-west-1"
  version             = "7.15.0"
  deployment_template = "aws-io-optimized-v2"

  logstash {
    config {
      content = local.logstash_config
      name    = "logstash.conf"
    }
    topology {
      size = "1g"
    }
  }
}

output "logstash_endpoint" {
  value = elastic-cloud_ec_deployment.example.logstash[0].http_endpoint
}

上一篇
D26 1.27 升級
下一篇
D28 mesh
系列文
SRE/K8S 碎碎念30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言