Поиск по сайту:

Как настроить Collectd для сбора системных показателей для Graphite в Ubuntu 14.04


Введение

Сбор и визуализация данных — важный способ принятия обоснованных решений о ваших серверах и проектах.

В предыдущем руководстве мы обсуждали, как установить и настроить Graphite для визуализации данных на наших серверах. Однако у нас не было хорошего способа сбора или даже передачи данных в Graphite.

В этом руководстве мы обсудим установку и использование collectd, сборщика системной статистики, который может собирать и систематизировать метрики о вашем сервере и запущенных службах.

Мы покажем вам, как установить и настроить collectd для передачи данных в Graphite для рендеринга. Мы предполагаем, что у вас установлен и работает Graphite на сервере Ubuntu 14.04, как мы показали в последнем руководстве.

Установить сборку

Первое, что мы собираемся сделать, это установить collectd. Мы можем получить это из репозиториев по умолчанию.

Обновите локальный индекс пакетов, а затем установите, набрав:

sudo apt-get update
sudo apt-get install collectd collectd-utils

Это установит демон и вспомогательный интерфейс управления. Нам все еще нужно настроить его так, чтобы он знал, что собираемые данные нужно передавать в Graphite.

Настроить сбор

Начните с открытия файла конфигурации collectd в вашем редакторе с привилегиями root:

sudo nano /etc/collectd/collectd.conf

Первое, что мы должны установить, это имя хоста машины, на которой мы находимся. Collectd можно использовать для отправки информации на удаленный сервер Graphite, но в этом руководстве мы используем его на том же компьютере. Вы можете выбрать любое имя:

<пред>

Если у вас настроено реальное доменное имя, вы можете пропустить это и просто оставить FQDNLookup, чтобы сервер использовал систему DNS для получения правильного домена.

Вы можете заметить, что есть параметр «Интервал», который представляет собой интервал, который collectd ожидает перед запросом данных на хосте. По умолчанию он установлен на 10 секунд. Если вы следили за статьей Graphite, вы заметите, что это это обычный кратчайший интервал для Graphite для отслеживания статистики.Эти два значения должны совпадать для надежной записи данных.

Далее мы переходим непосредственно к сервисам, о которых Collectd будет собирать информацию. Collectd делает это с помощью плагинов. Большинство плагинов используются для считывания информации из системы, но плагины также используются для определения того, куда отправлять информацию. Graphite — один из таких плагинов для записи.

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

LoadPlugin apache
LoadPlugin cpu
LoadPlugin df
LoadPlugin entropy
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin rrdtool
LoadPlugin users
LoadPlugin write_graphite

Некоторым из них требуется настройка, а некоторые будут нормально работать «из коробки».

Продолжая движение вниз по файлу, мы попадаем в раздел конфигурации каждого плагина. Плагины настраиваются путем определения «блока» для каждого раздела конфигурации. Это чем-то похоже на то, как Apache разделяет директивы внутри блоков. Мы рассмотрим только некоторые из них, так как большинство наших плагинов будут работать нормально они есть.

Мы включили подключаемый модуль Apache, потому что у нас установлен Apache для обслуживания Graphite. Мы можем настроить плагин Apache с помощью простого раздела, который выглядит так:

<пред>

В производственной среде вы можете захотеть защитить статистику сервера за уровнем аутентификации. Вы можете посмотреть закомментированный код в этом разделе файла, чтобы увидеть, как это будет работать. Для простоты мы собираемся продемонстрировать открытую настройку, которая не аутентифицируется.

Вскоре мы создадим страницу server-status для Apache, которая предоставит нам необходимые сведения.

Для плагина df, который сообщает нам, насколько заполнены наши диски, мы можем добавить простую конфигурацию, которая выглядит следующим образом:

<пред>

Вы должны указать устройство на имя устройства диска в вашей системе. Узнать это можно, набрав в терминале команду:

<пред>

Выберите сетевой интерфейс, который вы хотите контролировать:

<пред>

Наконец, мы подошли к плагину Graphite. Это сообщит collectd, как подключиться к нашему экземпляру Graphite. Сделайте так, чтобы раздел выглядел примерно так:

<пред>

Это говорит нашему демону, как подключиться к Carbon, чтобы передать его данные. Мы указываем, что он должен обращаться к локальному компьютеру через порт 2003, который Carbon использует для прослушивания TCP-соединений.

Затем мы говорим ему использовать этот протокол для надежной передачи данных в Carbon. Мы говорим ему регистрировать ошибки об отключении, а затем устанавливаем префикс для данных. Поскольку мы заканчиваем это значение точкой, вся статистика collectd для этого хоста будет храниться в каталоге «collectd».

Ставки магазина определяют, будет ли статистика преобразована в датчики перед передачей. Строка источника данных append добавляет имя узла к нашим метрикам, если она включена. Управляющий символ определяет, как преобразуются определенные значения с точками, чтобы избежать разделения Carbon на каталоги.

Сохраните и закройте файл, когда закончите.

Настройте Apache для создания отчетов о статистике

В нашем файле конфигурации мы включили отслеживание статистики Apache. Нам все еще нужно настроить Apache, чтобы разрешить это.

В файле виртуальных хостов Apache, который мы включили для Graphite, мы можем добавить простой блок местоположения, который будет сообщать Apache о статистике.

Откройте файл в текстовом редакторе:

sudo nano /etc/apache2/sites-available/apache2-graphite.conf

Под блоком местоположения \content мы добавим еще один блок, чтобы Apache отображал статистику на странице /server-status. Добавьте следующий раздел:

<пред>

<span class="highlight">&lt;Location "/server-status"&gt;</span>
    <span class="highlight">SetHandler server-status</span>
    <span class="highlight">Require all granted</span>
<span class="highlight">&lt;/Location&gt;</span>

ErrorLog ${APACHE_LOG_DIR}/graphite-web_error.log

Сохраните и закройте файл, когда закончите.

Теперь мы можем перезагрузить Apache, чтобы получить доступ к новой статистике:

sudo service apache2 reload

Мы можем проверить, все ли работает правильно, посетив страницу в нашем веб-браузере. Нам просто нужно перейти к нашему домену, а затем /server-status:

<пред>

Вы должны увидеть страницу, которая выглядит примерно так:

Настройка схемы хранения и агрегации

Теперь, когда мы настроили collectd для сбора статистики о ваших сервисах, нам нужно настроить Graphite для правильной обработки получаемых данных.

Начнем с создания определения схемы хранения. Откройте файл конфигурации схемы хранилища:

sudo nano /etc/carbon/storage-schemas.conf

Внутри нам нужно добавить определение, которое будет определять, как долго хранится информация и насколько подробными должны быть данные на разных уровнях.

Мы скажем Graphite хранить собранную информацию с интервалом в десять секунд в течение одного дня, с интервалом в одну минуту в течение семи дней и с интервалом в десять минут в течение одного года.

Это даст нам хороший баланс между подробной информацией о недавней деятельности и общими тенденциями в долгосрочной перспективе. Collectd передает свои метрики, начиная со строки collectd, поэтому мы будем соответствовать этому шаблону.

Описанную нами политику можно добавить, добавив эти строки. Не забудьте добавить их над политикой по умолчанию, иначе они никогда не будут применяться:

[collectd]
pattern = ^collectd.*
retentions = 10s:1d,1m:7d,10m:1y

Сохраните и закройте файл, когда закончите.

Перезагрузите службы

Теперь, когда collectd настроен и Graphite знает, как обращаться с его данными, мы можем перезагрузить сервисы.

Сначала перезапустите службу Carbon. Рекомендуется использовать команду «стоп», а затем команду «старт» с интервалом в несколько секунд вместо команды «перезагрузка». Это гарантирует, что данные будут полностью сброшены перед перезапуском:

sudo service carbon-cache stop          ## wait a few seconds here
sudo service carbon-cache start

После того, как сервис Carbon снова заработает, мы можем сделать то же самое с collectd. Служба может быть еще не запущена, но это гарантирует правильную обработку данных:

sudo service collectd stop
sudo service collectd start

После этого вы можете снова посетить свой домен, и вы должны увидеть новое дерево с вашей информацией о сборе:

Заключение

Наша конфигурация collectd завершена, и наша статистика уже записывается! Теперь у нас есть демон, настроенный для отслеживания нашего сервера и служб.

Мы можем настроить или написать дополнительные плагины для collectd по мере необходимости. Дополнительные серверы с collectd также могут отправлять данные на наш сервер Graphite. Collectd в основном используется для сбора статистики об общих сервисах и ваших машинах в целом.

В следующей статье мы настроим StatsD, службу, которая может кэшировать данные перед их сбросом в Graphite. Это позволит нам обойти проблему потери данных при слишком быстрой отправке статистики, которую мы описали в предыдущей статье. Это также даст нам интерфейс для отслеживания статистики в наших собственных программах и проектах.

Джастин Эллингвуд