PostHeaderIcon Nagios и мониторинг хостов по ssh

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

  • сгенерировать пару RSA ключей на сервере и открытый ключ скопировать на клиент
  • завести на клиенте пользователя nagios
  • скопировать на клиента папку с плагинами нагиоса
  • описать в конфиге нагиоса соответствующие команды и сервисы

  • Случилось так, что системный пользователь nagios не имеет возможности залогиниться в систему. Но эту неприятность мы переживем :) Домашняя его директория находится в /var/spool/nagios/. Итак, логинимся в систему пользователем nagios и генерируем RSA ключи:
    [cc lang=»bash»]sudo -u nagios /bin/sh
    cd /var/spool/nagios/
    mkdir .ssh
    chmod 700 .ssh
    ssh-keygen -t rsa[/cc]
    Копируем публичный ключ на клиентский хост:
    [cc lang=»bash»]scp /var/spool/nagios/.ssh/id_rsa.pub user@:/home/user[/cc]
    Создаем пользователя nagios,необходимые папки и файлы на клиентской машине:
    [cc lang=»bash»]sudo adduser
    Username: nagios
    Full name: Nagios pseudo-user
    Uid (Leave empty for default):
    Login group [nagios]:
    Login group is nagios. Invite nagios into other groups? []:
    Login class [default]:
    Shell (sh csh tcsh zsh nologin) [sh]:
    Home directory [/home/nagios]: /var/spool/nagios
    Home directory permissions (Leave empty for default):
    Use password-based authentication? [yes]: no
    Lock out the account after creation? [no]:
    Username : nagios
    Password :
    Full Name : Nagios pseudo-user
    Uid : 1003
    Class :
    Groups : nagios
    Home : /var/spool/nagios
    Home Mode :
    Shell : /bin/sh
    Locked : no
    OK? (yes/no): yes
    adduser: INFO: Successfully added (nagios) to the user database.
    Add another user? (yes/no): no
    Goodbye![/cc]
    [cc lang=»bash»]mkdir /var/spool/nagios/.ssh
    mv /home/user/id_rsa.pub /var/spool/nagios/.ssh/authorized_keys
    chown -R nagios:nagios /var/spool/nagios/.ssh/
    chmod 700 /var/spool/nagios/.ssh/
    chmod 600 /var/spool/nagios/.ssh/authorized_keys[/cc]
    Залогинившись на сервере пользователем nagios, как указано выше, проверяем конект до клиента:
    [cc lang=»bash»]ssh -v nagios@[/cc]
    Конект должен пройти без запроса пароля.
    Теперь скопируем плагины nagios с сервера на клиент:
    [cc lang=»bash»]nagios@client$ mkdir ~/plugins
    nagios@server$ scp /usr/local/libexec/nagios/* nagios@:~/plugins[/cc]
    Проверяем работу плагинов на клиенте с сервера:
    [cc lang=»bash»]nagios@server$ ssh nagios@ «~/plugins/check_disk -w 500 -c 100 -p /var»[/cc]
    Должно получиться:
    [cc lang=»bash»]DISK OK — free space: /var 1610 MB (35% inode=85%);| /var=2951MB;4458;4858;0;4958[/cc]
    Проверяем плагином:
    [cc lang=»bash»]/usr/local/libexec/nagios/check_by_ssh -H 10.73.0.3 -C «~/plugins/check_disk -w 500 -c 100 -p /var»
    DISK OK — free space: /var 1609 MB (35% inode=85%);| /var=2951MB;4458;4858;0;4958[/cc]
    Отлично, всё работает. Теперь опишем команду и сервис:
    [cc lang=»bash»]commands.cfg
    define command {
    command_name check_ssh_disk
    command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -C «~/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$»
    }
    define service{
    use local-service ; Name of service template to use
    host_name client
    service_description Var_Partition
    check_command check_ssh_disk!10%!5%!/var
    notifications_enabled 1
    } [/cc]
    Ну и всё. Осталось перезапустить nagios.
    Много интересной информации есть здесь.

    Оставить комментарий

    PR-CY.ru