CentOS7にCurator4を入れてElasticsearchの古いログを消したメモ

Logstashのログが気付いたらめちゃんこ溜まってたので処理したときのメモ

curator というのが有ると知ったので調べてたけど、2.x 3.x の記事ばかりだったので困ってた。

環境

CentOS 7.2

curator のインストール

自分は yum を使いたかったので、公式を参考に設定した。
Curator 4.1 Instration

# /etc/repo.d/curator.repo を作成 編集
[curator-4]
name=CentOS/RHEL 7 repository for Elasticsearch Curator 4.x packages
baseurl=http://packages.elastic.co/curator/4/centos/7
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

で、 yum install

sudo yum install python-elasticsearch-curator

設定ファイルの作成

したいこと
– localhost:9200 のElasticsearchへ接続
– logstash で始まるindex の削除
– 過去30日分だけ残す

configファイルの作成

curator を実行するユーザーの ~/.curator/ ディレクトリに curator.yml を作成
別の場所に作っても、パス指定できるので問題ない。

公式を参考に…
Curator4.1 Configuration

# ~/.curator/curator.yml
client:
  hosts:
    - localhost # 接続先IP かホスト名
  port: 9200
  url_prefix:
  use_ssl: False
  certificate:
  client_cert:
  client_key:
  ssl_no_validate: False
  http_auth:
  timeout: 30
  master_only: False

logging:
  loglevel: INFO
  logfile:
  logformat: default
  blacklist: ['elasticsearch', 'urllib3']

もろもろの設定はこちらで出来ます。 結果のログの出力とか..

actionファイルの作成

やりたいことの設定ファイルを作成 今回はindexを消したい

場所はどこでもいいです。 私は設定ファイルと同じ場所に置きました
ファイル名は適当に、 delete_indices_30_days にしました

公式のサンプルを参考に…

# ~/.curator/delete_indices_30_days
# Remember, leave a key empty if there is no value.  None will be a string,
# not a Python "NoneType"
#
# Also remember that all examples have 'disable_action' set to True.  If you
# want to use this action as a template, be sure to set this to False after
# copying it.
actions:
  1:
    action: delete_indices
    description: >-
      Delete indices older than 45 days (based on index name), for logstash-
      prefixed indices. Ignore the error if the filter does not result in an
      actionable list of indices (ignore_empty_list) and exit cleanly.
    options:
      ignore_empty_list: True
      timeout_override:
      continue_if_exception: False
      disable_action: True
    filters:
    - filtertype: pattern
      kind: prefix
      value: logstash-
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 45 #何日前まで残すか
      exclude:

このままだと実行できないので、
“disable_action: True” を False にします。

実行

# 設定ファイルを ~/.curator/curator.yml に作った場合
$ curator ~/.curator/delete_indices_30_days

# 設定ファイルを それ以外の場所に作った場合
$ curator --config /path/to/curatoy.yml  ~/.curator/delete_indices_30_days

いけました! ではでは

Atsumi3

したいことをします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください