サイト分析における突然の「その他トラフィック」への対処法

皆さん、こんにちは。

最近、フォーラムのコミュニティ健全性ページ(Discourse管理ダッシュボード → レポート → コミュニティ健全性)で「その他のトラフィック」が急増していることに気づきました。

詳細は以下の通りです。

  • 期間:2025年8月上旬頃
  • 日次トラフィック:「その他のトラフィック」が1日あたり10万件以上に急増
  • 例:2025年8月16日
  • ログイン済みページビュー:12,531
  • 匿名ページビュー:2,753
  • 既知のクローラー:6,865
  • その他のトラフィック:102,054(合計124kの大部分を占める)

この「その他のトラフィック」は異常に多く、実際のユーザーアクティビティよりもはるかに高いようです。サインアップ数は安定しているので、実際の成長ではないように見えます。

質問は以下の通りです。

  1. Discourseにおける「その他のトラフィック」とは、通常何を意味しますか?
  2. これはボット、スパム、または設定ミスのあるリバースプロキシ/CDNの可能性がありますか?
  3. このトラフィックを削減またはフィルタリングするにはどうすればよいですか?(例:Nginx、ファイアウォール、Discourseの設定)
  4. 無視しても安全ですか、それともパフォーマンス/コストに影響しますか?

このようなサードパーティ/ボットトラフィックを適切に処理するための提案やベストプラクティスがあれば、非常に役立ちます。

よろしくお願いします。

「いいね!」 1

「その他のトラフィック」は、ボットまたはクローラーである可能性が高いです。詳細はこちらをご覧ください: Understanding pageviews and the site traffic report

ダッシュボードでクローラーレポートを確認して、原因を特定し、必要であれば速度を落としたりブロックしたりすることができます。その方法に関する詳細は、こちらをご覧ください: Controlling Web Crawlers For a Site

「いいね!」 2

シンガポールからの大量のリクエストで7月に問題が発生しました。IP範囲をブロックしたところ、一時的に効果がありましたが、8月には問題がより深刻化しました(シンガポール、香港、メキシコから)。CDNのコストも高く、予期せぬものとなりました :face_with_steam_from_nose:

Amazonbot、DataForSeoBot、meta-externalagent、SeekportBotなどからの高いページビューに気づきました…

このドキュメント Controlling Web Crawlers For a Site には次のように書かれています。

このリストには、私の最も訪問数の多いボットの一部は含まれていませんが、それでも質問があります。
ブロックされたクローラーユーザーエージェント設定にこのリスト全体を追加することは推奨されますか?
.txtファイルからボット名を一括追加する方法はありますか?

「いいね!」 1
  1. クローラーはサイトを検索エンジンにインデックス付けする目的でアクセスしてくるため、それらからのトラフィックの増加は最小限に抑えられるはずです。ただし、クローラーを装ったボットの場合は例外です。多くのフォーラムではクローラーによるインデックス付けを望んでおらず、それを防ぐためのオプションがここにあります。クローラーは送信元を示すID/参照情報を持ちますが、ここではクローリング(ああ、奇妙な言葉ですね :slight_smile: )を許可する任意の名前を追加できます。

  2. トラフィック増加の最も可能性の高い原因はボットであり、サーバーのログを確認する必要があります。Linuxの基本的な知識しかない人がいれば、評判の悪いボットがいる国をブロックするための2分でセットアップできるツールをお勧めします(オンラインで簡単に見つけられるはずです)。セットアップ後も、その国に休暇で滞在しているコミュニティメンバーにはVPNが必要になる可能性があることを知らせておくのが良いでしょう。このツールは効率的で、サーバーへの不要なリクエストを80〜90%削減します。2つのモードがあり、どちらかを選択する必要があります:許可する国、または禁止する国。

    GitHub - friendly-bits/geoip-shell: User-friendly and versatile geoblocker for Linux

  3. Geo Blocking plugin も使用できますが、これはページビューのみをブロックし、上記のツールのようにサーバーへの直接リクエストはブロックしません。

「いいね!」 1

まあ、ボットは anyway CDN 帯域幅を消費するので、これで問題は解決しないと思います。

「いいね!」 1

本当にそう確信していますか?もしそうなら、すぐにリバースプロキシを使い始めます。

編集

AIも同じことを言っていました。したがって、リバースプロキシを使用します。

AIの回答

DiscourseのGeoBlockプラグインは、MaxMindDBデータベースを使用して、IPアドレスに基づいてユーザーの国またはネットワーク(ASN)を特定しますが、実際のブロックはアプリケーションレベル(Discourseアプリ内)で行われ、サーバーまたはネットワーク/ファイアウォールレベルではありません。

実際には:

  • 訪問者のIPがブロックされた国またはネットワークと一致する場合、Discourseアプリケーションはフォーラムコンテンツの代わりにエラーページを訪問者に返します。
  • ブロッキングは、HTTPリクエストがDiscourseアプリケーションに到達するまで発生しません。つまり、ユーザーがブロックされる前に、リクエストはWebサーバー(例:nginx)やDockerコンテナを通過し、Discourseソフトウェアに到達します。
  • このため、ユーザーが最終的にDiscourseによってブロックされたとしても、これらのリクエストはサーバーおよびプロキシ/nginxのログに表示されます。
  • 「ハード」ブロック(リクエストがDiscourseアプリに到達する前にアクセスを防止する)が必要な場合は、サーバーレベルのGeoIPソリューション(nginx/iptablesレベルのブロックや外部ツールなど)が必要になります。

ソースと詳細情報:

概要:
Discourse GeoBlockプラグインは、ネットワーク/サーバーレベルでリクエストをブロックするのではなく、Discourseアプリケーションがリクエストを処理した後にのみブロックします。アプリケーションがリクエストを確認する前にアクセスを防止する必要がある場合は、サーバーレベルのGeoIPアプローチを使用する必要があります。

共有会話は使用しませんでした。フィンランド語で質問したため、おそらく皆さんは理解できないと思ったからです :winking_face_with_tongue:

「いいね!」 1

これは、ページがサーバーに到達していることを意味するため、ファイアウォールレベルでのブロックよりもサーバーに近いレイヤーにいることになります。ただし、それがリバースプロキシを必要とするセキュリティ上の問題であるという意味ではありません。

私が提案したツールはすでにリクエストが80%削減されており、Discourseは安全なアプリです。もしサーバーでウェブサイトのような他のものをホストしている場合は、リバースプロキシが役立つかもしれませんが、その間には、Crowdsecのような評判の悪いIPをブロックする他のソリューションがあります。AIにCrowdsec lightについて尋ねてみてください :wink:

「いいね!」 2

(ジオブロッキングプラグインの作者です)
はい、ジオブロッキングプラグインはアプリケーションレベルでリクエストを停止しますが、それは非常に早い段階で行われます。その理由は、ユーザーフレンドリーなエラーページを表示するように設計されているため、Discourseのアセットをロードしてそのページを表示できる必要があるからです。また、設定されていれば、ブロックされたすべてのブロックを /logs に記録します。

このアプローチのその他の利点は、Discourse内でブロックされた国やネットワークを設定できること、そしてアクセスをブロックするだけでなくモデレーションを強制できることです。

ログの増加やCDN帯域幅の消費が気になる場合は、このプラグインはあなた向けではありませんが、正直なところ、これら2つのことはあまり重要ではないと思います。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.