見出し画像

すごいログ分析ツール(TWSLA)にGeoIP、DNS検索機能をつけています

今朝は3時前に目が覚めました。昨日、早く寝たのと寝ながら面白いアイデアを思いついたためです。
コーヒーを淹れにリビングに行くと助手の猫さんが迷惑そうに、目をしばしばしてました。猫さんは4時過ぎに、かみさんを起こそうとして、怒られてました。

寝ている時に思いついたアイデアはTWSLAでログから取得したIPアドレスの国や都市、緯度経度などの位置情報、ホスト名、ドメイン名などの情報を取得して集計する方法です。
まずは、countコマンドに入れてみました。
起動パラメーターを2つ増やしました。
--geoipでIP位置情報データベースのパスを指定します。
IP位置情報のデータベースファイルを入手する方法は

などを参考にしてください。
--ip 取得するIP情報の種類を指定します。

host:ホスト名
domain:ドメイン名
loc:位置情報
country:国コード

に対応しています。locとcountryだけIP位置情報データベースが必須になります。

例えば、

$twsla count -e ip --ip country --geoip ~/Desktop/GeoLite2-City_20241119/GeoLite2-City.mmdb  Failed password

のように集計すると

のようになります。個々のIPアドレスではなく国別に集計できます。
表示できた時は、かなり嬉しかったです。

locで集計すると

のような感じです。緯度経度が追加されて、都市名がわかる場合には、これも追加します。
domainで集計すると

です。DNSサーバーへ問い合わせるので、かなり遅いです。

対象のログは、ログのサンプルサイトからダウンロードしたSSHサーバーのログです。ログイン失敗しているアクセス元のIPアドレスに関する情報がよくわかります。
countコマンドは、いい感じになったので、extractコマンドも対応しました。パラメータは同じです。同じログをlocで表示すると

です。

もう少しテストしてリリースしようと思います。
ログ分析が好きな人は、楽しめます。

明日に続く


いいなと思ったら応援しよう!

twsnmp
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。