SCOM
Введение
System Center 2012 — Operations Manager позволяет наблюдать за компьютерами UNIX и Linux так же, как за компьютерами Windows. Вы можете отслеживать работоспособность и производительность, получать отчеты, выполнять задачи и производить необходимые настройки. Вы можете наблюдать за следующими компонентами компьютеров с ОС UNIX и Linux:
- службы и приложения;
- файловая система, дисковое пространство, область подкачки, оперативная память;
- сетевые интерфейсы;
- основные процессы и атрибуты;
- основные параметры конфигурации.
Установка агента
Машина для установки агента - Кентавр 7.0.5 (с последними на момент установки обновлениями)
Со страницы Поддерживаемые версии операционных систем UNIX и Linux был выбран вариант поставить клиента для RHEL6. Требования:
- glibc - 2.12-1.7
- Openssl - 1.0.0-4
- PAM - 1.1.1-4
- Доступ по SSH и открытый порт tcp\1270
RPM-пакеты находятся в папке на сервере, где установлен SCOM. Пытаемся установить его:
rpm -iv scx-1.5.1-138.rhel.6.x86.rpm Подготовка пакетов для установки... scx-1.5.1-138.el6 /opt/microsoft/scx/bin/tools/.scxsslconfig: error while loading shared libraries: librpm.so.1: cannot open shared object file: No such file or directory ошибка: ошибка выполнения сценария %post из scx-1.5.1-138.el6, код возврата 1
Подсовываем имеющуюся librpm-4.0.4.so:
ln -sf librpm-4.0.4.so /usr/lib/librpm.so.1 ldconfig
После этого установка проходит без ошибок, статус агента проверяем (отмечу, что именно так и должно быть):
scxadmin -status omiserver: is running omiagent: is stopped
Подключение сервера SCOM к агенту
Однако у пользователей при подключении к машине с установленным клиентом с сервера (после подписания сертификатов см. здесь Установка агента) возникла проблема:
Чтобы разобраться в чем может быть проблема, был установлен и настроен сервер SCOM. Все сделано по найденному в сети руководству
Затем была опробована инструкция Настройка мониторинга ОС Linux на примере Ubuntu Server 14.04 LTS
Настройка Linux для мониторинга
Создаем локального пользователя, который в дальнейшем будет использован в качестве Run As Account в SCOM. От имени этого пользователя в дальнейшем будет выполняться удалённое развёртывание агента SCOM через Мастер обнаружения.
sudo adduser scom-user
В процессе создания пользователя в системе была создана одноимённая группа scom-user. Добавим данную группу в перечень групп, которым разрешено подключение к системе по протоколу SSH.
sudo nano -Y sh /etc/ssh/sshd_config
Дополним строку конфигурационного файла, где перечисляются разрешённые группы:
# User groups access contol AllowGroups adm kom-srv-linux-administrators scom-user
Для вступления изменений в силу перезапускаем службу сервера SSH, затем добавляем созданного пользователя scom-user в встроенную в Ubuntu группу sudo для возможности выполнения команд требующих повышения прав доступа в системе
sudo usermod -a -G sudo scom-user
Разрешаем для указанного пользователя запуск sudo без ввода пароля. Для этого выполним команду специального режима редактирования системного файла /etc/sudoers:
sudo visudo
В конец открывшегося файла допишем фрагмент:
# Allow SCOM RunAs Account run sudo passwordless scom-user ALL=(ALL) NOPASSWD: ALL
После этого на сервере SCOM через Мастер обнаружения разворачивается агент. Как уже было сказано выше, на машинах с Ubuntu и Mint проблем не возникло.
Проблемы и их решения
На машине с Alt Linux 7 возникла следующая проблема:
Мастер обнаружения компьютер находит, даже начинается установка агента - но обрубается связь с ним по таймауту. Был проверен доступ по SSH для пользователя scom-user, возможность повышения привилегий командой sudo без ввода пароля - с этим проблем нет. Во временных файлах был найден пакет, который пытается установить мастер - scx-1.5.1-184.universald.1.x64.rpm. При установке данного пакета вручную - зависает вы выдает следующую ошибку:
Job for scx-cimd.service failed. See 'systemctl status scx-cimd.service' and 'journalctl -xn' for details. ошибка: ошибка выполнения сценария %post из scx-1.5.1-184, код возврата 1
Установка в итоге проходит, а вот запуск сервиса - нет:
фев 24 11:43:38 hostname systemd[1]: Failed to start LSB: Microsoft SCX CIM Server. фев 24 11:43:38 hostname systemd[1]: Unit scx-cimd.service entered failed state
Так как установка агента для RHEL6 уже была отлажена, то можно обхитрить мастер подстановкой нужного имени нужному пакету. Пакет scx-1.5.1-184.rhel.6.x64.rpm в папке C:\Program Files\Microsoft System Center 2012 R2\Operations Manager\Server\AgentManagement\UnixAgents\DownloadedKits переименовал в scx-1.5.1-184.universald.1.x64.rpm. После этого установка и подпись проходит успешно, однако на последнем этапе (проверка) - происходит ошибка:
"Операция проверки подписанного сертификата не выполнена" "Агент ответил на запрос, однако подключение WSMan не удалось установить из-за отказа в доступе."
На сайте MS technet.microsoft.com указано следующее:
Invalid credentials Error Description The agent responded to the request but the WSMan connection failed due to : Access is Denied. Possible Causes - The agent is installed, and the agent certificate has been signed, but the user credential provided for agent verification is invalid. - The user account specified for discovery was configured to authenticate with an ssh key, but the user credential provided for agent verification is invalid. Resolutions - Verify that the username and password for agent verification were input correctly and that the user is a valid user on the target host.
Первое, что было изучено, - это логи SSH, запуск сервиса с ключом DEBUG3:
/usr/sbin/sshd -o LogLevel=DEBUG3 -E /var/log/sshd.log
Однако он не пишет ни бита переданной информации или чего-то с ней связанного, просто сообщает что загружено, кого и откуда пустило/не пустило. В общем - не то.
Остается strace.
strace -ff -s 512 -o scomstrace/scom.strace /usr/sbin/sshd
Затем запустил Мастер обнаружения с сервака. И нашел любопытную строчку в одном из последних файлов:
sendto(3, "\210\0\0\0L\4\5\0\1\0\0\0\0\0\0\0op=PAM:authentication acct=\"scom-user\" exe=\"/opt/microsoft/scx/bin/omiserver\" hostname=? addr=? terminal=? res=failed\0\0\0"
Перед этим мастер открывает файл /etc/pam.d/omi, ниже его содержание:
auth required pam_userpass.so auth include common-login-use_first_pass account include common-login
На Ubuntu и на Mint - этого файла нет, настройки записаны в файла /etc/pam.conf (рядом с другими записями)
... omi auth required pam_env.so omi auth required pam_unix.so nullok_secure omi account required pam_unix.so omi session required pam_limits.so
При проверке через strace на компьютере с Ubuntu мастер также пытается достучаться до файла /etc/pam.d/omi. Но так как его нет идет в /etc/pam.d/other (в /etc/pam.conf даже не заглядывает) - его вид на Убунте:
@include common-auth @include common-account @include common-password @include common-session
Далее соответственно открывает все эти модули, считывает что там есть - и в итоге все работает. Удалил на АльтЛинуксе файл /etc/pam.d/omi, при попытке установки - идет также в файл /etc/pam.d/other На альте он такой:
auth required pam_unix.so account required pam_unix.so password required pam_unix.so session required pam_unix.so
Итог при трассировке:
sendto(3, "<81>Mar 4 17:12:29 omiserver: pam_unix(omi:auth): Credentials for user scom-user unknown", 89, MSG_NOSIGNAL, NULL, 0) = 89 sendto(3, "<85>Mar 4 17:12:29 omiserver: pam_unix(omi:auth): Authentication failed for UNKNOWN USER from scom-user(uid=0)", 111, MSG_NOSIGNAL, NULL, 0) = 111
Попробовал изменить pam_unix.so везде на pam_tcb.so - тоже самое:
sendto(3, "<81>Mar 4 17:00:11 omiserver: pam_tcb(omi:auth): Credentials for user scom-user unknown", 88, MSG_NOSIGNAL, NULL, 0) = 88 sendto(3, "<85>Mar 4 17:00:11 omiserver: pam_tcb(omi:auth): Authentication failed for UNKNOWN USER from scom-user(uid=0)", 110, MSG_NOSIGNAL, NULL, 0) = 110
После проведенных консультаций со знающими людьми выяснилось, что нужно привести файл /etc/pam.d/omi к виду:
auth include system-auth account include system-auth
После этого операция обнаружения и развертывания агента был успешно завершена, компьютер с Alt Linux был добавлен в мониторинг сервера SCOM 2012.