Archive

Archive for August, 2011

Установка простой системы мониторинга Munin

August 11th, 2011

Мунин идеально подойдет для тех администраторов, которым надо мониторить нагрузку (именно нагрузку, а не доступность!) одного-двух-трех серверов и не хочется заморачиваться с такими монстрами как Cacti.

Мунин состоит из двух частей: Munin-node – демон, который ставится на хост, который надо мониторить – она собирает всю информацию о системе. Вторая часть – пакет munin – он уже рисует графики по данным с одной или нескольких машин и генерит из них статические странички и картинки.
Итак, сначала установим пакет munin, к слову, это перловый скрипт и ставит с собой несколько перловых библиотек:

yum install munin

Он пропишется в /etc/cron.d для запуска раз в 5 минут, создаст /var/www/html/munin – туда будет генериться статика, которую можно отдавать любым веб-сервером. Конфиги мунина лежат в /etc/munin. Прописываем мунин в Апаче, можно просто алиасом к каком-нибудь существующему виртуалхосту:

Alias /munin/ /var/www/html/munin/
<Directory "/var/www/html/munin/">
    Options Indexes FollowSymlinks
    AllowOverride All
</Directory>

Релоадим апач и устанавливаем munin-node (эту часть проделываем на всех серверах, которые надо мониторить):

yum install munin-node
chkconfig munin-node on
/etc/init.d/munin-node start

Если мы ставим оба пакета на одну машину, то нижесказанное проделывать не надо – все работает по дефолту.
Munin-node работает как демон, к которому на порт 4949 периодически подключается munin, поэтому в /etc/munin/munin-node.conf добавляем дериктиву allow ^127\.0\.0\.1$ с адресом munin.

На машине, на которой установлен Munin в /etc/munin/munin.conf добавляем новый хост по типу:

[my-second-server]
    address 1.2.3.1
    use_node_name yes

linux ,

Устанавливаем акселлератор APC на CentOS+Apache

August 3rd, 2011

Если у вас нагруженное веб-приложение и тесты показывают, что одно из узких мест это исполнение php-кода, то имеет смысл установить PHP-акселлератор. Один из лучших это APC от разработчиков самого PHP. Принцип его работы такой: он держит скомпилированный код php-файлов в памяти и при повторном обращении быстро его отдает.
Устанавливаем его из репозитория Remi:

yum --enablerepo=remi install php-pecl-apc

Теперь смотрим конфиг /etc/php.d/apc.ini, самые важные параметры:
# Включаем кэширование
apc.enabled=1
# количество блоков с кэшем в памяти
apc.shm_segments=1
# размер каждого блока
apc.shm_size=256M
# время устаревания кэшированных файлов
apc.ttl=3600
apc.max_file_size=1M
# если выключить, apc не будет проверять не изменился ли файл при обращении к нему.
apc.stat=1

Для каждого сервера надо подбирать свои параметры размера блока и срока устаревания кэша. Потому как иногда при заполнении памяти APC может падать с ошибкой “unable to allocate memory for pool” подробнее читать тут.
Для мониторинга состояния кэша APC удобно использовать прилагаемую к дистрибутиву утилиту apc.php. Просто скачиваете дистр и кладете файлик в любой виртуалхост.

php ,