Debian GNU / LinuxでPinbaを使用してDjangoプロジェクトの統計情報を監視する

このトピックでは、 pinba-engine + pinboard + django-pinbaバンドルを使用してDjangoのプロジェクト統計を収集および視覚化する、プロジェクトとサーバーの段階的なセットアップと構成について説明します。

すべてのプロジェクトは無料で、ソースコードはGPLまたはMITライセンスの下でGitHubで入手できます。

なぜピンバ?


チームには、phpで作成されたプロジェクトがあります。 プロジェクトへの参加者は非常に多い(20万人以上)。 非常に多くのボトルネックがあります。 多くの場合、更新や技術革新の後、私たちは巨大なブレーキを受け取りましたが、すぐには知りませんでした。 顧客とプログラマーに向けたソリューションが必要でした。 ダウンローダーはzabbixとmuninが本当に好きではありません。 解決策がありました。 ピンボードピンバでした 。 顧客はそれが好きだった。 彼はジャンゴでスピンしているすべてのプロジェクトにピンバをねじ込むように頼みました。

行こう


セットアップはいくつかの部分で構成されています。
1.監視サーバーとしてpinba-engine-mysqlをインストール(Debian GNU / Linux上)
2.ピンボードをインストールして、プロジェクトの現在のステータスを表示します
3.統計を送信するためのdjango-pinbaバッテリーの取り付け

1.監視サーバーとしてpinba-engine-mysqlをインストール(Debian GNU / Linux上)


1.1。 pinbaプロジェクトの作成者からの追加のリポジトリを接続します。
# echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list && echo "deb-src http://php53.dotdeb.org stable all" >> /etc/apt/sources.list # gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 | sudo apt-key add - # apt-get update && apt-get upgrade -y 

1.2。 MySQLとPinba-Engineをインストールします。
 # apt-get install dialog mysql-server -y # apt-get install pinba-engine-mysql-5.5 -y 

1.3。 pinba-engine-mysqlが必要なポートでリッスンしているかどうかを確認します。
 # netstat -uln|grep :30002 

2.ピンボードをインストールして、プロジェクトの現在のステータスを表示します


2.1。 必要な依存関係をすべてインストールします。
 # apt-get install git-core nginx php5-fpm curl php-apc php5-cli php5-mysqlnd vim -y 

2.2。 プロジェクトのクローンを作成し、必要なパッケージをプルアップします。
 # cd /var/www/ && git clone git://github.com/intaro/pinboard.git && cd ./pinboard # git checkout v1.0 # curl -sS https://getcomposer.org/installer | php && php composer.phar install # cp config/parameters.yml.dist config/parameters.yml 

2.3。 データベース接続設定を構成します。
 # vim config/parameters.yml 

2.4。 クラウンのタスクを移行および登録します。
 # ./console migrations:migrate # ./console register-crontab 

2.5。 nginx仮想ホストを構成します。
 # touch /etc/nginx/sites-available/pinba.conf && ln -s /etc/nginx/sites-available/pinba.conf /etc/nginx/sites-enabled/ && vim /etc/nginx/sites-enabled/pinba.conf 

2.6。 仮想ホスト構成を挿入し、必要なserver_nameを指定します。
 server { listen 80; server_name pinboard.example.com; root /var/www/pinboard/web; location = / { try_files @site @site; } location / { try_files $uri $uri/ @site; } location ~ \.php$ { return 404; } location @site { fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/index.php; fastcgi_param HTTPS $https if_not_empty; } location ~ /\.(ht|svn|git) { deny all; } } 

2.7。 nginxデーモンの再起動:
 # /etc/init.d/nginx restart 

2.8。 php.iniにタイムゾーン構成を追加します。
 # sed -i 's/;date.timezone =/date.timezone = Europe\/Moscow/g' /etc/php5/cli/php.ini /etc/php5/fpm/php.ini 

2.9。 クラウンで指定されたスクリプトの動作を確認します。
 # /var/www/pinboard/console aggregate 

スクリプトがエラーなくジョブを実行した場合、すべてが正常に機能します。 これでピンボードのセットアップが完了しました。

3.統計を送信するためのdjango-pinbaバッテリーの取り付け


3.1。 バッテリーを取り付けます。
 $ pip install django-pinba 

3.2。 settings.py設定ファイルを開き、django-pinbaをMIDDLEWARE_CLASSESに追加します。
 MIDDLEWARE_CLASSES = ( 'pinba.middleware.PinbaMiddleware', ... ) 

3.3。 pinba-engineを使用してサーバーの設定を指定します。
 PINBA_SERVER = '192.168.55.11' PINBA_PORT = 30002 PINBA_ENABLED = True 

プロジェクトと同じサーバーに統計を保持しないことをお勧めします。

おわりに


これで、ブラウザウィンドウでサイトを開き、しばらく待って(ピンボードのcrontabで指示された)、美しいグラフィックを楽しむことができます。 テストの負荷は、abまたはwgetユーティリティを使用して作成できます。

インターフェイスは次のとおりです。
画像

Source: https://habr.com/ru/post/J200128/


All Articles