![見出し画像](https://assets.st-note.com/production/uploads/images/154113869/rectangle_large_type_2_cf7f2bcc3e374253a10cd1422614e675.png?width=1200)
すごいログ分析ツール(TWSLA)の改善:relation/heatmapコマンドを追加した
今朝は3時に、自力でスッキリ起きられました。昨日の夜に助手の猫さんに「夜中に起こすのは、勘弁してください」とお願いしておいた効果があったようです。ぐっすり寝たので開発も快調です。タイトルの写真は、昨日の月です。私の部屋のベランダから撮影したものです。夕方、少し涼しくなったので撮影可能になりました。
さて、すごいログ分析ツールの改善計画
![](https://assets.st-note.com/img/1726176621-uzon4FaDhA0wUTNJSy2ep1L3.png?width=1200)
もいっきに進んで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
のコマンドでカラー表示すると
![](https://assets.st-note.com/img/1726177031-OJonHiRrj5M2qA8IekcfszXy.png?width=1200)
のようなにユーザーIDとアクセス元のIPが見やすくなります。カラー表示は、昨日作ったものです。
この2つの項目で集計するのが、relationコマンドです。
$twsla relation "regex/user\s+\S+\s+/" ip -f Fail -r telecomadmin
で集計すれば、
![](https://assets.st-note.com/img/1726177307-Jg7jpTYdAIhwc4XoRyq9PFB3.png?width=1200)
のようになります。これを有指向グラフで表示すれば、
![](https://assets.st-note.com/img/1726177390-zWUluj2t5VD8sfmn4bSEZF9J.png?width=1200)
のようになります。Saveの出力ファイルの拡張子をhtmlにすれば、go-echartsの使って保存できます。
カラー表示したログを目視でアクセス元IPを調べると、見落としがあるかもしれません。私のような年だと記憶力が低下しているのでよけい大変です。このコマンドで一発解決です。
heatmapコマンド
このコマンドは、ログの件数を曜日や日付毎に、時間帯別に集計します。
曜日で集計すると
![](https://assets.st-note.com/img/1726177585-lkeI258ai3UduS9jFNQVxPgX.png?width=1200)
のようになります。日曜の0時台には、3443件のログがあったということです。これをグラフにすれば
![](https://assets.st-note.com/img/1726177647-k8rF9ijdsVYNSGZynPJhObR3.png?width=1200)
火曜日と水曜日の3時、4時が多いというのがわかります。
日付で集計すると
![](https://assets.st-note.com/img/1726177711-3oVJzjbUaDcGKxkeMTOsm01q.png?width=1200)
です。グラフにすると
![](https://assets.st-note.com/img/1726177730-WzklEZxM6fdKgLHaFXPCymcA.png?width=1200)
ログが抜けているののがわかります。フィルターをかけて特定のログが多い時間帯を調べることもできます。
コマンドの実装はできたので次は、リリースの自動化に挑戦します。
明日に続く
いいなと思ったら応援しよう!
![twsnmp](https://assets.st-note.com/production/uploads/images/14333815/profile_ee1accba5615957e5029db85d57fdb0a.jpg?width=600&crop=1:1,smart)