Уютненький сервер на FreeBSD: мониторинг, мать его.
Декабрь 12, 2011 | ITшное, Администрирование | Модные словечки cacti, freeBSD, nagios, графики, мониторинг | Оставить свое мнениеИ недалеко отходя от темы FreeBSD, позаботимся сразу вопросом стабильности работы, поставим сервисы мониторинга: nagios + cacti.
Начнем с первого: Nagios
Учитывая что он использует FCGI, в первом попавшемся мануале предлагается установка apache, но мы то не такие, без крайней необходимости не будем его ставить. Поэтому будет использовать fcgiwrap под nginx!
cd /usr/ports/www/fcgiwrap make install clean echo 'fcgiwrap_enable="YES"' >> /etc/rc.conf echo 'fcgiwrap_user="www"' >> /etc/rc.conf echo 'fcgiwrap_socket="unix:/tmp/fcgiwrap.sock"' >> /etc/rc.conf # последнее очень важно, так как используя путь по умолчанию nginx получает ошибку доступа к сокету, а по этому адресу все ок =)
В nginx.conf добавляем
upstream fcgi-backend
{
server unix:///tmp/fcgiwrap.sock;
}
# Далее ставим сам nagios:
cd /usr/ports/net-mgmt/nagios
make install clean
echo 'nagios_enable="YES"' >> /etc/rc.conf
service nagios start
Далее нам понадобится создать файл с юзерами для nagios, который будет использоваться при проверке запроса на авторизацию из браузера.
Обычно его можно создать утилитой htpasswd которая входит в состав апача, но так как мы его не ставили, у нас ее нету. Можно восспользоваться, к примеру, вот этим http://seriyps.ru/crypt/htpasswd/ сервисом.
И вставляем запись в формате user:crypterPassword в /path/to/passwd файлик, путь к которому нужно будет прописать в конфиге nginx позже.
Пример конфиг файла от http://rlaskey.org/words/897/nagios-nginx-freebsd/
server {
listen 80 default;
server_name _;
index index.html index.php;
root /usr/local/www;
# IP and IP ranges which should get access
allow 10.0.0.0/24;
allow 10.1.0.1;
# all else will be denied
deny all;
# basic HTTP auth
auth_basic "Restricted";
auth_basic_user_file htpasswd;
location ~ \.cgi$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REMOTE_USER $remote_user;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Изменять его под себя прийдется уже вам самостоятельно.
Так же нужно отредактировать конфиг nagios, который находится в /usr/local/etc/nagios/. Там нужно создать (а точнее переименовать примеры конфиг файлов *.cfg-sample (а также objects/*.cfg-sample).
Если вы для авторизации будете использовать логин отличный от nagiosadmin, то его нужно прописать в cgi.cfg:
authorized_for_all_services=username
authorized_for_all_hosts=usernameauthorized_for_all_service_commands=username
authorized_for_all_host_commands=usernameauthorized_for_system_information=username
authorized_for_configuration_information=username
authorized_for_system_commands=unkn0wn
В противном случае вы не будете видеть все сервисы и хосты без дополнительной настройки, а я не захотел пока что этим заморачиваться. (после того как я увидел сколько раз пришлось заменить этот логин я пожалел что не стал использовать стандартный логин )
Так же я, иногда забываю писать что нужно перезапустить какой то сервис, это нужно помнить самостоятельно, после изменений конфига сервиса этот сервис нужно перезапустить.
С nagios на этом моменте закончено.
Часть 2: Cacti
При сетапе частично руководствовался инструкцией http://habrahabr.ru/blogs/bsdelniki/71087/
Данные он будет собирать через smtp, подготовим ему базу:
cd /usr/ports/net-mgmt/net-snmp/ make install clean echo 'snmpd_enable="YES"' >> /etc/rc.conf echo 'snmpd_conffile="/usr/local/etc/snmpd.conf"' >> /etc/rc.conf ee /usr/local/etc/snmpd.conf
Вставляем туда строку
rocommunity changeme
Выходим, сохраняем.
service snmpd start snmpget -c changeme -v1 localhost .1.3.6.1.2.1.1.1.0 # проверяем работоспособность, должны получить что то типа # SNMPv2-MIB::sysDescr.0 = STRING: FreeBSD ax3.local.net 8.2-STABLE FreeBSD 8.2-STABLE #0
Идем по душу кактуса
cd /usr/ports/net-mgmt/cacti make install clean
С кактусом дальше процесс был в общем то идентичный тому, как описано в статье по ссылке выше.
Вкратце перепишу на случай недоступности последней:
Создаем пользователя и базу для cacti, импортируем в нее дамп из /usr/local/share/cacti/cacti.sql
Добавляем в крон
*/5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
Копируем или делаем симлинк /usr/local/share/cacti/ в место, которое будет настроено на обработку web серверов, я сделал симлинк в /usr/local/www/cacti и далее конфиг nginx аналогичный как для nagios, только убрать авторизацию базовую, кактус использует свою через базу данных.
На этом пока все, оставляем кактус рисовать графики.
Наследить..