Nagios NRPE контроль размера файла (filesize)

Сразу оговорюсь, что система, в которой я настраивал это хозяйство, ранается на Debian 6, а сам Nagios установлен не из пакетов, а из сорцов как в RedHat – в /usr/local/nagios – так проще и удобней, т. к. почти вся документация написана под такой вариант установки.

Для мониторинга нам понадобится плугин к Nagios – NRPE(Nagios Remote Plugin Executor). Смысл его работы показан на рисунке:

На винде он так же точно работает, только через NSClient++.

Итак, приступим. Процесс настройки и установки хорошо описан в официальной пдф-ке: http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf . Но я опишу свои шаги.

1. Устанавливаем необходимую библиотеку:

apt-get update
apt-get install build-essential libssl-dev xinetd


2. Скачиваем сам плугин и распаковываем. На момент написания статьи последняя версия была 2.13:

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
tar -xzvf nrpe-2.13.tar.gz

3. Переходим в директорию с сорцами плугина, конфигурим и устанавливаем:

cd nrpe-2.13/

./configure
make all

make install-plugin
make install-daemon
make install-daemon-config
4. Также можно запускать nrpe с помощью xinetd, как я и сделал:

make install-xinetd
nano /etc/xinetd.d/nrpe

Где прописываем:

# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
        flags           = REUSE
        socket_type     = stream
        port            = 5666
        wait            = no
        user            = nagios
        group           = nagios
        server          = /usr/local/nagios/bin/nrpe
        server_args     = -c /usr/local/nagios/etc/nrpe.cfg –inetd
        log_on_failure  += USERID
        disable         = no
        only_from       = 127.0.0.1
}

И рестартуем xinetd:

/etc/init.d/xinetdt restart
5. Создаем ссылку чтобы без полного пути выполнять команду:

ln -s /usr/local/nagios/libexec/check_nrpe /usr/bin/check_nrpe

6. Проверяем и перезапускаем Nagios:

check_nrpe
/etc/init.d/nagios restart
7. Конфиг NRPE находится тут: /usr/local/nagios/etc/nrpe.cfg . В нем нужно прописать IP адреса машин, которые мониторятся, например:

allowed_hosts=127.0.0.1,192.168.2.0/24

8. Проверяем работоспособность NRPE (вместо localhost можно указывать адрес машины, которая мониторится, но там должен быть настроен NRPE Listener):
/usr/local/nagios/libexec/check_nrpe -H localhost
Кстати, помним, что NRPE использует порт 5666 (по умолчанию), соответственно, его надо открыть ка кна стороне сервера, так и клиента (!). На сервере в файлике /etc/services должна быть запись: 

nrpe              5666/tcp                         # Nagios Remote Plugin Executor

9. Далее необходимо настроить Windows машину.
Скачиваем под нужную архитектуру отсюда http://nsclient.org/nscp/downloads/ . Обязательно (!!111) версию 0.3.9, а не 0.4.0. На момент написания в статьи версия 0.4 была полный пис оф щит 🙂 – под ней всё описанное ниже не работает.
Устанавливаем клиент, отметив галочки напротив всех плугинов и прописав адрес нашего Nagios сервера.
10. Подредактируем конфиг C:Program FilesNSClient++NSC.ini добавив следующее:
В секции [NRPE]:
allow_arguments=1
allow_nasty_meta_chars=1
В секции: [External Scripts]:

check_filesize=cscript.exe //nologo //T:60 “C:Program FilesNSClient++scriptscheck_filesize.vbs” -p C:WindowsSysWOW64 -f imageres.dll -w 10000 -c 20000


Путь, имя файла и пределы – понятное дело, те, кото
рые нужны Вам.
11. Теперь скачиваем отсюда или отсюда сам скриптец check_filesize.vbs и ложим в папку C:Program FilesNSClient++scripts . Перезапускаем сервис NSClient++ и идем обратно на сервер.
12. Пропишем 2 команды – общая для NRPE и конкретно для нашего файлика. В /usr/local/nagios/etc/objects/commands.cfg :

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


define command{        command_name    check_filesize
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_filesize -a $ARG1$ $ARG2$ $ARG3$ $ARG4$
        }

13. Далее в конфиге для нашей Windows машины прописываем (подставляя свои данные, ясный-красный):

define service{
        use                     generic-service
        host_name               Server Windows 1
        service_description   Check imageres.dll
        check_command           check_nrpe!check_filesize
        notifications_enabled   1
}

Команда указана без параметров, соответственно – будут использоваться те, что прописаны на Win машине в NSC.ini. Если Вам нужно мониторить несколько файлов на одной машине, то придется указывать параметры (я на них забил – и так сложно было разобраться, как всё правильно настроить).


14. Перезагрузим Nagios:
/etc/init.d/nagios reload

Если вы всё правильно сделали, то через несколько минут, когда Nagios одуплится, вы увидите результат.

При написании статьи использовалась идея из http://felipeferreira.net/?p=53 Но сама конфигурация была выработана методом проб и ошибок.
Также можно изменить код скрипта (он на VB), чтобы файлик мониторился в определенных пределах размеров (например, 10Мб < файл < 20 Мб). 
http://geckich.blogspot.com/

Настройка сети в Debian / Ubuntu Linux

Тапками не кидать – заметка чисто для себя. Ну и мож кому пригодится.

Редактируем файлик /etc/network/interfaces в котором прописываем:

allow-hotplug eth0
auto eth0
iface eth0 inet static
   address 192.168.1.5
   netmask 255.255.255.0
   network 192.168.1.0
   broadcast 192.168.1.255
   gateway 192.168.1.1
   dns-nameservers 8.8.8.8

Вместо eth0 и цифирок ставим свои.

Также можно вбомбить в /etc/resolv.conf адреса своих днс серверов и домена:

domain example.com
search example.com
nameserver 109.86.2.2

В файлике /etc/hostname прописываем имя сервера:
name
В принципе, всё.
Если хотим дхсп, то вместо iface eth0 inet static прописываем iface eth0 inet dhcp и всё что ниже не вписываем.
http://geckich.blogspot.com/

Использование утилиты rdesktop в Linux

Утилита элементарна, но часто забываю параметры… вот и решил записать.
Используется для подключения к удаленному рабочему столу RDP Windows. В консоли Linux набираем (изи записываем в скрипт .sh):

rdesktop -k en-us -g 1400×900 -u Administrator -p secret 192.168.1.100

Указываем раскладку клавиатуры, разрешение, пользователя, пароль и адрес сервера, к которому хотим подключиться. Обязательно указывать только адрес.

http://geckich.blogspot.com/

В DSpace в поиске нет русских букв / крокозябры / иероглифы

Если Вы установили DSpace, прописали как сказано здесь Установка Dspace :

В файле dspace.cfg прописываем:

#Кодировка писем
mail.charset = UTF8

#Локализация
default.locale = ru

#Язык сообщений
default.language = ru_RU

И всё на русском, кроме поиска, т. е. картина примерно такая:

То это проблема с кодировкой в Apache Tomcat и надо залезть в настройки и в файле server.xml прописать следующее:

<!– Define a non-SSL HTTP/1.1 Connector on port 8080 –>
<Connector port=”8080″ maxHttpHeaderSize=”8192″
maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
connectionTimeout=”20000″ disableUploadTimeout=”true”
URIEncoding=”UTF-8″
/>

http://geckich.blogspot.com/

Установка Sun Java в Debian 6

Для того, чтобы поставить sun-jdk или sun-jre, а не open-jdk/jre, которые ущербны, необходимо сделать следующее.

1. Добавить в репозиториях раздел non-free путем дописывния в конец строк репозиториев в файлике /etc/apt/sources.list например (у вас прсото могут быть другие репозитории/зеркала):

deb http://mirror.yandex.ru/debian/ squeeze main contrib non-free

2. Теперь обновляем список пакетов и ставим джаву:
apt-get update
apt-get install sun-java6-jdk
Для того, чтобы джава нормлаьно работала в браузерах, необходимо поставить пакет с плугином:
apt-get install sun-java6-plugin
3. Переключиться на новую джаву (если до этого юзалась open java) командой:
update-alternatives –config java
Будет что-то типа:

  Selection    Path                                      Priority   Status
————————————————————
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/bin/gij-4.4                           1044      manual mode
  2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Выбираем 3… Усё.
http://geckich.blogspot.com/

Установка VMWare vSphere CLI в Debian 6 (squeeze)

Для этого придется прикинуться “шлангом”) т. е. Бубунтой.

Качаем отсюда vSphere CLI для нужной архитектуры
Распаковываем:

tar -xzvf VMware-vSphere-CLI-5.0.0-615831.x86_64.tar.gz
cd vmware-vsphere-cli-distrib

Затем необходимо установить все зависимости:

aptititude install libxml-libxml-perl perl-doc libssl-dev e2fsprogs libarchive-zip-perl libcrypt-ssleay-perl libclass-methodmaker-perl libdata-dump-perl libsoap-lite-perl

А теперь легким движение руки становимся бубунтой:

echo “ubuntu” > /etc/tmp-release
export http_proxy=
export ftp_proxy=

Ну и устанавливаем нашу прэлесть (нажимая Энтер, q, yes):
./vmware-install.pl
http://geckich.blogspot.com/

Не устанавливаются пакеты в Debian

Была у меня такая проблема. Пытаешься чтото установить и вываливает в логе:

Extracting templates from packages: 100%
Preconfiguring packages …
Setting up initscripts (2.88dsf-13.1+squeeze1) …
insserv: warning: script ‘S85vpnagentd_init’ missing LSB tags and overrides
insserv: warning: script ‘vpnagentd_init’ missing LSB tags and overrides
insserv: Starting vpnagentd_init depends on stop-bootlogd and therefore on system facility `$all’ which can not be true!
insserv: Starting vpnagentd_init depends on stop-bootlogd and therefore on system facility `$all’ which can not be true!
…..
insserv: Starting vpnagentd_init depends on stop-bootlogd and therefore on system facility `$all’ which can not be true!
insserv: There is a loop between service vpnagentd_init and stop-bootlogd if started
insserv:  loop involving service stop-bootlogd at depth 23
insserv:  loop involving service vpnagentd_init at depth 1
insserv: Starting vpnagentd_init depends on stop-bootlogd and therefore on system facility `$all’ which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing initscripts (–configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initscripts
E: Sub-process /usr/bin/dpkg returned an error code (1)

Виной этому оказался Cisco Easy VPN Client. а точнее, его инит-файл /etc/init.d/vpnagentd_init. В нем шапку по-умолчанию заменяем на:

#!/bin/sh

### BEGIN INIT INFO
# Provides: vpnagentd_init
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Cisco vpn agent daemon at boot time
# Description: Cisco vpn agent daemon (believe installed by company ssl client)
### END INIT INFO

После этого пакеты должны устанавливаться нормально.

http://geckich.blogspot.com/

Установка Skype 2.2 в Debian 6

Это сделать довольно легко. Вначале установим необходимые пакеты командой:

aptitude install ia32-libs ia32-libs-gtk libasound2-plugins

Задем идем на сайт скайпа и скачиваем пакет для нашей архитектуры и дистрибутива (в моем случае – Debian 5+ x64):

http://www.skype.com/intl/ru/get-skype/on-your-computer/linux/

Затем открываем терминал, переходим в директорию со скачанным пакетом и устанавливаем пакет командой:

dpkg -i skype-debian_2.2.0.35-1_amd64.deb
Всё.

Если нету записи звука от микрофона, то делаем так. Набираем в консоли от рута:

alsamixer

Нажимаем F4, смотрим на устройства захвата. нажимаем на всех Пробел, чтобы активировать. Мне помогла такая вот неочевидная настройка:

http://geckich.blogspot.com/

Как посмотреть Service Tag / Server Tag сервера.

Иногда нужно узнать серийный номер сервера из консоли ОС.
Для Windows:

открываем CMD и нам на помощь прийдут 3 WMI команды:

wmic bios get serialnumber
wmic csproduct get vendor,name,identifyingnumber

Результат будет примерно таким:

IdentifyingNumber    Name                Vendor
ABCDEF1              PowerEdge 2950      Dell Inc.

wmic /user:administrator /node:remote-host bios get serialnumber

а эта комана выводит серийный номер удаленного сервера:

SerialNumber
ABCDEF1

Для корректной работы этих команд должна быть хотя бы в режиме Manual служба Windows Management Instrumentation.

Для Linux:

используем команду

dmidecode -s system-serial-number