Январь 3, 2012 | ITшное, Администрирование | Модные словечки apache, cacti, perl, мониторинг | Оставить свое мнение
Для начала, на мониторимом сервере нужно включить отображение статистики server-status & server-info.
У меня, к примеру, не было модуля mod_info, поэтому нужно было пересобрать apache с этим модулем.
Далается это в соответстветствии с инструкцией здесь http://help.directadmin.com/item.php?id=191
Единственное замечание к той инстукции: не всегда нужно добавлять именно —with-module, иногда запись может отличаться. Я перепробовал разнообразные варианты типа with-mod_info, with-info_module, но ничего не работало. В итоге я нарыл соответствия параметров конфига строки и модулей: http://httpd.apache.org/docs/2.2/programs/configure.html
Оказалось, нужно было добавлять: —enable-info.
Update: сначала сделал все так как описал ниже, но потом обнаружил более новую версию здесь и здесь (по второй ссылке это типа оффициальная страница). Удалил старые дата темплейты и поставил вместо них эти, работает тоже ок, только читайте внимательно инструкции по установке там на форуме.
После того, как действие выполнено, следуем по интрукции http://www.lissyara.su/articles/freebsd/www/apachestats/
Далее все прошло в целом гладко, пришлось только немного допилить скрипт для парсинга статуса. Он мог работать нормально только на локальном хосте. Если же требовалось собирать статистику с удаленного сервера то в нем явно была ошибка. Может быть конечно где то и есть новая версия, у меня скрипт 2004 года, так что внес в него свежие правки =) Можете скачать его.
P.S. мне потребовалось доставить в perl модуль Switch, так как скрипт вылетал с ошибкой
Switch will be removed from the Perl core distribution in the next major release бла бла бла
Ставится точно так же как и в посте http://toha.su/post/график-загрузки-nginx-для-cacti/. Только в CPAN нужно ввести
install Switch
(регистр имеет значение!)
Декабрь 22, 2011 | ITшное, Администрирование | Модные словечки cacti, freeBSD, nginx, мониторинг | Оставить свое мнение
Начал делать график для какти по скриптах, из этого форума http://forums.cacti.net/about26458.html
При тесте скрипта столкнулся с ошибкой:
no (LWP::UserAgent not found)
Свидетельствует о том, что собственно в perl не найдено модуля LWP.
Ставим его так (спасибо за мануалы с http://docstore.mik.ua/orelly/perl3/lwp/ch01_03.htm ):
Вкратце именно то что делал я:
perl -MCPAN -eshell
cpan> install Bundle::LWP
cpan> exit
(были еще промежуточные вопросы так как запускал я первый раз, нажимал просто энтер — предлагалось сделать первоначальную конфигурацию и подобрать лучшие зеркала).
После этого скрипты выдавали правильную информацию.
./get_nginx_clients_status.pl http://******/nginx_status
nginx_active:256 nginx_reading:3 nginx_writing:4 nginx_waiting:249
./get_nginx_socket_status.pl http://******/nginx_status
nginx_accepts:15638 nginx_handled:15638 nginx_requests:40322
Далее я сделал импорт дата темплейтов через веб интерфейс кактуса и добавил графики по этим темплейтам, указав в параметре url по которому доступен nginx_status (http://******/nginx_status).
После этого правда началось шаманство с кактусом. Прошло несколько часов, но график был пустой. При этом по логам все ок, файлы rrd обновляются и не понятно в чем дело. Попробовал было удалить графики и добавить по новой, но результата так и не было.
Но потом уже вечером увидел что на графике появились таки данные и дальше все рисовалось четко. Не могу объяснить этот феномен, кактус выделывает такое, да и вообще он сложноват в администрировании, если что идет не так. При чем это не только мое мнение, а и многих админов.
Касательно расшифровки показаний статуса nginx: http://wiki.nginx.org/HttpStubStatusModule — оригинал или например вот тут http://alegenk.livejournal.com/22071.html на русском.
P.S. не забудьте закрыть доступ к /nginx_status для всех айпишников кроме айпи сервера или хотя бы поменяйте путь на другой ( типа /nginx_kmf3md ).
Декабрь 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=username
authorized_for_all_service_commands=username
authorized_for_all_host_commands=username
authorized_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, только убрать авторизацию базовую, кактус использует свою через базу данных.
На этом пока все, оставляем кактус рисовать графики.
Последние отзывы