Как разрешить пользователю в Nagios просматривать статус некоторых серверов, но ничего не отключать / включать?
В /usr/local/nagios/etc/cgi.cfg (или где бы он ни находился в вашей системе) определите пользователей только для чтения:
# A comma-delimited list of usernames that have read-only rights in
# the CGIs. This will block any service or host commands normally shown
# on the extinfo CGI pages. It will also block comments from being shown
# to read-only users.
authorized_for_read_only=viewer
Конечно, сначала нужно определить программу просмотра как контакт с соответствующей аутентификацией htpasswd. На странице сведений о службе / хосте в правой части, где обычно находятся команды, будет сказано:
У вашей учетной записи нет разрешений на выполнение команд.
Если я правильно понял ваш вопрос, вы хотели бы добавить пользователей к nagios, которые могут видеть только некоторые из серверов и не имеют полномочий выполнять какие-либо административные задачи (запуск / остановка мониторинга или оповещения).
Для этого вам нужно будет добавить пользователя в файл .htpasswd для nagios, а затем создать контакт в nagios с именем contact_name, совпадающим с именем пользователя, заданным в .htpasswd, а затем добавить этот контакт только к хостам, которые вы хотите, чтобы они видели. Помните, что когда вы добавляете в конфигурацию хоста вещи, которые также определены в шаблоне, они переопределяют шаблон, а не добавляют к нему, поэтому вам также нужно будет снова добавить все контакты, которые хост уже имеет в шаблоне.
Для разрешения пользователю доступ только для просмотра только для некоторых хостов в веб-просмотре Nagios необходимо внести следующие изменения:
Примечание: Перейти к 3. если у вас уже включена аутентификация, защищенная паролем:
Отредактируйте cgi.cfg
находится в вашей установке nagios (например, /usr/local/nagios/etc
) для включения защищенного паролем входа:
use_authentication=1
в nagios.conf
файл в каталоге установки Apache, убедитесь, что включены следующие строки, указывающие на htpasswd.users
файл:
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
Добавить пользователя в htpasswd.users
файл с помощью htpasswd
и диспетчер паролей Apache HTTPD. Местоположение может отличаться в зависимости от вашей системы; несколько распространенных мест для этого /usr/bin
и /usr/local/apache/bin
:
# htpasswd /usr/local/nagios/etc/htpasswd.users testuser01
New password:
Re-type new password:
Adding password for user testuser01
Отредактируйте cgi.cfg
находится в вашей установке nagios; раскомментировать authorized_for_read_only
и добавьте имя (а) пользователя, для которого вы хотите предоставить доступ:
authorized_for_read_only=testuser1
Создайте запись для пользователя в objects/contacts.cfg
из вашей установки nagios:
define contact {
contact_name testuser01
use generic-contact
alias Test User 01
email test.user01@email.com
}
В то же самое objects/contacts.cfg
определите также группу, которая будет содержать пользователя и других будущих пользователей, которым потребуется такой же доступ к одним и тем же хостам - проще управлять, когда пользователи содержатся в группах:
define contactgroup {
contactgroup_name view-only-host01
alias View Only access to alarms for Host01
members testuser01
}
Возьмите контактную группу, определенную ранее, view-only-host01
, и в .cfg вашего хоста (например, objects/host01.cfg
) добавьте его к каждой службе, для которой вы хотите предоставить доступ только для просмотра:
define service{
service_description Alarm for Test service - Metric 01
check_command webinject!test/test.xml
servicegroups availability
contact_groups admins,view-only-host01
}
Перезагрузите nagios
В вашем файле cgi.cfg есть следующие строки:
authorized_for_all_services=*
authorized_for_all_hosts=*
Обычно они настроены так, как указано выше, поэтому все пользователи могут, по крайней мере, просматривать все ваши хосты и службы. Поэтому, если вы добавите нового пользователя в файл htpasswd, он по умолчанию должен получить желаемое поведение.