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