dmesg time to real time

Наверное все видели как выглядят логи в кольцевом буфере ядра. Каждое событие в этом логе имеет timestamp в секундах. Timestump каждого события говорит нам на какой секунде работы системы произошло событие. На самом деле там кроме секунд указываются еще и наносекунды(после точки).

Типичный для меня случай. kdump обработал kernel panic, сдампил содержимое кольцевого буфера(по сути самые актуальные логи перед паникой) и отправил куда то лог и вот он у меня перед глазами. Теперь мне нужно понять в какое время происходили те или иные события а в логе тупа секунды с момента загрузки ядра и это не очень удобно. Читать дальше

Ceph: Настройка scrub и снижение его влияния на производительность

Обычно не пишу о том, что и так известно почти всем или если это хорошо освещено. Но недавно в одном популярном русскоязычном telegram-чате посвященном Ceph обсуждалась проблема scrubbing’а и я понял, что все таки знаю кое что, что еще не известно всем) Решил написать заметку посвященную данной теме.
Читать дальше

Чтобы письма не попадали в спам. Настройка почтовой инфраструктуры.

Я совсем не специалист по почтовым серверам и их настройке, но внезапно встала задача по организации такового для отправки почты от имени нескольких совершенно разных доменов.
Речь шла исключительно об отправке(без приема) и задача казалась мне совершенно простой. Как наивен я был…
Собственно данная заметка о том как в 2k18-ом нужно заморочиться, что бы письма отправляемые вашим почтовым сервером не отбрасывались на этапе доставки или не попадали в спам являясь при этом совершенно нормальными.

Тут не будет технических подробностей по настройке postfix, только описание организационных моментов и порядка настройки DNS. По большей части это заметка себе на память. Читать дальше

Про эффективность swap в Linux

Попалась на глазе интересная статья(перевод) про полезность swap в Linux и потенциальных проблемах его отключения: В защиту swap’а [в Linux]: распространенные заблуждения

Эта заметка чисто для себя, с целью фиксации основной мысли автора:

Есть анонимная память(Anonymous Memory) которую можно вытеснить на диск при низкой активности ее использования и высвободить тем самым место для файлового кеша(Page cache). Да, создаётся нагрузка на диск при сбросе в swap но при этом поднятый в память кеш, при активном его использовании может сильно снизить нагрузку на диск и повысить производительность системы в целом.

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

S3 Performance Test Tool

Неплохая утилита для тестирования производительности AWS S3 или S3 совместимого объектного хранилища типа Ceph.
Так же ее можно использовать для нагрузочных тестов имитируя различную нагрузку.

Код проекта: https://github.com/jenshadlich/S3-Performance-Test
Утилита написана на Java и если вам как и мне не хочется возиться с Java то есть готовый Docker image: https://hub.docker.com/r/javamaster/s3pt/ Только есть одна мелочь — образ не пригоден к использованию так как не один из примеров не работает(на дату статьи перепроверил и таки да, не работает ничего 🙁 )

Поэтому я любезно пересобрал утилиту и образ в котором в отличии от оригинала все работает 🙂 https://hub.docker.com/r/fatruden/s3pt/ Читать дальше

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. Читать дальше