いしもち通信

お魚大好き人間の情報交換。旅先の思い出情報交換。
サーバー管理。学校でのAccess利用。PC関連情報。
社会問題。

続・ログの自動分析

2020-03-13 19:41:09 | Weblog

先の投稿で、例えば1時間前の(最新の1時間)のログだけ抽出する方法を説明しました。

Dos攻撃などに対しては、短時間のうちの異常なアクセスを検出して対応することが必要になります。
例えば、5分ごとに1分間に閾値を超えたアクセスを検出するような場合、時間を遡り繰り返しの処理が必要になります。プログラム的にはそう難しくはありませんが、先の1時間前を対象としたスクリプトを見直しスッキリしたもので対応しようと思いました。ただし、不等号が登場することはやむを得ません。時間単位なら等号(=)で00~59分までカバーできますが、分単位では等号(=)を使うと繰り返し処理にするしかありません。

今回、たった1行で分単位で遡ったログを抽出できる方法ができましたので備忘録として残しておきます。
対象ログはApacheのものにしますが何にでも応用は可能でしょう。

言語環境によっては月表示が異なりますので、LANG=Cをつけておきます。
コマンドラインから、次のように入力します。(例は10分前としています。実際には1行です。\で2行に表記)

LANG=C && awk '{if(substr($4,2,20)>=cftime){print $0}}'\
 cftime=`date --date "10min ago" "+%d/%b/%Y:%H:%M:%S"` /var/log/apache2/access.log

この例ではログ全体を表示しますが、必要なものを各自で変更してください。($0の部分)

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ログの自動分析2 | トップ | 続・ログの自動分析 補足 »
最新の画像もっと見る

コメントを投稿

Weblog」カテゴリの最新記事