воскресенье, 30 декабря 2012 г.

android vs symbian


Краткие итоги после шести лет использования symbian и недавнего перехода на android.

Что было в symbian:

  • Полноценная qwerty-клавиатура (никакой сенсор не заменит по удобству набора).
  • Возможность установки софта на карту памяти (в андроиде это очень своеобразно реализовано и в итоге свободное место во встроенной памяти очень быстро закачивается).
  • Постоянный мерзкий системный звук на любые изменения (почти как в винде)
  • Почти все стандартные приложения непригодны для использования из-за крайне низкого функционала (к примеру стандартный будильник не имеет повтора, не говоря уже о срабатывании только по рабочим дням)
  • Может прозрачно подключаться к Wi-Fi ad hoc (в андроиде для этого нужно сначала получить рута, а потом отредактировать wpa_supplicant.conf)



Что есть в android:

  • Множество рабочих столов (например можно поставить вызов в одно касание)
  • Хоть и сильно урезанный но все равно работоспособный линуксовый терминал
  • Колоссальный выбор софта (много мусора, но можно найти действительно качественные утилиты которых очень не хватало на symbian)
  • Интеграция со всеми сервисами гугла (удобно когда все синхронизируется и при этом не глючит как тот же iCloud)
  • Удобный и в большей части логичный интерфейс (в symbian все настройки были размазаны по разным местам)
  • Полученные по bluetooth файлы автоматически ложатся на карту памяти


суббота, 27 октября 2012 г.

FreeBSD & SMS



Возникла необходимость отсылать смс из терминала FreeBSD.
Для этих целей можно использовать обычный мобильный телефон.
Например берем Nokia 2730 classic и подключаем к usb порту.
В логе видим:
Oct 26 14:12:32 nagios kernel: ugen1.2: <Nokia> at usbus1
Oct 26 14:12:32 nagios kernel: umodem0: <Nokia Nokia 2730 classic, class 2/0, rev 2.00/9.41, addr 2> on usbus1
Oct 26 14:12:32 nagios kernel: umodem0: data interface 2, has CM over data, has break
Oct 26 14:12:32 nagios kernel: umodem1: <Nokia Nokia 2730 classic, class 2/0, rev 2.00/9.41, addr 2> on usbus1
Oct 26 14:12:32 nagios kernel: umodem1: data interface 10, has CM over data, has break
Oct 26 14:12:32 nagios root: Unknown USB device: vendor 0x0421 product 0x02ba bus uhub1

Из портов ставить утилиту Gammu (Gnu All Mobile Management Utilities):
cd /usr/ports/comms/gammu/ && make install clean

Создаем простой конфиг:
cat /etc/gammurc
[gammu]
port = /dev/cuaU0
connection = at115200
startinfo = no
name=Nokia
synchronizetime = no
use_locking = no
gammucoding = utf8
model=2730

И проверяем как определился телефон:
gammu --identify

Для проверки отправляем смс:
echo "message test" | gammu sendsms TEXT 050xxxxxxx

В дальнейшем это можно использовать в различных скриптах и утилитах.

вторник, 23 октября 2012 г.

Nagios, nrpe


На данный момент nagios должен полностью функционировать, мониторить различные устройства и серверы.
При возникновении проблем - приходят письма на почту.
Теперь можно установить агенты на клиентские для nagios хосты.
В портах FreeBSD можно обнаружить nrpe - Nagios Remote Plugin Executor

Установка стандартная:
cd /usr/ports/net-mgmt/nrpe2/ && make install clean

Особых зависимостей замечено не было.

После установки в конфиге нужно изменить всего одну опцию:
cat /usr/local/etc/nrpe.cfg
allowed_hosts=xxx.xx.xx
Указав адрес сервера nagios.

После этого добавить в rc.conf
nrpe2_enable="YES"

и запустить /usr/local/etc/rc.d/nrpe2 start

Теперь можно добавлять с помощью nconf новые сервисы для удаленного мониторинга (сразу доступна загрузка процессора, кол-во подключенных пользователей и оценка свободного места на различных разделах).

Система мониторинга Nagios полностью готова для использования в "продакшине".

понедельник, 22 октября 2012 г.

Nagios, notify


После того как мониторинг заработал хотя бы для двух-трех хостов нужно настроить отправку уведомлений на почту.
По умолчанию стоят неправильные пути к почтовому мейлеру, но даже если их исправить все равно почта не будет приходить. Причина - не настроен sendmail.
Решений несколько: можно долго разбираться с конфигами sendmail, поставить postfix или же просто установить утилиту sendEmail и прописать ее в конфигах nagios. Что я и сделал.

После эксперментов с разными вариантами команды в итоге остановился на следующем:

notify-host-by-email
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/bin/sendEmail -s $USER7$ -t $CONTACTEMAIL$ -f $USER5$ -l /var/log/sendEmail -u "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"
        }
notify-service-by-email
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/local/bin/sendEmail -s $USER7$ -t $CONTACTEMAIL$ -f $USER5$ -l /var/log/sendEmail -u "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n"

Если внимательно изучить выше написанное, можно заметить что используется несколько новых переменных.
Их нужно прописать вручную (при генерировании и размещении конфигов они не затираются):

cat /usr/local/etc/nagios/resource.cfg
# Sets $USER1$ to be the path to the plugins
$USER1$=/usr/local/libexec/nagios
# mail from
$USER5$=nagios@domain.somein.ua
# mail server
$USER7$=nagios.ua

После внесения всех изменений перезапускам nagios, и проверяем. Если почтовый сервер расположен в одном физическом сегменте с nagios'ом то уведомления должны приходить на ваш ящик.
Иначе придется добавлять авторизацию в ключах утилиты sendEmail.

воскресенье, 21 октября 2012 г.

Nagios, NConf


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

В разделе Hostgroups, linux-servers я переименовал в unix-servers.
А в Contacts отредактировал пользователя nagiosadmin, прописав свои контактные данные.
Ну а в закладке Hosts имеем по умолчанию 4 хоста для мониторинга, из которых реально пригодится только localhost. Именно здесь и нужно будет добавлять все наше оборудование.

После того как будет готова хотя бы самая простая конфигурация нужно будет внести изменения в Nagios.

Скопируем *-sample файлы в файлы конфигурации:
# cd /usr/local/etc/nagios
# cp cgi.cfg-sample cgi.cfg
# cp nagios.cfg-sample nagios.cfg
# cp resource.cfg-sample resource.cfg

Теперь необходимо отредактировать nagios.cfg. Находим все вхождения строк, которые начинаются на cfg_dir и cfg_file и комментируем или удаляем их.

И соответственно дописываем:
cfg_dir=/usr/local/etc/nagios/global
cfg_dir=/usr/local/etc/nagios/Default_collector

В старых версиях nconf нужно было использовать специальный скрипт, который распаковывал конфигурацию в nagios. В версии 1.3.0 все уже значительно проще - нужно раскомментировать пару строк в файле deployment.ini и после того во время каждого генерирования конфигов будет появляется кнопка deploy, нажатие на которую соответственно будет приводить к размещению конфигов по конфигурационным директориям nagios.

Так же желательно скопировать файлы изображений для их корректного  отображения:
# cp -r /usr/local/www/nconf/img/logos /usr/local/www/nagios/images/

Теперь генерируем конфигурационные файлы Nagios-а,  нажав в NConf на ссылку Generate Nagios config. А затем, если все прошло без ошибок, жмем появившуюся внизу кнопку Deploy.

Переходим на web-интерфейс Nagios и радуемся результату всех трудов и стараний.

Базовая настройка успешно закончена.

вторник, 16 октября 2012 г.

Nagios, configuring



Теперь два варианта дальнейших действий.
Первый - редактировать конфиги Nagios вручную, второй - установить web интерфейс конфигурирования.
В качестве эксперимента поставим web интерфейс.
Выбор остановился на Nconf (Enterprise Nagios configurator).
В портах Nconf пока отсутствует, поэтому идем на страницу проекта и ищем последнюю версию для загрузки.
# cd /usr/local/www
# wget http://sourceforge.net/projects/nconf/files/nconf/1.3.0-0/nconf-1.3.0-0.tgz

Распаковываем архив и меняем владельца:
# tar -xzf nconf-1.3.0-0.tgz
# chown -R www:www nconf

Добавим в конфигурационный файл Apache:
Alias /nconf/ "/usr/local/www/nconf/"
<Directory /usr/local/www/nconf/>
        Order deny,allow
        Allow from all
        AuthName "Nagios configurator Access"
        AuthType Basic
        AuthUserFile /usr/local/etc/nagios/htpasswd.users
        Require valid-user
</Directory>

И перезапускаем Apache:
# apachectl configtest
# apachectl graceful

На всякий случай смотрим требования:
head -n 36 /usr/local/www/nconf/README

Апач и пхп должны были стать по зависимостям.

# pkg_info | grep mysql если нет то нужно доставить.

Установим perl-DBI:
# cd /usr/ports/databases/p5-DBI && make install clean && rehash
Аналогично выполним установку perl-DBD-MySQL. Обратите внимание на версию, какая версия MySQL такую версию и выбирать:
# cd /usr/ports/databases/p5-DBD-mysql51 && make install clean && rehash

Приступим к установки nconf.
Запускаем скрипт установки:  http://ip_address/nconf/INSTALL.php.
Вначале будет проверка системных требований.

Шаг 1. Конфигурация MySQL.
Предварительно создадим саму базу и пользователя с необходимыми правами.
# mysql -u root -p
mysql> CREATE DATABASE nconf;
mysql> GRANT ALL ON `nconf`.* TO 'nconf'@'localhost' IDENTIFIED BY 'nconf_user_pass_here';
Теперь заполним поля и жмем "Next"

Шаг 2. Конфигурирование.
Главное указать правильный путь к бинарнику Nagios - если не уверены лучше сделать
# whereis nagios

Шаг 3. Настройка аутентификации.
Без аутентификации. Не будем усложнять, кто имеет доступ к самому Nagios, тот имеет доступ и к NConf (чуть позже пропишем в конфигах апача).

Шаг 4. Завершение установки.
Нужно удалить инсталяционные файлы и директории:
# rm -R /usr/local/www/nconf/INSTALL
# rm /usr/local/www/nconf/INSTALL.php
# rm -R /usr/local/www/nconf/UPDATE
# rm /usr/local/www/nconf/UPDATE.php
После этого жем Finish.

Если все прошло успешно - имеем установленный NConf.

понедельник, 15 октября 2012 г.

Nagios, the beginning


Возникла необходимость в системе круглосуточного, всепогодного :-) мониторинга серверов и активного сетевого оборудования.

Выбор остановился на системе Nagios, ранее уже был весьма успешный опыт его использования, правда ветки 2.x и на Сentos.

Теперь платформа уже FreeBSD, и самая свежая на момент написания версия Nagios в портах да и на официальном сайте тоже - 3.4.1

Установка крайне простая:

cd /usr/ports/net-mgmt/nagios && make install clean && rehash

Даже если и в системе не было апача и php они доставятся по зависимостям.
Так же соберется множество плагинов Nagios.

После завершения установки:

Добавляем в автозапуск
# echo '# Nagios' >> /etc/rc.conf
# echo 'nagios_enable="YES"' >> /etc/rc.conf

Добавляем в апач

# cat /usr/local/etc/apache22/Includes/nagios.conf
ScriptAlias /nagios/cgi-bin "/usr/local/www/nagios/cgi-bin"
<Directory "/usr/local/www/nagios/cgi-bin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
Require valid-user
</Directory>
Alias /nagios "/usr/local/www/nagios"
<Directory "/usr/local/www/nagios">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
Require valid-user
</Directory>

Используем авторизацию для доступа к Nagios:

# htpasswd -c /usr/local/etc/nagios/htpasswd.users username

Обязательна поддержка обработки cgi-скриптов. В секции <IfModule mime_module> должна быть раскомментирована строка "AddHandler cgi-script .cgi".

Проверим синтаксис конфигурационного файла, и если все в порядке, перезапускам Apache:
# apachectl configtest
# apachectl restart

Теперь можно проверять работает ли авторизация, и открывается ли главная страница Nagios.