以下は、サンプルのログファイルデータです。
08/22/2018 02:50:06.380 EDT-0400 2 TCP/IP Controller Plugin.Transmitter pool thread <Regular:2>.CybTargetHandlerChannel.call[:695] - Message has been sent: 20180822 02500636+0400 C7STA PLINUX03 ALOPMTA2.N01834/LO.S00001D182340248/MAIN State EXEC SetStart Status(Executing at PLINUX03) Jobno(34523) ChildPid(34527) User(PLINUX03) Host(localhost)
08/22/2018 02:50:06.382 EDT-0400 5 TCP/IP Controller Plugin.Transmitter pool thread <Regular:2>.CybTargetHandlerChannelLogHelper.logConnectionClose[:133] - Conversation with C7STA closed
08/22/2018 02:51:21.761 EDT-0400 5 TCP/IP Controller Plugin.Transmitter pool thread <Regular:1>.CybTargetHandlerChannel.call[:666] - Attempting to send: 20180822 02512176+0400 C7STA PLINUX03 ALOECPC7.N01745/LO.S00002D182340242/MAIN State COMPLETE Cmpc(0) SetEnd User(PLINUX03) Host(localhost)
08/22/2018 02:51:21.771 EDT-0400 2 TCP/IP Controller Plugin.Transmitter pool thread <Regular:1>.CybTargetHandlerChannel.call[:695] - Message has been sent: 20180822 02512176+0400 C7STA PLINUX03 ALOECPC7.N01745/LO.S00002D182340242/MAIN State COMPLETE Cmpc(0) SetEnd User(PLINUX03) Host(localhost)
「メッセージが送信されました」を含む1行目と4行目から以下の5つのフィールドを抽出しようとしました。
以下の式を使用して、「メッセージが送信されました:」を含む行をフィルタリングできましたが、この行から5つのフィールドを抽出するかどうかはわかりませんでした。
^.*\b(Message has been sent:.)\b.*$
誰かが助けることができますか?これはSplunkでの抽出用です。ありがとうございました!
この正規表現をお勧めします:
Message has been sent: (?<timestamp>\d{8}\s\d{8}\+\d{4})\s\w+\s\w+\s(?<jobname>\w+)\.N(?<jobnumber>\d+)\/[^\/]+\/(?<statuses>(\w+\s)+)\w+\(.+User\((?<user>\w+)\)
(\d{8}\s\d{8}\+\d{4})
:タイムスタンプと一致します\s(\w+)\.N
:ジョブ名と一致します\.N(\d+)\/
:ジョブ番号と一致します((\w+\s)+)
:ステータスと一致しますUser\((\w+)\)
:ユーザーと一致しますあなたが提供したデータでここに例を見ることができます:https://regex101.com/r/G6GD46/4
必要な結果を得るために、この例で遊ぶことを躊躇しないでください。
これらのregexについてさらに説明が必要な場合は教えてください。
編集:コメントで@RichGが示唆しているように、Splunkがグループを変数として抽出できるように名前付きグループを追加しました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加