ログ可視化ツールの 3 点セット、Fluentd + Elasticsearch5 + Kibana5 を試すメモ 4 回目。前回は Kibana から Elasticsearch のデータを参照するところと、Kibana の SSL 化をやりました。
-
Fluentd + Elasticsearch5 + Kibana5構築(3) Kibana設定編
ログ可視化ツールの 3 点セット、Fluentd + Elasticsearch5 + Kibana5 を試すメモ 3 ...
続きを見る
ログを Kibana から可視化することができましたが、このままだと Elasticsearch にログが貯まる一方なので、一定期間を過ぎたログを自動的に削除するようにします。
Elasticsearch のインデックスの削除は Elastic Stack 公式の Curator というツールを使います。
目次
Curator4 をインストール
インストール方法は Curator Reference » Installation » YUM repository を参考にします。
GPG KEY 登録
$ sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
CentOS7 用のリポジトリ登録
$ sudo vi /etc/yum.repos.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
インストール
$ sudo yum install elasticsearch-curator
30 日経過したログを削除するように設定
Curator を実行するには
Running Curator & Command Line Interface によると、Curator を実行するは CONFIG.YML と ACTION_FILE.YML が必要な様子。
curator [--config CONFIG.YML] [--dry-run] ACTION_FILE.YML
CONFIG.YML と ACTION_FILE.YML の置き場所を作成
$ mkdir ~/.curator/
CONFIG.YML 作成
curator.yml を作成。ファイルの中身は Configuration » Configuration File を参考に。とりあえずデフォルトで良さそうだったので公式サンプルをそのまま持ってきてコメントアウトしておきます。
$ vi ~/.curator/curator.yml
---
# Remember, leave a key empty if there is no value. None will be a string,
# not a Python "NoneType"
#client:
# hosts:
# - 127.0.0.1
# 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
delete_indices.ymlを作成。ファイルの中身は Configuration » Action File を参考に。
日別に作成されたインデックスを削除する ACTION_FILE を作ります。削除の ACTION_FILE の書き方は Actions » Delete Indices を参考に。
今回は削除の条件を「30 日経過したもの」にしています。条件は Filters を参考にしながらカスタマイズします。
$ vi ~/.curator/delete_indices.yml
---
# 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 30 days"
options:
ignore_empty_list: True
continue_if_exception: False
filters:
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 30
exclude: False
ドライランで動作確認。動作確認するとき、削除の条件は手元のインデックスの状況に合わせて適当に修正してください。
$ curator --dry-run ~/.curator/delete_indices.yml
2017-01-31 12:04:07,721 INFO Preparing Action ID: 1, "delete_indices"
2017-01-31 12:04:07,728 INFO Trying Action ID: 1, "delete_indices": Delete indices older than 30 days
2017-01-31 12:04:07,743 INFO DRY-RUN MODE. No changes will be made.
2017-01-31 12:04:07,743 INFO (CLOSED) indices may be shown that may not be acted on by action "delete_indices".
2017-01-31 12:04:07,743 INFO Action ID: 1, "delete_indices" completed.
2017-01-31 12:04:07,743 INFO Job completed.
ドライランをはずして削除実行
$ curator ~/.curator/delete_indices.yml
あとはこれを cron などで定期実行すれば良いと思います。
次回は Elasticsearch のメモリ使用量について触れます。
-
Elasticsearchのメモリ使用量を減らす
ログ可視化ツールの 3 点セット、Fluentd + Elasticsearch5 + Kibana5 を試すメモ 5 ...
続きを見る