Обновить
0
Якубовский Юрий@yakubovskyread⁠-⁠only

Пользователь

Отправить сообщение

Collectd — Следим за системой с минимальными затратами. Настройка и использование нотификаций

Время на прочтение8 мин
Охват и читатели45K

Что это такое?


Collectd — это небольшой демон, который каждые 10 секунд собирает
статистку об использовании ресурсов системы. Есть возможность сбора
статистики для нескольких хостов и отсылка её на сервер, который
занимается отрисовкой красивых графиков.

Основное отличие этого сборщика в том, что он работает по принципу push, а не poll/pull. Т.е. он «висит» и слушает, а сервера ему сами статистику присылают.

Что мы будем делать?


Что я хочу описать в этом посте:
  • Установка.
  • Настройка общая.
  • Настройка отдельных плагинов.
  • Настройка slave серверов, которые будут слать нам на главный сервер свою статистику работы.
  • Настройка нотификаций по email.

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

О скраме, фокус-факторе и плюшках

Время на прочтение4 мин
Охват и читатели33K
Навеяно очередной прочитанной книгой по управлению проектами. Это «Scrum и XP: заметки с передовой» Хенрика Книберга.

Скрам – это круто и красиво. Особенно красиво (и, на мой взгляд, реально применимо только в этом случае), когда решены все инфраструктурные проблемы, когда усилия всей компании (а не только скрам-команды) направлены на выпуск качественного продукта вовремя и когда задача программистов – именно разрабатывать ПО (т. е. никто не будет выдёргивать разработчика «из потока» для выполнения фантастически несвойственных ему задач).

Одна из фраз из книги Книберга: «В качестве значения по умолчанию фокус-фактора для новых команд мы обычно используем 70 %». Под «фокус-фактором» понимается некий коэффициент, отражающий отношение производительности существующей команды к производительности «идеальной» команды программистов. А как насчет программистов, которым постоянно приходится отвлекаться на решение хозяйственных проблем, техподдержку (ввиду страшной недоукомплектованности из-за экономии хозяйственного и суппортерского отделов) и прочие ужасно снижающие фокус-фактор проблемы?

В другой книге («Человеческий фактор…» Тома Демарко и Тимоти Листера) написано, что в идеальном рабочем помещении для программиста должно быть по окну на каждого сотрудника (чтобы он мог более вдохновенно заниматься разработкой и потому, что мы работаем, чтобы жить, а вовсе не наоборот). А как насчёт комнат на 10-20 человек с двумя окнами каждая (выходящими на промпейзаж, куда и смотреть-то лишний раз не захочется)?

Обсудим отечественные реалии, которые убивают теорию уважаемых Демарко и Листера и практику не менее уважаемого Книберга на корню. Начнем с соцпакета.

Недавно разговаривал с коллегой – руководителем PMO из соседней программерской фирмы (PMO – это Project Management Office, само его наличие говорит о том, что фирма придерживается современных взглядов на управление проектами; у нас вот – классическая функциональная структура, в лучшем случае – слабая матрица, нам PMO не светит). Так вот, они в ближайшее время будут завозить в офис и давать сотрудникам неограниченно потреблять всякие перекусы и питьё: чипсы/орешки, печенье/булки, соки и т. п. Как сказал коллега: «Предположим, нашему программисту ближе к вечеру захотелось перекусить. И у него возникает сложная дилемма: уйти поесть или поработать всё-таки еще пару часов. Плюшки в офисе склонят его в пользу поработать». А действительно, рассмотрим дилемму повнимательнее. Итак, таблица (цифры взяты «с потолка», но я в них почти уверен):
Читать дальше →

Как из болота вытягивать ITшника или об общении в стрессовых ситуациях

Время на прочтение21 мин
Охват и читатели276K

Неприятности случаются… Неожиданно плохой фидбек, проблемы с заказчиком или коллегами, не повысили зарплату, странные баги, внезапный овертайм или закрытие проекта — подобные события запускают цепочку реактивных реакций:

  • Нет, тут есть ошибка -> сами гады -> а может все не так и плохо -> ппц -> ладно, давай выкручиваться

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

  • Как узнать каждое состояние и предугадать следующее?
  • Как помочь выйти себе и собеседнику из цепочки?
  • Что не делать, чтобы не усугубить ситуацию?
Читать дальше →

GPL панель управления сервером Vesta

Время на прочтение3 мин
Охват и читатели70K


Сейчас уже сложно сказать, когда именно я начал работу над вестой. Если считать первые скрипты добавления виртуальных хостов в апач, то это был 2007 год. Получается 5 лет тому назад. Помню тогда на работе состоялся примерно такой диалог:
— Ты решил написать свою панель управления?
— Ага, ведь cPanel это ужас, Plesk хоть и лучше, но сильно дорогой. Да и вообще у меня уже почти все готово
— Хм… для того чтобы просто приблизиться к сPanel тебе потребуется минимум 2 года

Не помню, что тогда ответил, но фразу про то, что почти все готово, я повторял еще не раз. Сейчас еще я хочу рассказать что готово в версии 0.9.7
Читать дальше →

Геотаргетинг nginx, частный случай

Время на прочтение4 мин
Охват и читатели17K
Возникла задача сделать геотаргетинг для регионов России на новостном сайте, т.е. при заходе на главную страницу, должно происходить перенаправление на региональную страницу сайта с адресами вида: region/[номер региона], причем перенаправление клиента должно осуществляться на nginx-е без передачи данных на апач, в противном случае это лишняя ненужная нагрузка на сервер.
Читать дальше →

Приемы написания скриптов в Bash

Время на прочтение7 мин
Охват и читатели174K
Администраторам Linux писать скрипты на Bash приходится регулярно. Ниже я привожу советы, как можно ускорить эту работу, а также повысить надежность скриптов.

Совет 1

Не пишите скриптов, которые выполняют действия ничего не спрашивая. Такие скрипты нужны довольно редко. А вот всевозможного «добра» для копирования, синхронизации, запуска чего-либо, хоть отбавляй. И если в любимом Midnight Commander Вы вдруг нажали не на тот скрипт, то с системой может произойти все что угодно. Это как правила дорожного движения — «написано кровью».

Совет 2

Отталкиваясь от предыдущего, в начало каждого скрипта неплохо помещать что-то вроде:
read -n 1 -p "Ты уверен, что хочешь запустить это (y/[a]): " AMSURE 
[ "$AMSURE" = "y" ] || exit
echo "" 1>&2
Команда echo, кстати, здесь нужна потому, что после нажатия кнопки <y> у вас не будет перевода строки, следовательно, следующий любой вывод пойдет в эту же строку.

Совет 3

Это ключевой совет из всех. Для того, чтобы не писать каждый раз одно и то же — пользуйтесь библиотеками функций. Прочитав много статей по Bash, я вынужден констатировать, что этой теме уделяется мало внимания. Возможно в силу очевидности. Однако я считаю необходимым напомнить об этом. Итак.
Заведите свою библиотеку функций, например myfunc.sh и положите ее, например в /usr/bin. При написании скриптов она не только поможет сократить ваш труд, но и позволит одним махом доработать множество скриптов, если Вы улучшите какую-либо функцию.
Например, в свете совета 2 можно написать такую функцию:
Читать дальше →

Проксируем и спасаем

Время на прочтение7 мин
Охват и читатели175K
1 ноября мир изменился и больше никогда не будет таким же как прежде. В российском интернете появилась цензура — общеизвестный уже список запрещенных сайтов. Для одних это важнейшая политическая тема, для других повод изучить технологии шифрования и защиты анонимности, для третьих просто очередной странный закон, который приходится исполнять на бегу. Мы же поговорим о технологическом аспекте.

В данном пособии мы узнаем как быстро и просто сделать рабочее зеркало любого сайта, что позволяет сменить IP и назначить любое доменное имя. Мы даже попробуем спрятать домен в url, после чего можно сохранить локально полную копию сайта. Все упражнения можно сделать на любом виртуальном сервере — лично я использую хостинг Хетцнер и OS Debian. И конечно мы будем использовать лучший веб-сервер всех времен и народов — NGINX!

К этому абзацу пытливый читатель уже приобрел и настроил какой нибудь выделенный сервер или просто запустил Linux на старом компьютере под столом, а так же запустил Nginx последней версии со страничкой «Save me now».
Cкорее кого-нибудь спасем

Физика Ethernet для самых маленьких

Время на прочтение6 мин
Охват и читатели457K
  • Что такое домен коллизий?
  • Сколько пар используется для Ethernet и почему?
  • По каким парам идет прием, а по каким передача?
  • Что ограничивает длину сегмента сети?
  • Почему кадр не может быть меньше определенной величины?


Если не знаешь ответов на эти вопросы, а читать стандарты и серьезную литературу по теме лень — прошу под кат.
Читать дальше →

Так как же удалить миллионы файлов из одной папки?

Время на прочтение5 мин
Охват и читатели153K

Феерическая расстановка точек над i в вопросе удаления файлов из переполненной директории.

Прочитал статью Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки и очень удивился. Неужели в стандартном инструментарии Linux нет простых средств для работы с переполненными директориями и необходимо прибегать к столь низкоуровневым способам, как вызов getdents() напрямую.

Для тех, кто не в курсе проблемы, краткое описание: если вы случайно создали в одной директории огромное количество файлов без иерархии — т.е. от 5 млн файлов, лежащих в одной единственной плоской директории, то быстро удалить их не получится. Кроме того, не все утилиты в linux могут это сделать в принципе — либо будут сильно нагружать процессор/HDD, либо займут очень много памяти.

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

Puppet под нагрузкой

Время на прочтение6 мин
Охват и читатели33K
Puppet — довольно удобный инструмент для управления конфигурациями. По сути, это система, которая позволяет автоматизировать настройку и управление большим парком машин и сервисов.

Базовой информации о самой системе много, в том числе и на Хабре: здесь, здесь и здесь. Мы же постарались собрать в одной статье несколько «рецептов» использования Puppet под действительно большими нагрузками — в «боевых условиях» Badoo.

О чём пойдет речь:

  • Puppet: ликбез;
  • кластеризация, масштабирование;
  • асинхронный Storeconfigs;
  • сбор отчётов;
  • анализ полученных данных.

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

Краткие заметки по Cisco CCNA (часть ICND1)

Время на прочтение8 мин
Охват и читатели105K
Приветствую!

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

Практическое применение системы премирования Водянова на селе

Время на прочтение4 мин
Охват и читатели84K

Здравствуйте, уважаемые читатели хабры.
Хочу поделиться с уважаемым сообществом результатами небольшого эксперимента по внедрению системы мотивации описанной в моей статье «Система мотивации c элементами рыночных отношений» в самом настоящем совхозе в Башкирии.

Летом этого года я изложил суть идеи своему другу Рустаму Давлетбаеву, а он рассказал ее директору совхоза Шаймуратово Артуру Нургалиеву. И вот на прошлой неделе Рустам внезапно заявил мне, что оказывается они провели эксперимент с этой системой и могут рассказать, что из этого получилось.

Вчера я сел в машину и поехал в Шаймуратово общаться с Артуром, чтобы узнать подробности.
Что было дальше

Массовая остановка запросов

Время на прочтение1 мин
Охват и читатели13K
В качестве небольшого дополнения к статье Чистка сервера базы данных.

Иногда, в очереди скапливается большое количество запросов к БД, выполнение которых необходимо остановить, не перезапуская MySQL.

Для решения этой проблемы мы используем такой метод:

Получаем список долго выполняемых запросов, в данном случае — SELECTы, выполняемые дольше 100 секунд
SELECT CONCAT('KILL ', id, ';') 
FROM information_schema.processlist 
WHERE 
`info` LIKE('SELECT%') 
AND `time` > 100 
INTO OUTFILE '/tmp/killList.sql'; 


Собственно, убиваем их:
SOURCE /tmp/killList.sql; 


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

Стабилизируем PHP на бою — что и почему «роняет» веб-сервер

Время на прочтение7 мин
Охват и читатели82K
Вы отвечаете за стабильность работы веб-проекта на PHP. Нагрузка постоянно растет, добавляются фичи, клиенты довольны. В один прекрасный день начинают появляться загадочные ошибки…

Ошибки серверного софта


… которые программисты не знают как исправить, т.к. «ломается» серверный софт, например связка apache-PHP — а клиент получает в ответ на запрос страницу о регламентных работах. Веб-разработчик часто не обладает глубокими знаниями в программировании на C в unix/linux, а сисадмин нередко, к сожалению, глубже bash в систему не погружается. Настоящий хардкор :-)

Нестабильная работа серверных скриптов


Нередко, определенные страницы веб-проекта начинают сходить с ума. Например выполняться по 15 минут и выяснить, чем же они занимаются, непросто. В прошлом посте на данную тему я описал одну из методик определения, чем занимается PHP-скрипт на боевом сервере, но чувствуется, что нужен более мощный инструмент.

На практике я часто встречаю проекты, которые сталкиваются с подобным классом ошибок «серверного софта», и в команде не всегда знают, что делать. В логе apache часто появляются сообщения о нарушении сегментации (segmentation fault), клиенты получают страницу об ошибке, а веб-разработчик с сисадмином ломают себе голову, играются с разными версиями PHP/apache/прекомпилятора, собирают PHP из исходников с разными опциями снова и снова, пишут о багах, а им доказывают, что это баги не PHP, а их кода и так до бесконечности…

В статье я хочу рассказать как можно просто и быстро найти причину, почему PHP рассыпался на боевом сервере и устранить ее — не погружаясь в прекрасный мир системного программирования на C для unix :-) От вас потребуется желание и одна чашечка кофе.

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

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

Время на прочтение4 мин
Охват и читатели161K

Предисловие


Скорей всего, матерым системным администраторам статья будет не очень интересна. В первую очередь она ориентирована на новичков, а также на людей, которые столкнулись с подобной проблемой — необходимостью удалить огромное количество файлов из одной папки в ОС Linux (Debian в моем случае), а также с закончившимся местом на диске, когда df -h выдает что почти 30% свободно.
Читать дальше →

OpenDKIM + Postfix = просто

Время на прочтение4 мин
Охват и читатели137K


В конце 2011 года разработчики проекта dkim-milter прекратили его поддержку и разработку. К счастью, на замену проекта dkim-milter пришел OpenDKIM, с помощью которого добавить DKIM-подпись в письма так же просто.

tl;dr: в наше время без DKIM-подписей ну никак нельзя
DKIM-подпись — это цифровая подпись, которая добавляется к заголовкам письма сервером отправителя, по которой сервер получателя может удостовериться, что отправитель письма соответствует полю From в заголовках письма. Если сервер получателя проверяет эту подпись, то по результатам проверки сервер может принять решение о том, как поступать с письмом: принять, отправлять в папку «Спам», отправить на дополнительную проверку или вовсе отказаться от приёма. Подписи DKIM проверяют и используют сами все ведущие почтовые службы, включая Яндекс и Mail.ru. Последняя открыто требует чтобы письма были подписаны с помощью DKIM.


Инструкция по настройке связки Postfix и OpenDKIM

Простой способ защиты от классического HTTP DDoS

Время на прочтение5 мин
Охват и читатели35K
Данное решение позволяет вычислять любых ботов, за исключением тех, которые полностью имитируют работу браузера.

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


Бот запрашивает страницу, например habrahabr.ru/search. Бот не умеет загружать вместе со страницей картинки, скрипты, css и пр. Значит в логе будет отображен запрос к /search/ и всё.
Если на habrahabr.ru/search заходит живой человек через браузер, то вместе с /search/ в лог попадет множество картинок, скриптов, css и пр.
Читать дальше →

Кодекс Чести

Время на прочтение2 мин
Охват и читатели14K
Я хочу написать об одной из основных вещей, которые делают мою жизнь разработчика полезной и интересной.
Я заметил, что большинство людей, с которыми я имел честь работать, были связаны обещанием, неким неписанным «кодексом чести». Он не совсем похож на самурайский Бусидо, поэтому позвольте мне вкратце описать его:

Кодекс и долг

  • Моя работа — отражение моего мастерства. Лично я отождествляю это с качеством.
  • Если я возложил на себя обязательства касательно проекта и сроков сдачи, то я сделаю всё возможное, чтобы сдержать своё слово.
  • Это дело чести — выполнять свои обещания. Я готов идти на личные жертвы, чтобы сдержать свое слово.
  • Обязательства и жертвы сугубо добровольны и руководствуются лишь внутренней мотивацией. Дополнительное внешнее давление рассматривается как нарушение Кодекса: я уже выполняю свою работу настолько хорошо, насколько могу.


Общение

  • Я открыто признаюсь, если я чего-то не понимаю.
  • Субординация не важна в обсуждении технических деталей. Имеет значение убедительность аргумента, а не должность говорящего.

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

Блокировки в InnoDB (шпаргалка)

Время на прочтение2 мин
Охват и читатели18K
Решил разобраться в вопросе блокировок в InnoDB. Получилась такая вот краткая шпаргалка. Может кому пригодится. Буду благодарен сообществу за найденные неточности

И так, в пределах одной транзакции, после…
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность