systemd ログ(journal)をトラッキングし、Discord に送信します。
- コンフィグファイルによって、Discord Bot によるチャンネルへの送信と Discord Webhook による送信、Slack Webhook による送信を選ぶことができます。
- journalctl コマンドの引数を全て設定できます。
- Java 16+
- 以下のいずれか
- 有効な Discord Bot Token と Discord Channel ID
- 有効な Discord Webhook URL
- 有効な Slack Incoming Message Webhook URL
- Releaseページを開いてください。
- 最新のバージョンかそれより古いバージョンのいずれかをダウンロードしてください。
- まずはじめに、
java -jar SystemdLogTracker.jar
などを使用して起動します。 - コンフィグファイルが生成されます。下部の
設定
を確認して編集してください。 - 編集したら、再度起動してください。
- (必要に応じて) Systemd などに登録しましょう。下部の
Systemdに登録する
を確認してください。
実行するには次のコマンドを実行してください。
java -jar SystemdLogTracker.jar [Config file path]
[Config file path]
には、コンフィグファイルのパスを指定できます。例: java -jar SystemdLogTracker.jar Tester.json
指定しない場合、カレントディレクトリの config.json
が使用されます。
デフォルトのコンフィグファイルは config.json
です。ただし、コンフィグファイルのパスは jar の実行時に引数によって変更できます。
{
"discordWebhookUrl": "https://discord.com/api/webhooks/00000000000000/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"arguments": "-a -o cat -f -n 0 -u sshd"
}
discordToken
と discordChannelId
、discordWebhookUrl
、slackWebhookUrl
のいずれかは必ず設定してください。
Discord Bot を使用する場合に必要です。
Discord Bot のトークンを指定してください。
{
"discordToken": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
Discord Bot を使用する場合に必要です。
送信先チャンネルの ID を指定してください。
{
"discordChannelId": "00000000000000"
}
Discord Webhook を使用する場合に必要です。
Discord Webhook の URL を指定してください。
{
"discordWebhookUrl": "https://discord.com/api/webhooks/00000000000000/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
Slack Incoming Webhook を使用する場合に必要です。
Slack Incoming Webhook の URL を指定してください。
{
"slackWebhookUrl": "https://hooks.slack.com/services/xxxxxxxxxx/xxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
オプションですが、設定することをお勧めします。
journalctl の引数を指定してください。
デフォルト値は -a -o cat -f -n 0
です。
{
"arguments": "-a -o cat -f -n 0 -u sshd"
}
- 必ず
-f
または--follow
引数を指定してください。指定しない場合、監視は失敗します。 -a
または--all
を指定することをお勧めします。これは出力が非常に長い場合でもすべてを表示します。- 引数
-u
または--unit=UNIT|PATTERN
はとても有用です。これにより、systemd サービス(Unit)を指定できます。
必須ではありません。
出力を処理する間隔をミリ秒で指定してください。
デフォルト値は 5000
です。
{
"sendInterval": 5000
}
-
/etc/systemd/system/
の下にサービスファイルを作成します。例:/etc/systemd/system/SystemdLogTracker.service
-
お好きなエディターでファイルを開き、次のように記述してください。
[Unit] Description=Systemd Log Tracker [Service] User=root Group=root ExecStart=<Command> Restart=always [Install] WantedBy=multi-user.target
(
<Command>
には/usr/bin/java -jar /var/SystemdLogTracker/SystemdLogTracker.jar /var/SystemdLogTracker/Tester.config
などを指定してください。) -
systemctl daemon-reload
を実行した後、systemctl start <ServiceName>
でサービスを開始します。サービスファイルがSystemdLogTracker
の場合、<ServiceName>
はSystemdLogTracker.service
です。
このプロジェクトのライセンスは MIT ライセンスです。 LICENSE