создание collectd python freeradius плагина

Все мы любим мониторинг, особенно, когда он предоставляет полную информацию о сервисах. Так получилось, что на работе мы используем Graphite, а метрики в него засылаем с помощью collectd. Иногда предоставленной функциональности collectd не хватает, и тогда на выручку приходят готовые плагины с гитхаба или самописные костыли. Сейчас я на примере простого плагина для сбора метрик freeradius расскажу как написать python плагин для collectd. Для начала, определим конфиг плагина, например, в конфиге мы укажем, какой тип статистики мы будем собирать (не забудьте настроить радиус отображать статус), порт freeradius и пароль для подключения.

тестирование python приложения в docker

В этой статье речь пойдет о том, как я тестирую свой python код внутри docker контейнера с Alpine Linux. Для тех, кто не знает, что такое docker, поясню, что это инструмент для управления контейнерами, который использует «слоёные» файловые системы и написан на Go. Для меня основное преимущество docker перед привычной виртуализацией, например Qemu/KVM, в его легковесности. За счет AuFS/OverlayFS базовый образ системы и контейнер занимают до нескольких сотен мегабайт, а новые контейнеры используют тот же образ, что и старые, что позволяет экономить еще больше места.

смотрим фильмы с компьютера на TV

Новогодние праздники, полторы недели выходных, новый телевизор с wifi, ethernet и выходом в интернет. Естественно, мне стало интересно, как подружить мой домашний сервер на линуксе (старый писюк) с телевизором, чтоб невозбранно смотреть фильмы в высоком качестве на большом экране. Если вам это тоже интересно, тогда читайте дальше.

как собрать deb пакет

Постараюсь как можно доступнее изложить процесс создания deb пакетов на примере ruby-zookeper. Предупреждаю сразу, что описанный мной метод пакетирования ruby gems неправильный, лучше использовать gem2deb для этого, но т.к. из исходников с помощью gem2deb собрать ruby-zookeper последней версии у меня не получилось, то вот самый простой метод сборки.

mercurial server hooks

Понадобилось сделать mercurial hook для проверки json файлов на валидность. К сожалению, документация mercurial оставляет желать лучшего, поэтому напишу, как я реализовал эту задачу.

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

Для начала, напишем сам hook. Было решено написать его на python.

повседневное использование mercurial

Я являюсь сторонником системы контроля версий Git, но на работе приходится использовать Mercurial он же hg. При переключении с git на hg некоторые вещи кажутся неочевидными. Хочу изложить свои ежедневные незамысловатые действия при работе c mercurial. После того, как вы изменили файлы, я настоятельно рекомендую сделать перед коммитом hg pull -u Mercurial (далее hg) почему-то не умеет fast-forward, как git, и если кто-то менял какие-то файлы до вас, которые вы даже не трогали, то если вы закоммитите, а потом попробуете запушить изменения при устаревшей копии репозитория, то hg откажется пушить, ссылаясь на то, что вы создаете новый head.

как включить логирование sftp

Я постараюсь тезисно изложить информацию о настройке логирования действий sftp пользователей для rsyslog. Если вы используете Debian подобные ОС (Ubuntu, Mint), то статья как раз для вас. Для начала, представим, что у вас уже есть sftp пользователь vpupkin с чрутом в /storage. Вот его секция в изначальном виде /etc/ssh/sshd_config Match user vpupkin ChrootDirectory /storage ForceCommand internal-sftp Все работает, логи по умолчанию у вас пишутся в /var/log/auth.log, но вдруг вы захотели писать логи для вашего пользователя в отдельный файл, что делать?

как узнать java heap memory size

Для вычисления необходимого размера кучи (heap) мы воспользуемся опцией -XX:+PrintFlagsFinal. В Java размер изначального (initial) и максимального (maximum) размера кучи (heap) выделяется по эргономическому алгоритму, дополнительно ссылки для java 7 и для java 8. Если коротко то все это расчитывается по следующей формуле: Изначальный размер кучи (initial heap size) Соотношение 1⁄64 от количества физической памяти на 1GB Максимальный разер кучи (maximum heap size) Соотношение 1⁄4 от количества физической памяти на 1GB

linux на ноутбуке dell xps 13

Моему рабочему ноутбуку Toshiba Satellite исполнилось пять лет и я решил обновить его. Критерии выбора были такие: автономность около 8 часов, небольшой размер — 13-14 дюймов и небольшой вес, хороший дисплей с разрешением FullHD и больше, RAM не меньше 8ГБ, SSD или возможность его поставить. Под эти критерии попали всего две модели MacBook Pro Retina 13 и Dell XPS 13 (9343) 2015 года. Т.к. я не фанат Apple, то решил взять Dell.

puppet модули в отдельных репозиториях

Современная инфраструктура немыслима без автоматизации. Практически никто уже не настраивает сервера вручную, не вносит правки непосредственно в конфиги. Мир инфраструктуры заполонили системы управления конфигурациями, такие как puppet, saltstack, chef, ansible и пр. Каждый хипстер-программист обязан написать свою собственную систему управления конфигурациями. Но не будем о велосипедостроении, посмотрим на недостатки таких систем глазами пользователей. В данной статье я хочу затронуть проблему сваливания всего puppet кода в один большой репозиторий, где копошатся несколько людей, привнося свою лепту в общий процесс энтропии.