Ceph Object Gateway (RadosGW): performance monitoring (Zabbix)

Про доступные метрики производительности RadosGW(RGW) я писал отдельную заметку.
В этот раз я опишу как мы у себя собираем эти метрики в Zabbix.

Скрипт сбора метрик, user_parameters.conf и собственно шаблон для Zabbix — https://github.com/FATruden/rgw-monitoring

Читать дальше

Ceph Object Gateway (RadosGW): performance monitoring

RadosGW или RGW он же Ceph Object Gateway позволяет работать с хранилищем RADOS(он же Ceph) через REST API совместимый с S3 и Swift. RGW является прослойкой между пользователем использующим REST и хранилищем RADOS взаимодействие с которым осуществляется по алгоритму CRUSH.
У всех компонентов Ceph есть метрики позволяющие мониторить производительность и понимать, что происходит в кластере. У RGW тоже есть такие метрики и они нам сильно помогают понимать состояние системы в целом и находить проседающие места.

Читать дальше

dmesg: page allocation failure

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

Читать дальше

Случайные числа в Linux(RNG) или как «наполнить» /dev/random и /dev/urandom

Пожалуй всем пользователям Linux  известны такие файлы псевдо-устройств как /dev/random и /dev/urandom. Эти устройства являются интерфейсом к генератору случайных чисел ядра(RNG, random number generator).

Случайные числа(они же — не предсказуемый набор битов) очень важны в криптографии. Они являются базовыми кирпичиками для криптографических протоколов. От качества (неповторимости, не предсказуемости) этих чисел зависит стойкость всевозможных TLS-сертификатов, SSH и GPG ключей, сессионных симметричных TLS-ключей и т.д. Так же случайные числа являются основой для генерации UUID’ов, PID’ов, TCP sequence numbers и многого другого.

RNG генерит случайные числа  на основе данных из пула энтропии(entropy pool) в ядре Linux. Наполнением этого пула так же занимается RNG и делается это на основе случайных событий в системе таких как: тайминги клавиатуры и дисков, движения мыши, прерывания(interrupts), сетевой трафик.

Читать дальше

GELF, rsyslog and custom properties

Для централизованного сбора и обработки логов в нашей команде используется Graylog(v2.2.3).
Отправкой логов занимается rsyslog(7.4.7-12.el7).
Все сообщения со всех серверов отправляются в Graylog следующим правилом:

*.* @;RSYSLOG_SyslogProtocol23Format

Все прекрасно, но вкусив прелести фильтрации логов с помощью stream’ов graylog нам стало не достаточно стандартных полей rsyslog.

Читать дальше

Puppet. classes vs Defined resource types

Как то на днях мой коллега озадачил меня вопросом о разнице между классами puppet и defined resources(или defined types). Я задумался, но дать нормального ответа не смог. На первый взгляд эти сущности очень похожи. И class и defined type описывают внутри себя некую логику и набор ресурсов. И class и defined type могут быть параметризованы. Но, есть существенное различие в том как они вызываются.

Читать дальше

Управление группами серверов с помощью pdsh. pdsh-mod-genders

Если у вас есть группа серверов в которой есть деление по ролям(серверы выполняют различные функции) или например вы используете разные дистрибутивы под разные задачи то эта заметка будет вам очень полезна).
В проекте в котором я работаю, для массового управления группами серверов есть средства собственной разработки. Это очень удобно, когда у тебя например 100 серверов и тебе нужно выполнить какое то действие  на конкретных группах или на всех и ты можешь оперировать именами групп а не длинным списком из имен серверов.
Типичный кейс — запуск puppet-агента на всех серверах. Или например проверка версии некого пакета на всех серверах с CentOS 7.3.

Другая проблема которую решает данное средство — инвентаризация. Хочется иметь некий файл с описанием серверов их ролей и прочих атрибутов позволяющих понять предназначение серверов и управлять ими «массово».
Недавно я попал в среду, где было очень много серверов и совершенно отсутствовали средства их инвентаризации и тем более управления.

Когда нужно было сделать что то на паре серверов люди делали примерно так:

pdsh -w sd01,sd05,sd06 rpm -qa kernel

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

Читать дальше

Воскрешение заскучавшего бложека

Больше года прошло с момента как я сменил работу. С тех пор не строчки в бложек…:( И хотя есть куча интересного материала, времени на его публикацию попросту нет.
Писать статейки для samag я уже точно не буду. Это требует огромных временных затрат, да и уровень журнальных публикаций я уже перерос. По этому, будущие посты будут скорее всего краткими, без вылизанных фраз и кучи воды 😉 Тем самым, я надеюсь, смогу регулярно о чем то писать не тратя на это много времени.

Читать дальше

Власть над конфигурацией. Etckeeper и Git

Наверное каждый слышал о рекомендации выполнять резервное копирование конфигурационных файлов перед их редактированием. Так же бывают случаи когда обновление пакета или системы в целом приводит к перезаписи файлов с настройками в результате чего что то перестает работать. Если вам известны подобные проблемы то продукт etckeeper то что нужно.

Как это работает

В основе всего лежит система контроля версий — Concurrent Versions System (CVS). Так как /etc традиционно используется для хранения конфигурационных файлов, преимущественно текстовых, CVS здесь подходит как нельзя лучше. Но даже учитывая простоту использования современных систем версионного контроля они имеют тот же недостаток, что и резервное копирование конфигов в ручную. Администраторы попросту забывают или ленятся ими пользоваться будучи уверенными, что все пройдет гладко. По этому, я рекомендую поставить себе на вооружение маленькую но полезнейшую утилиту etckeeper которая будет это делать за вас.

Суть утилиты заключается в том, что бы автоматически делать резервное копирование состояния /etc до и после установки любых приложений а так же раз в сутки на всякий случай. В качестве хранилища, могут использоваться на выбор одна из нескольких CVS. Наиболее популярные из них это Bazaar и Git. В Ubuntu обычно по умолчанию используется первая а RHEL-подобных дистрибутивах в основном Git, хотя, это не принципиально.

Читать дальше

ZEN Load balancer — теория и практика балансировки нагрузки

load balancer

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

Читать дальше