В этой теме мы поговорим о пошаговой настройке и настройке проекта и сервера с помощью бандла.
Pinba-движок + пинборд + Джанго-Пинба , для сбора и визуализации статистики проектов Django. Все проекты бесплатны, а их исходный код доступен на GitHub под лицензиями GPL или MIT.
Почему пинба?
В команде есть проекты, написанные на PHP. Посещаемость проектов достаточно высока (более 200 тыс.).
Есть много узких мест. Часто после каких-либо обновлений и нововведений мы получали огромные тормоза, о которых не сразу узнавали.
Нам нужно было решение, которое было бы лицом к лицу с заказчиком и программистом.
Загрузчик очень не любит zabbix и munin. Решение найдено.
Заказчику понравилось.
Он попросил прикрепить пинбу ко всем проектам, работающим на django.
Идти
Установка состоит из нескольких частей: 1. Установка pinba-engine-mysql в качестве сервера мониторинга (в Debian GNU/Linux) 2. Установка пинборда для просмотра текущего статуса проекта 3. Установка батареи django-pinba для отправки статистики1. Установка pinba-engine-mysql в качестве сервера мониторинга (в Debian GNU/Linux)
1.1. Подключаем дополнительный репозиторий, от автора проекта pinba:1.2. Установите MySQL и Pinba-Engine:# 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
# 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 {
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
Желательно не вести статистику на том же сервере, что и проект.
Заключение
Теперь вы можете открыть наш сайт в окне браузера, подождать некоторое время, указанное в кронтабе для пинборда, и полюбоваться красивыми графиками.
Нагрузку для теста можно создать с помощью утилиты ab или wget.
Интерфейс выглядит следующим образом:
Теги: #django #мониторинг #Pinba #pynba #django
-
Будущее Видеоигр
19 Oct, 24 -
Часы Nike Преподнесут Много Сюрпризов
19 Oct, 24 -
Как Проверить Фрилансера На Вшивость?
19 Oct, 24