見出し画像

すごいログ分析ツール(TWSLA)の改善:relation/heatmapコマンドを追加した

今朝は3時に、自力でスッキリ起きられました。昨日の夜に助手の猫さんに「夜中に起こすのは、勘弁してください」とお願いしておいた効果があったようです。ぐっすり寝たので開発も快調です。タイトルの写真は、昨日の月です。私の部屋のベランダから撮影したものです。夕方、少し涼しくなったので撮影可能になりました。

さて、すごいログ分析ツールの改善計画

もいっきに進んでgo-echarts 

でグラフを出力する機能の追加と、relation/heatmapコマンドの追加ができました。

relationコマンド

このコマンドは、ログの中の2つ以上の項目の関係を調べるためのものです。例えば、IPアドレスとMACアドレス、ユーザーIDとIPアドレスです。

SSHサーバーのログに

Dec 10 12:26:02 LabSZ sshd[30943]: Failed password for invalid user telecomadmin from 5.188.10.182
port 55255 ssh2

のようなログイン失敗が記録されていたとします。
これを

$twsla search -c "regex/user\s+\S+\s+/9,ip" -f Fail -r telecomadmin

のコマンドでカラー表示すると

のようなにユーザーIDとアクセス元のIPが見やすくなります。カラー表示は、昨日作ったものです。
この2つの項目で集計するのが、relationコマンドです。

$twsla relation "regex/user\s+\S+\s+/" ip -f Fail -r telecomadmin

で集計すれば、

のようになります。これを有指向グラフで表示すれば、

のようになります。Saveの出力ファイルの拡張子をhtmlにすれば、go-echartsの使って保存できます。

カラー表示したログを目視でアクセス元IPを調べると、見落としがあるかもしれません。私のような年だと記憶力が低下しているのでよけい大変です。このコマンドで一発解決です。

heatmapコマンド

このコマンドは、ログの件数を曜日や日付毎に、時間帯別に集計します。
曜日で集計すると

のようになります。日曜の0時台には、3443件のログがあったということです。これをグラフにすれば

火曜日と水曜日の3時、4時が多いというのがわかります。
日付で集計すると

です。グラフにすると

ログが抜けているののがわかります。フィルターをかけて特定のログが多い時間帯を調べることもできます。

コマンドの実装はできたので次は、リリースの自動化に挑戦します。

明日に続く

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

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