
コミュニティとの効果的なやり取りのために、多くの大規模な組織や企業は、古くからあるフォーラム形式を使用しています。 ソーシャルネットワークの一般的な形式とは異なり、フォーラムでは、より正確なデータ構造化、強力なツールを使用して情報を検索する機能、高度な評価とゲーミフィケーションシステムを使用する機能、モデレーションおよびスパム対策により、質的に異なるレベルでコミュニティを統合できます。
この記事の目的は、memcachedキャッシングと最も強力な検索エンジンElasticSearchを使用してフォーラムを展開するための最新の
XenForoエンジンのインストール手順を説明することです。 これらのサービスはDockerコンテナー内で実行され、Pleskインターフェースを介してデプロイおよび管理されます。
さらに、この記事では、データ分析のためにPleskのコンテキストで
Elastic Stack (ElasticSearch + Logstash + Kibana)を広く使用する問題に対処しています。 たとえば、フォーラムでの検索クエリの分析やサーバーログの分析。
PleskドメインでXenForoエンジンに基づいてフォーラムを展開することから始めましょう。
- Splashでドメインforum.domain.tldのサブスクリプションを作成します
- このドメインのPHP設定で、使用するPHPの最新バージョンを選択します。 たとえば、PHP 7.1.10
- ファイルマネージャーに移動し、サイトのhttpdocsディレクトリで、おそらくfavicon.icoファイルを除くすべてを削除します
- ファイルマネージャーとアップロードボタンを使用して、XenForo配布ファイルをhttpdocs zipディレクトリにアップロードします。 たとえば、xenforo_1.5.15a_332013BAC9_full.zip
- [ファイルの抽出]ボタンでファイルを解凍します。 アーカイブの内容がアップロードディレクトリに解凍されます。 入力してすべてを選択し、[移動]ボタンを使用してすべてをhttpdocsディレクトリに転送する必要があります。 その後、アップロードディレクトリとxenforo_1.5.15a_332013BAC9_full.zipアーカイブを削除できます。
- forum.domain.tldサブスクリプションで、[データベース]セクションに移動し、将来のフォーラム用のデータベースを作成します。 名前、ユーザー名、パスワードは弊社の裁量で設定されます。 このようなもの:

セキュリティのため、アクセス制御をローカル接続のみを許可するように設定することが重要です。 - フォーラムのインストールを開始します。 forum.domain.tldにアクセスします。 XenForoのインストールメニューが表示されます。 指示に従い、手順の1つで、作成されたデータベースの名前、そのユーザー名とパスワードを指定します。 次に、フォーラムの管理者アカウントを作成する必要があります。 インストールが正常に完了すると、フォーラムの管理パネルに入り、最終設定を行うことができます。
- フォーラムの作業を大幅に高速化するには、memcachedベースのキャッシュをフォーラムに接続し、Plesk Docker拡張機能の対応するdockerコンテナを使用します。 しかし、インストールする前に、サイトで使用されているバージョンのPHPのmemcachedモジュールをインストールする必要があります。
- Debian / Ubuntu Pleskサーバーの例を使用して、memcached PHPモジュールをコンパイルします。 必要なすべてのパッケージをインストールします。
モジュールをコンパイルします。
コンパイル済みモジュールをインストールします。
- インストールされたPlesk Docker拡張機能でmemcachedドッカーを見つけ、次の設定でインストールして実行します。

- その後、Pleskサーバーでポート11211を使用できるようになります。次のコマンドで操作性を確認できます。
- memcachedキャッシングをフォーラムに接続します。 これを行うには、ファイルマネージャーに移動し、コードエディターでファイルforum.domain.tld / httpdocs / library / config.phpを開きます。 最後に次の行を追加します。
$config['cache']['enabled'] = true; $config['cache']['frontend'] = 'Core'; $config['cache']['frontendOptions']['cache_id_prefix'] = 'xf_'; //Memcached $config['cache']['backend']='Libmemcached'; $config['cache']['backendOptions']=array( 'compression'=>false, 'servers' => array( array( 'host'=>'localhost', 'port'=>11211, ) ) );
- フォーラムが正しく機能していることを確認してください。 次のコマンドを使用して、接続されたキャッシュの動作を直接確認できます。
- XenForoベースのフォーラムに、強力な検索エンジンElasticSearchを接続できます。 これを行うには、XenForo Enhanced Searchおよびdocker container elasticsearchと呼ばれるXenForoプラグインをインストールする必要があります。 このDockerコンテナは、作業にかなりの量のメモリを必要とするため、サーバーには十分な量のメモリが必要です。 XenForo Enhanced Searchプラグインのインストールは、Plesk File Managerからzipファイルをダウンロードして解凍することでも実行できます。 XenForoプラグインのインストールの詳細は、関連ドキュメントに記載されています。 その結果、フォーラムの管理パネルで、ElasticSearch検索エンジンの次の設定を取得する必要があります。


- Plesk Docker拡張機能で検索を機能させるには、次の設定でelasticsearch dockerコンテナーをインストールする必要があります。

次のコマンドを使用して、ポート9200が接続用に開いていることを確認します。
- その後、フォーラム管理パネルで、ElasticSearchが接続されていることを確認し、検索インデックスを作成する必要があります。


- その結果、強力な検索エンジンと高速化されたmemcachedキャッシュを備えた最新のXenForoエンジンに関するフォーラムができました。 機会のさらなる改善と拡大として、Kibanaを使用してフォーラムで検索クエリの分析を使用できます。 これを行うには、別個のkibana Dockerコンテナー、または1つのelasticsearch + kibana dockerコンテナーと、XenForo Enhanced Searchプラグインのパッチを使用する必要があります。 たとえば、検索クエリで使用されるキーワードに関するこのような統計を取得するには:


- XenForo Enhanced Searchプラグインのバージョン1.1.6のパッチが適用されたファイルは、ElasticSearch.phpにあります。httpdocs > library> XenES> Search> SourceHandlerディレクトリの元のファイルを置き換える必要があります。 saved_quiries。Kibanaでの分析に使用する必要があります。
興味深いアプリケーションは、AleschおよびAbalst Webalizerの標準分析システムをKibanaのより効率的で柔軟な分析システムに置き換えることです。 vhostログをElasticSearchに送信するためのオプションがいくつかあります。 例:
- Elastic Stackの3番目のコンポーネント-Logstashを使用する
- rsyslogサービスとそれにインストールされたomelasticsearch.soプラグイン( yum install rsyslog-elasticsearch )を使用して、ログデータをElasticSearchに直接送信できます。 Logstashの形式で追加のリンクを必要としないため、これは非常にクールです。
ここまでの問題は、ElasticSearchにログを正しく保存し、Kibanaを解析するために、json形式である必要があることです。 vhostレベルでは、nginx log_formatパラメーターを変更することはできません。 可能なソリューションのオプションの1つとして、これは
Filebeatサービスを使用することです
。Filebeatサービスは、通常のnginx、Apache、またはその他のサービスログを取得し、必要な形式に解析してさらに提供します。 さらに、異なるサーバーからログを収集できます。 一般に、実験の分野は巨大なようです。
たとえば、rsyslogを使用すると、他のシステムログをElastic Searchに送信してKibana分析を行うことができ、これは非常に機能的です。 たとえば、構成ファイル/etc/rsyslog.d/syslogs.confを使用すると、rsyslogd
-dnコマンドで rsyslogサービスを実行した後、Logstash / Kibanaに便利な形式でローカルのsyslogログをElasticsearchに送信できます。
ElasticSearchインデックスlogstash-2017.10.10が正常に作成され、Kibanaで使用および分析できる状態になっていることがわかります。
その結果、必要なデータを使用してKibanaダッシュボードで作成し、そこから独自の視覚化を作成できます。 たとえば、このダッシュボードのようなもの:

また、nginx access.log分析の場合、何らかのダッシュボードを作成できます。

その結果、あらゆる種類の統計データを収集して分析する追加機能を備えた、コミュニティと連携するための最新のプラットフォームが得られます。
もちろん、この記事は一般的なものであり、推奨事項です。 セキュリティの問題など、多くの重要な側面については言及していません。方向を示し、考えられるシナリオとそれらを実装する方法を説明しています。 経験豊富な管理者は、自分で微調整の詳細を行うことができます。 Elastic Stackは、好みに応じて目的の結果を得ることができるツール、コンストラクターのようなものです。 将来的に作業したい、分析する必要がある必要かつ正しいデータを彼に提供することだけが重要です。