Я нахожусь в среде unix, где я использую check_by_ssh для выполнения подключаемых модулей Nagios. У некоторых хостов есть разные учетные записи unix, к которым Nagios должен подключиться по ssh для запуска плагинов. Я передаю имя учетной записи с помощью -l следующим образом:
command_line $USER1$/check_by_ssh -p 22 \
-H $HOSTADDRESS$ -l <user> -i /home/nagios/.ssh/$HOSTNAME$ -C '<plug-in path>'
Для машин с другой учетной записью unix есть ли способ избежать дублирования всех определений команд, например. заменить -l nagios на -l user1?
Я надеялся, что есть способ передать имя пользователя в определении хоста, чтобы сказать, что этот набор хостов должен входить в систему с пользователем user1, а этот другой набор хостов должен использовать user2.
Любая помощь приветствуется.
Спасибо
Примечание: я не тестировал этот код.
Тем не менее, я, вероятно, определил бы альтернативную проверку в commands.cfg с чем-то вроде:
# Check by SSH for hosts with different account
command_line $USER1$/check_by_ssh_alt -p 22 \
-H $HOSTADDRESS$ -l $ARG1$ -i /home/nagios/.ssh/$HOSTNAME$ -C '<plug-in path>'
А затем вызовите его примерно так:
define service{
use generic-service
hostgroup_name hostgroup_1
service_description Some Check by SSH
contacts hostgroup_1_admins
notification_options w,c,r
notification_period 24x7
notification_interval 0
check_command check_ssh_alt!user1
}
Удачи!