Nagios и мониторинг хостов по ssh
Пригодится, если вдруг другими способами мониторить хосты не представляется возможным по разным причинам. Мне лично было просто лень измудряться на что то другое :)
Нам необходимо:
Случилось так, что системный пользователь 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@
Создаем пользователя 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@
Конект должен пройти без запроса пароля.
Теперь скопируем плагины nagios с сервера на клиент:
[cc lang=»bash»]nagios@client$ mkdir ~/plugins
nagios@server$ scp /usr/local/libexec/nagios/* nagios@
Проверяем работу плагинов на клиенте с сервера:
[cc lang=»bash»]nagios@server$ ssh nagios@
Должно получиться:
[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.
Много интересной информации есть здесь.