
すごいログ分析ツール(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で表示すると

です。
もう少しテストしてリリースしようと思います。
ログ分析が好きな人は、楽しめます。
明日に続く
いいなと思ったら応援しよう!
