PostHeaderIcon Nagios ssh

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

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

  • Случилось так, что системный пользователь nagios не имеет возможности залогиниться в систему. Но эту неприятность мы переживем :) Домашняя его директория находится в /var/spool/nagios/. Итак, логинимся в систему пользователем nagios и генерируем RSA ключи:

    1
    2
    3
    4
    5
    sudo -u nagios /bin/sh
    cd /var/spool/nagios/
    mkdir .ssh
    chmod 700 .ssh
    ssh-keygen -t rsa

    Копируем публичный ключ на клиентский хост:

    1
    scp /var/spool/nagios/.ssh/id_rsa.pub user@<ip-клиента>:/home/user

    Создаем пользователя nagios,необходимые папки и файлы на клиентской машине:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    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   : <disabled>                                    
    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 <a href="http://normproject.org/">rhode island no deposit online casino</a>? (yes/no): no                                  
    Goodbye!
    1
    2
    3
    4
    5
    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

    Залогинившись на сервере пользователем nagios, как указано выше, проверяем конект до клиента:

    1
    ssh -v nagios@<ip-клиента>

    Конект должен пройти без запроса пароля.
    Теперь скопируем плагины nagios с сервера на клиент:

    1
    2
    nagios@client$ mkdir ~/plugins
    nagios@server$ scp /usr/local/libexec/nagios/* nagios@<ip-клиента>:~/plugins

    Проверяем работу плагинов на клиенте с сервера:

    1
    nagios@server$ ssh nagios@<ip-клиента> "~/plugins/check_disk -w 500 -c 100 -p /var"

    Должно получиться:

    1
    DISK OK - free space: /var 1610 MB (35% inode=85%);| /var=2951MB;4458;4858;0;4958

    Проверяем плагином:

    1
    2
    /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

    Отлично, всё работает. Теперь опишем команду и сервис:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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                                                      
            }

    Ну и всё. Осталось перезапустить nagios.
    Много интересной информации есть здесь.

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

    PR-CY.ru