База знаний Зодиак.АйТиЭм

Local account group members from servers

Описание реализации

Реализация представлена в виде представления с SQL-запросом, собирающим всю необходимую информацию для последующей фильтрации.

Описание вывода

Результатом выполнения представления является таблица со следующими параметрами:


Действия по настройке отчёта

Настройка отчёта состоит из 3-х этапов:

  1. Подготовка скрипта сбора данных;
  2. Подготовка выборки;
  3. Подготовка представления.

Подготовка скрипта сбора данных

Для подготовки скрипта сбора данных необходимо выполнить следующие действия:

  1. Создать директиву, включающую элемент Shell сбора данных с текстом скрипта:
#!/bin/bash

groups=$(getent group  | cut -d: -f1)

for group in $groups; do
    members=$(getent group "$group" | cut -d: -f4 | tr ',' ' ')
    echo "Group: $group"
    echo "Members: $members"
    echo ""
done
  1. Во вкладке Настройки указать требуемое расписание запуска скрипта, включить сбор статистики и результата. В свойствах добавить записи Group, Members;
  2. Назначить с помощью ассоциации созданную директиву на группу с целевыми компьютерами;

Подготовка выборки

Для создания выборки необходимо выполнить следующие действия:
1. Перейти в раздел Выборки;
2. Создать новую выборку, при выборе свойств указать Имя элемента созданного скрипта;
3. В настройках выборки задать Имя в БД GroupMembers, имена свойств в БД members и group, задать всем свойствам тип String;
4. Сохранить выборку. В случае ошибки в веб-интерфейсе отобразится окно ошибки.

Подготовка представления

  1. В разделе Zodiac'а Представления создать новое представление с именем "Local account group members from servers" со следующим SQL-запросом:
SELECT
	computer.hostname AS hostname,
  	group_users."group" AS group_name,
  	group_users.members AS members
FROM public."GroupMembers" AS group_users
JOIN public.computer ON group_users.cid = computer.id
JOIN public.group_to_computer ON computer.id = group_to_computer.computer_id
JOIN public."group" AS gr ON gr.id = group_to_computer.group_id
WHERE gr."name" = {0}
  1. Перейти в подраздел Столбцы представления и выставить типы для следующих колонок:

    • hostname - String;
    • group_name - String;
    • members - String.
  2. Выставить для каждой колонки отображаемые имена (колонка Имя);

  3. Перейти из вкладки Столбцы во вкладку Условия, выставить имя Группа серверов, нажать на иконку пера;

  4. В появившемся окне задать следующий SQL-запрос:

SELECT "group".name FROM public."group" WHERE "group".id != -1
  1. Во вкладке окна Конфигурация и предпросмотр задать Тип условия: Одиночное значение, Возвращаемое значение: name, Отображаемое значение: name.
  2. Нажать Применить, сохранить созданное представление. В случае некорректной настройки появится предупреждение об ошибке.

Действия по применению

Для применения представления необходимо выполнить следующие действия:

  1. Открыть в веб-интерфейсе Zodiac'а раздел Представления;
  2. Открыть представление Local account group members from servers;
  3. Выбрать группу с серверами
  4. Выбрать опцию Экспорт, задать имя файла;
  5. Получить файл-отчёт формата .xlsx.