Установка и настройка Graphite и Statsd на Ubuntu 12.04

Graphite и Statsd – очень удобные средства визуализации данных. Statsd – это агрегатор статистики, собирающий данные о запущенных процессах; Graphite – это графическая библиотека, предназначенная для визуализации собранных данных.

Данное руководство поможет установить эти инструменты на виртуальный выделенный сервер Ubuntu 12.04.

Установка Graphite

Библиотека Graphite зависима от многих программ. Нужно установить её зависимости, а также пакеты веб-сервера (для доступа к веб-интерфейсу).

Обновите пакеты системы:

sudo apt-get update
sudo apt-get upgrade

А затем установите необходимые программы:

sudo apt-get install --assume-yes apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 build-essential python3.2 python-dev libpython3.2 python3-minimal libapache2-mod-wsgi libaprutil1-ldap memcached python-cairo-dev python-django python-ldap python-memcache python-pysqlite2 sqlite3 erlang-os-mon erlang-snmp rabbitmq-server bzr expect libapache2-mod-python python-setuptools

При помощи утилиты easy_install из python-setuptool нужно установить ещё несколько важных компонентов python:

sudo easy_install django-tagging zope.interface twisted txamqp

После этого можно загрузить компоненты Graphite с сайта проекта. Carbon – это агрегатор данных, whisper – это библиотека баз данных.

cd ~
wget https://launchpad.net/graphite/0.9/0.9.10/+download/graphite-web-0.9.10.tar.gz
wget https://launchpad.net/graphite/0.9/0.9.10/+download/carbon-0.9.10.tar.gz
wget https://launchpad.net/graphite/0.9/0.9.10/+download/whisper-0.9.10.tar.gz

Чтобы разархивировать загруженные пакеты, используйте:

find *.tar.gz -exec tar -zxvf '{}' \;

Откройте каталог whisper и установите эту библиотеку:

cd whisper*
sudo python setup.py install

Затем установите carbon:

cd ../carbon*
sudo python setup.py install

После этого откройте каталог Graphite и проверьте зависимости. Вы должны получить извещение о том, что все зависимости установлены:

cd ../graphite*
sudo python check-dependencies.py
All necessary dependencies are met.
All optional dependencies are met.

Теперь можно переходить к установке Graphite:

sudo python setup.py install

Настройка Graphite

Откройте каталог настроек Graphite и скопируйте конфигурационные файлы:

cd /opt/graphite/conf
sudo cp carbon.conf.example carbon.conf

Создайте файл:

sudo nano storage-schemas.conf

Скопируйте в него следующие данные:

[stats] priority = 110
pattern = .*
retentions = 10:2160,60:10080,600:262974

Сохраните и закройте файл.

После этого нужно настроить БД Graphite. Откройте каталог Graphite и запустите скрипт БД.

cd /opt/graphite/webapp/graphite/
sudo python manage.py syncdb

Программа предложит создать суперпользователя; введите yes и следуйте инструкциям скрипта.

Скопируйте образец конфигурационного файла БД local_settings:

sudo cp local_settings.py.example local_settings.py

Настройка Apache

Теперь нужно настроить Apache для поддержки контента Graphite.

Скопируйте конфигурационные файлы:

sudo cp ~/graphite*/examples/example-graphite-vhost.conf /etc/apache2/sites-available/default
sudo cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi

Передайте пользователю Apache право на каталог storage, чтобы веб-сервер имел право на запись в этих файлах:

sudo chown -R www-data:www-data /opt/graphite/storage

Создайте каталог для данных WSGI:

sudo mkdir -p /etc/httpd/wsgi

Отредактируйте ранее скопированный конфигурационный файл Apache:

sudo nano /etc/apache2/sites-available/default

В WSGISocketPrefix укажите только что созданный каталог. В ServerName укажите доменное имя или IP.

...
...
WSGISocketPrefix /etc/httpd/wsgi
<VirtualHost *:80>
ServerName Your.Domain.Name.Here
...
...

Сохраните и закройте файл.

Перезапустите Apache, чтобы обновить настройки:

sudo service apache2 restart

Установка и настройка statsd

Для работы statsd нужно установить node.js. Для этого установите набор python-software-properties, содержащий утилиту для загрузки PPA.

sudo apt-get install python-software-properties

После этого добавьте PPA для node.js:

sudo apt-add-repository ppa:chris-lea/node.js

Нажмите enter, чтобы подтвердить изменения в каталоге. Обновите список пакетов apt и установите node.js:

sudo apt-get update
sudo apt-get install nodejs

После этого нужно установить git.

sudo apt-get install git

Теперь можно установить statsd. Клонируйте репозиторий git в каталог дополнительного программного обеспечения:

cd /opt
sudo git clone git://github.com/etsy/statsd.git

Создайте конфигурационный файл для statsd в новом каталоге:

sudo nano /opt/statsd/localConfig.js

Скопируйте и вставьте в файл следующие данные:

{
graphitePort: 2003,
graphiteHost: "127.0.0.1",
port: 8125
}

Запуск сервисов

Запустите агрегатор данных carbon, который будет отправлять данные:

sudo /opt/graphite/bin/carbon-cache.py start

Откройте каталог statsd и запустите файлы при помощи команды node.js:

cd /opt/statsd
node ./stats.js ./localConfig.js
19 Jul 21:15:34 - reading config file: ./localConfig.js
19 Jul 21:15:34 - server is up

Вы получите извещение о запуске сервера statsd.

Результаты

Чтобы просмотреть графики, составленные на основе собранных данных, откройте в браузере домен или IP.

На экране появится пустое окно Graphite Composer. Слева вы увидите меню навигации; откройте в нём раздел Graphite, на экране появится много опций, открывающих доступ к различным наборам данных. Выберите какой-нибудь набор данных.

Чтобы получить график на основе этих данных, нужно изменить масштаб.

Чтобы настроить диапазон дат, выберите в Graphite Composer вторую иконку слева. Для начала задайте временной диапазон в несколько часов.

Затем откройте Graph Options → Line Mode → Connected Line, чтобы соединить точки данных.

Также можно выбрать Auto-Refresh, чтобы автоматически обновлять график при поступлении новых данных.

Обратите внимание: выбирая новый набор данных, вы добавляете данные в уже существующий график. Чтобы удалить ненужные наборы данных из графика, откройте Graph Data.

Tags: , , , ,

1 комментарий

Добавить комментарий для dev Отменить ответ