LoginSignup
0
0

More than 3 years have passed since last update.

logstashでMultiple Pipelinesを使わずにコンフィグを分割し、サービス起動する方法

Last updated at Posted at 2019-08-27

やりたいこと

logstashで様々なファイルをelasticsearchに取り込む仕組みを作るにあたって、
可読性のためにコンフィグファイルを分割したい。

logstashのバージョンが6.0以降だと、
下記のリンクのようにMultiple Pipelinesが使えるが、
当方の環境は、5.6なのでMultiple Pipelinesを使わずにやってみた。

方法としては下記リンクに、
「これを5.xで解決しようとすると、ファイルを分けて、logstashのインスタンスを分けて実行する手立てがありました」とあるので、コンフィグを分けてサービス起動すればよいと考えた。

参考リンク:https://qiita.com/tsgkdt/items/3e7f07ca963676b37718

考慮したポイント

上記のリンクではサービス起動の方法は書いてはいないので、下記を参考にした。

ユニット定義ファイルの作成

インストールと無効化

# yum install logstash
###すでに起動している場合は、下記で無効化###
# systemctl stop logstash.service 
# systemctl disable logstash.service 

ユニット定義ファイル作成

①元になるユニット定義をコピーで作成

# cp -p /etc/systemd/system/logstash.service /etc/systemd/system/logstash_hoge.service

②path.data用のディレクトリ作成

# mkdir /etc/logstash/logstash_hoge

ユニット定義ファイル

# vi /etc/systemd/system/logstash_hoge.service

以下を修正
- Descriptionの修正
- UserとGroupをlogstash→rootに変更
- ExecStartの末尾に「--path.data /etc/logstash/logstash_hoge」を追加

[Unit]
Description=logstash_hoge

[Service]
Type=simple
User=root
Group=root
# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.
# Prefixing the path with '-' makes it try to load, but if the file doesn't
# exist, it continues onward.
EnvironmentFile=-/etc/default/logstash
EnvironmentFile=-/etc/sysconfig/logstash
ExecStart=/usr/share/logstash/bin/logstash "--path.settings" "/etc/logstash" --path.data /etc/logstash/logstash_hoge
Restart=always
WorkingDirectory=/
Nice=19
LimitNOFILE=16384

[Install]
WantedBy=multi-user.target

サービス登録

# systemctl enable logstash_hoge.service
# systemctl start logstash_hoge.service
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0