SCOM

Материал из ALT Linux Wiki

Введение

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 к агенту

Однако у пользователей при подключении к машине с установленным клиентом с сервера (после подписания сертификатов см. здесь Установка агента) возникла проблема: Error connect scom.png

Чтобы разобраться в чем может быть проблема, был установлен и настроен сервер 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 проблем не возникло.

Проблемы и их решения

На машине с AltLinux 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

После этого операция обнаружения и развертывания агента был успешно завершена, компьютер с AltLinux был добавлен в мониторинг сервера SCOM 2012.