Linux上のNginxアクセスログから最も頻繁にアクセスする IPを抽出する方法

Linux上のNginxアクセスログから最も頻繁にアクセスする IPを抽出する方法 テクノロジー
Linux上のNginxアクセスログから最も頻繁にアクセスする IPを抽出する方法

いわゆる生ログからIPを抽出したり、ログを特定したりするときの方法を備忘録的に書きます。

  1. 最もアクセスの多いIPを抽出
  2. 最もアクセスの多いIPを10位まで抽出
  3. 特定URLを除いた最もアクセスの多いIPを抽出
  4. 特定URLを除いた最もアクセスの多いIPを10位まで抽出
  5. 指定IPのログ抽出
  6. 指定IPの特定URLを除いたログ抽出

合計で6つのシナリオを順次に説明していきます。

最もアクセスの多いIPを抽出

うちは管理画面でも簡易なアクセス数を表示しているのですが、異様に多い日は、まず最もアクセスの多いIPを特定し抽出します。

これで最もアクセスの多いIPを抽出できるのですが、どうも悪さをしているのは1つではないという時は、10位まで抽出します。

最もアクセスの多いIPを10位まで抽出

10位まで抽出するには

head -n 1 を head -n 10 にするだけです。

同じ要領で30位までとかもできます。

特定URLを除いた最もアクセスの多いIPを抽出

一方で、うちのサイトの構造上、ユーザが「メッセージ画面」を開いたままにすると、メッセージ画面というログが大量に生まれますので、そのページを除く必要があります。

こうすれば、除外URLへのアクセスを除いて、最もアクセスの多いIPだけを抽出することができます。

特定URLを除いた最もアクセスの多いIPを10位まで抽出

先ほど同じ要領で、

head -n 10 にすれば、10位まで特定することができます。

指定IPのログ抽出

問題児を特定したところで、今度は、「一体どこにアクセスしているのか」を特定するために、

で当該IPをアクセスログを全部抽出します。

指定IPの特定URLを除いたログ抽出

しかし、先ほども伝えたように、ユーザが「メッセージ画面」を開いたままにすると、メッセージ画面というログが大量に生まれますので、

このように除外して、「一体どこにアクセスしているのか」を特定します。

これを3位ないし5位まで行えれば、状況の把握とともに問題を特定することができます。

タイトルとURLをコピーしました