ウェブサイト検索

Apache Web サーバーにアクセスする上位 10 の IP アドレスを見つける


インターネットなどのオープン ネットワークまたはパブリック ネットワークからアクセスできる Web サーバーを実行する場合、サーバーへのアクセスを監視することは常にシステム管理の推奨事項です。

Web サーバーへのアクセスを監視する際の利点の 1 つは、サーバー内で発生するすべてのアクセス アクティビティに関する情報を保存するアクセス ログ ファイルの存在です。

ログ ファイルの操作は常に非常に重要です。ログ ファイルにより、システムまたはアプリケーション (この場合は Apache Web サーバー) 内で起こったすべてのことがわかるからです。パフォーマンスまたはアクセス関連の問題が発生した場合、ログ ファイルは、何が問題なのか、何が起こっているのかを指摘するのに役立ちます。

Linux でのログ管理について詳しくは、Linux 向けの 4 つのベスト ログ管理ツールをご覧ください。

この記事では、Apache Web サーバーにアクセスしている上位 10 の IP アドレスを見つける方法を見ていきます。

Apache Web サーバー ログのデフォルトのパスは次のとおりです。

/var/log/http/access_log      [For RedHat based systems]
/var/log/apache2/access.log   [For Debian based systems]
/var/log/http-access.log      [For FreeBSD]

ドメインの Apache Web サーバーにアクセスしている上位 10 の IP アドレスを確認するには、次のコマンドを実行するだけです。

awk '{ print $1}' access.log.2016-05-08 | sort | uniq -c | sort -nr | head -n 10
サンプル出力
5482 103.28.37.178
5356 66.249.78.168
1977 66.249.93.145
1962 157.55.39.251
1924 66.249.93.142
1921 66.249.93.148
1890 64.233.173.178
1860 108.61.183.134
1841 64.233.173.182
1582 157.55.39.251

上記のコマンドでは次のようになります。

  1. awkaccess.log.2016-05-08 ファイルを出力します。
  2. sortaccess.log.2016-05-08 ファイル内の行を並べ替えるのに役立ちます。-n オプションは数値に基づいて行を比較します。文字列の値と -r オプションを使用すると、比較の結果が逆になります。
  3. uniq – 繰り返し行のレポートに役立ち、-c オプションは出現回数に応じて行にプレフィックスを付けるのに役立ちます。

Linux で awk コマンドを使用する方法について詳しくは、こちらをご覧ください。

まとめ

これを達成するために使用できる方法はたくさんあります。より良い方法を知っている場合は、コメントで共有してください。また、提案や質問がある場合は、下のコメントセクションに忘れずにコメントを残してください。一緒に議論します。この記事がお役に立てば幸いです。また、常に Tecmint とのつながりを保つことを忘れないでください。