Posts tagged ‘компиляция’

Pingus в OpenSuSE 11.2

И вот я поставил OpenSuSE 11.2 и возрадовался, система стала отлично и работала на ура (почти). И все в ней было хорошо, но я не обнаружил там своей любимой Linux-игры Pingus…

Попытка поставить из сорсов (у меня мания все новые пакеты в сусе ставить из сорсов) не увенчалась успехом т.к. Pingus “из тарбола” не заточен на GCC 4.3 и выше (пруфлинк от вездесущего Debian).

Решение

Помог вот этот патч, он добавляет нехватающие инклуды и Pingus`ам становистя хорошо.

Процесс установки

Предпологается что вы установили devel пакеты SDL: SDL-devel, SDL_image-devel, SDL_mixer-devel etc.

wget -c http://pingus.seul.org/files/pingus-0.7.2.tar.bz2
tar xjf pingus-0.7.2.tar.bz2
cd pingus-0.7.2
wget -c "http://svn.uludag.org.tr/viewcvs/devel/applications/games/pingus/files/gcc-4.3.patch?revision=43817&root=pardus&pathrev=43817"
patch -p0 -i gcc-4.3.patch
scons

По идее все должно пройти нормально, и вы сможете запустить игру командой

./pingus

P.S.

Мои старания были вознаграждены новым levelset, который я еще не проходил:
Pingus 0.7.2

P.P.S.

Как оказалось есть еще и Windows и Mac версия игры: http://pingus.seul.org/download.html

Сага о Nagios: чекаем в труднодоступных местах (NRPE)

Если уж вы решили заняться мониторингом серверов, вряд ли вам удалось ограничиться проверками пинга и доступа к сайтам по HTTP. Проверка загрузки CPU, свободного места на сервере и т.д. можно конечно проверять с помощью SNMP, но искать новые модули для проверки проверки или лазить по дереву SNMP не самое интересное занятие, да и не очень нужное, ведь есть отличные команды для локальной проверки сервера из стандартного комплекта модулей “check_load, check_storage” и т.д. Изобретать велосипед конечно благородно, но бесполезно. Дальше речь пойдет о мониторинге Unix серверов при помощи NRPE.

Общий обзор NRPE

На помощь может прийти NRPE, приложение созданное специально для проверки удаленного сервера с помощью “локальных” команд. Алгоритм работы можно видеть на рисунке ниже:

Хост с Nagios (слева), инициирует проверку с помощью команды check_nrpe к удаленному серверу (справа), на котором установлен NRPE, в зависимости от конфигурации выполняется та или иная команда проверки. На хостк с NRPE можно еще раз выполнить команду check_nrpe для проверки хоста с NRPE, это позволяет создавать конфигурации при которых Nagios не находиться в той-же подсети что и хосты, но при этом может проверять хосты из другой сети:

Преимуществами NRPE по сравнению с SNMP можно считать:

  • проверки произволяться “локальными” командами
  • ненужно расшаривать какие-то области SNMP, это может быть небезопасно
  • NRPE имеет возможность создания защищенного соединения (SSL) между Nagios и хостом, в отличии от SNMP, который чуть ли не UDP пакеты посылает
  • для добавления новой проверки достаточно написать консольный скрипт в Perl или Bash, не заморачиваясь на SNMP-ловушках или еще чем-нибудь более заумном

Установка NRPE

Ну думаю теории хватит, можно приступать к практике.
Для начала скачайте последнюю версию NRPE с официального сайта http://www.nagios.org/download/addons/

(Более полную информацию по NRPE можно найти по адресу http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf)

В моем случае версия NRPE была 2.12, далее начнем компиляцию и установку.
Распакуем архив

tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12/

Далее проводим конфигурирование, опция –disable-ssl отключает SSL в NRPE, если у вас действительно большое количество проверок на одном сервере SSL лучше отключить, чтобы не загружать сервер. Опция –enable-command-args определяет можно ли будет командам передавать аргументы, заранее подумайте над тем стоит ли их включать, т.к. это может создать проблемы в безопасности системы, к примеру если в качестве аргумента передать что-нибудь типа “-w=5 -c=6; cat /etc/passwd” в bash эта строка будет интерпретирована не совсем так как вы хотите

./configure --disable-ssl --enable-command-args

Далее создаем пользователя и группу под которыми будет работать NRPE, опцию -d /home/nagios лучше оставить т.к. в дальнейшем домашняя директория для NRPE вам еще пригодиться

groupadd nagios
useradd nagios -d /home/nagios -g nagios -m

Последний этап компиляции, собственно компиляция, установка плагина check_nrpe, установка демона NRPE и конфигов для xinetd

make all && make install-plugin && make install-daemon && make install-xinetd

Для работы NRPE лучше всего использовать xinetd, т.к.он позволяет обновлять конфигурацию без перезагрузки демона и вам не нужно следить за тем загружен NRPE или нет. Также xinetd обеспечивает некоторую дополнительную безопасность с помощью определения списка IP адресов с которых может инициироваться доступ к порту NRPE.

Если у вас не установлен xinetd нужно его установить:

yum install xinetd
zypper install xinetd
apt-get install xinetd (зависит от системы)

Дальше редактируем /etc/xinetd.d/nrpe, находим строку

	only_from            = 127.0.0.1 IP1 IP2

вместо IP1 и IP2 подставляет IP-адреса Nagios или хостов с которых будет осуществляться проверка, адреса должны быть написаны через пробел.

Добавить описание NRPE в конец файла /etc/services.

	nrpe                 5666/tcp            # NRPE

После нужно перезагрузить xinetd:

service xinetd restart

Возможно вам также придется добавить правило в firewall, которое бы разрешало подключения на порт 5666:

iptables -I RH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT
service iptables save

Далее вам нужно скопировать плагины для проверки в папку /usr/local/nagios/libexec/. Плагины можно взять из этой папки на сервере с Nagios (или в папке /usr/lib/nagios/plugins/, если вы ставили Nagios из бинарных архивов).

Если все сделано правильно мы можем проверить работоспособность NRPE, выполнив следующий скрипт:

/usr/lib/nagios/plugins/check_nrpe -H localhost

Должно вы появиться что-то вроде:

NRPE v2.12

Все, установку закончили.

Конфигурирование NRPE

После установки файл конфигурации по умолчанию находиться в файле /usr/local/nagios/etc/nrpe.cfg. Первое что стоит отредактировать это опять таки хосты с которых будет производиться проверка:

	allowed_hosts=127.0.0.1,IP1,IP2

опция allowed_hosts определяет список хостов с которых будут идти проверки, адреса должны быть перечислены через запятую.
Дальше определяем количество можно ли передавать аргументы командам:

	dont_blame_nrpe=0

если “0” аргументы передавать нельзя, если “1” можно.

Далее можно перейти непосредственно к команда которыми мы будем оперировать. Общий синтаксис таков:

	command[command_name]=/path/to/check/command args

например:

	command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

если у вас включена передача аргументов, команда будет выглядеть так:

	command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$

Командой может быть любой скрипт или строка bash, главное чтобы она удовлетворяла правилам написания модулей для Nagios.

для выполнения команды проверки check_users выполните:

/usr/lib/nagios/plugins/check_nrpe -H localhost -c check_users или
/usr/lib/nagios/plugins/check_nrpe -H localhost -c check_users -a 5 10

Получим что-нибудь вроде этого:

USERS OK - 1 users currently logged in |users=1;5;10;0

Конфигурирование Nagios для работы с NRPE

После того как NRPE успешно установлен можно приступить к конфигурированию самого Nagios.
Первое что следует сделать, это скопировать скрипт check_nrpe в папку с плагинами Nagios (см. выше). Дальше открываем файл с описанием комманд (чаще всего commands.cfg) и добавляем вот такую конфигурацию:

define command{
	command_name		check_nrpe
	command_line		$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

таким образом мы добавили команду check_nrpe в список команд NRPE, далее создаем новый сервис (проверку):

define service{
	use			generic-service
	host_name		remotehost
	service_description	USERS
	check_command		check_nrpe!check_users
}

после “!” передается команда которая будет вызвана на хосте с NRPE.

Для того чтобы уменьшить количество ошибок и недочетов при конфигурировании Nagios лучше всего создавать команды с заранее определенными параметрами, так лучше пример приведенный выше лучше представить так:

define command{
	command_name		check_nrpe_users
	command_line		$USER1$/check_nrpe -H $HOSTADDRESS$ -c check_users
}
 
....
 
define service{
	use			generic-service
	host_name           	remotehost
	service_description	USERS
	check_command		check_nrpe_users
}

таким образом мы определяем соответствие команды Nagios команде NRPE и допускаем меньше ошибок при конфигурировании.

ВНИМАНИЕ
Если вы собирали NRPE –disable-ssl, в описании команды проверки добавляйте “-n” т.е.

command_line $USER1$/check_nrpe -n -H $HOSTADDRESS$ -c check_users

иначе при проверке возникнет ошибка.

P.S.
Чуть позже думаю появяться стать по автоматизации обновления NRPE и правилах написания модулей(плагинов).

Установка Ekiga 3.0.1 на OpenSuSE 11.0

Всем привет,

надумалось мне недавно поставить новую версию Ekiga на свой OpenSUSE 11.0, ставил естественно из исходников, в процессе установки не обошлось без приключений ;), поэтому раскажу как было…

Перво-наперво качаем архивы с Ekiga и библиотеками для него:

mkdir ekiga
cd ekiga/
wget -c http://www.ekiga.org/admin/downloads/latest/sources/ekiga_3.0.1/ekiga-3.0.1.tar.gz
wget -c http://www.ekiga.org/admin/downloads/latest/sources/ekiga_3.0.1/ptlib-2.4.2.tar.gz
wget -c http://www.ekiga.org/admin/downloads/latest/sources/ekiga_3.0.1/opal-3.4.2.tar.gz

Распаковываем скачанное:

tar xzf ekiga-3.0.1.tar.gz
tar xzf opal-3.4.2.tar.gz
tar xzf ptlib-2.4.2.tar.gz

Компилируем и ставим библиотеки opal и ptlib:

cd ptlib-2.4.2/
./configure
make
make install
cd ../opal-3.4.2/
./configure
make
make install

Далее приступаем к компиляции саймой Ekiga, а вот с этого начинаеться самое интересное 🙂

Почему-то configure не выдает ошибку о том что не найдена некая программа intltool, ставим:

zypper install intltool

Далее в OpenSUSE к сожалению нет devel-пакета для библиотеки libsigc++, качаем и ставим:

wget ftp://195.220.108.108/linux/fedora/releases/9/Everything/i386/os/Packages/libsigc++20-devel-2.2.2-1.fc9.i386.rpm
zypper install libsigc++20-devel-2.2.2-1.fc9.i386.rpm

Следующий косяк заключался в том, что Ekiga требует некой библиотеки libebook, элементарный поиск zypper`om ничего не дал, но как оказалось сия библиотка завуалирована в пакет evolution-data-server-devel, его и ставим:

zypper install evolution-data-server-devel

Заключающий шаг в dependencies-hell установка кой-каких dev-пакетов от GNOME:


zypper install libgnomeui-devel libgnome-devel


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

Далее вернемся к самой Ekiga:


cd ../ekiga-3.0.1/

По причинам скрытым за дебрями подсознания программеров компиляция Ekiga со стандартными ключами configure сваливалась на создании help-файлов, поэтому приходиться help отключать (если кто знает решение сообщите) :


./configure –with-help-formats

по идее теперь с чистой совестью можно набирать

make && make install

У меня все прошло удачно и стал счастливым обладателем Ekiga 3.0.1, чего и вам желаю 🙂