LinuxサーバーでホストされているSyslogサーバーにアカウントメッセージを転送するRadiusサーバーがあります。このログファイルから特定の値を収集し、この値を要求の形式でWebサーバーに送信されるURLのパラメータとして使用しようとしています。
コードは 1. radiusmsg.log
Linux サーバー上でログファイルを継続的に解析します。 ():コードはtail -f
2秒ごとに実行され、新しい行を確認し、ログファイルで特定のキーワードを見つけます。
という特定のキーワードを検索します
Acct-Status-Type=Start
。User-Name
上記のキーワードがログエントリにある場合、スクリプトはそのログ内の値、つまり値を見つける必要がありますFramed-IP-Address
。User-Name="Harvey.specter" Framed-IP-Address="10.0.0.16"
スクリプトは最終的に1.1.1.1 などの所定の IP アドレスへの出力に URL 要求を送信します。
https://1.1.1.1:8999/wbc/APICrl?requexml=<request><login><username><Harvey.specter><ipaddress> <10.0.0.16></ipaddress></username></login>
ログエントリの例:
CISE_RADIUS_Accounting 000011 1 0 2016-05-09 12:53:52.823 +03:00 0000012451 3000 NOTICE Radius-Accounting: RADIUS Accounting start request, ConfigVersionId=104, Device IP Address=10.0.0.12, RequestLatency=12, NetworkDeviceName=DefaultNetworkDevice, User-Name=Harvey.specter, NAS-IP-Address=10.0.0.1, Framed-IP-Address=10.0.0.16, Session-Timeout=90, Calling-Station-ID=, Acct-Status-Type=Start, Acct-Session-Id=6, cisco-av-pair=audit-session-id=5