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

Local account group members

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

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

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

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


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

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

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

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

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

  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. Узнать название сформированной Zodiac-ом таблицы с результатами выполнения скриптов.
    Поскольку для отображения результатов выполнения каждого скрипта Zodiac формирует в базе данных соответствующую таблицу, предугадать заранее название данных таблиц невозможно.

Для определения названия таблицы необходимо выполнить следующие действия:
1.1 Авторизоваться под УЗ с правами администратора на компьютере, на который назначен скрипт;
1.2 Перейти в директорию /var/zodiac/agent/scrwd;
1.3 Обнаружить директорию с содержимым привязанного скрипта index.sh;
1.4 Первое число имени директории является приставкой к имени таблицы, которое в дальнейшем необходимо будет отредактировать в SQL-запросе.
Пример:
Есть скрипт, привязанный раннее к компьютеру с именем ETCD-PTR-03
Чтобы узнать приставку таблицы, созданной для сохранения результата выполнения скрипта, авторизуемся под УЗ администратора на данном компьютере и перейдём в указанную директорию.
Путем перебора обнаружим искомую директорию.
Для того, чтобы не перебирать вручную все директории, можно воспользоваться скриптом:

#!/bin/bash

# Перебираем все директории и поддиректории
find . -type d | while read dir; do
    # Проверяем наличие файла index.sh в текущей директории
    if [ -f "$dir/index.sh" ]; then
        # Ищем слово ldapsearch в файле index.sh
        if grep -q "ldapsearch" "$dir/index.sh"; then
            # Если найдено, выводим название директории
            echo "$dir"
        fi
    fi
done

Внутри скрипта потребуется указать искомое ключевое слово вместо ldapsearch и путь до директории, в которой производится поиск (если скрипт уже не находится в соответствующей директории).

В данном случае искомой приставкой является 26, т.е. названием таблицы будет являться dyn_tbl_script_26.

  1. В разделе Zodiac'а Представления создать новое представление с именем "Local account group members" со следующим SQL-запросом:
SELECT
	computer.hostname AS hostname,
  	group_users.data ->> 'Group' AS group_name,
  	group_users.data ->> 'Members' AS members
FROM public.dyn_tbl_script_X1 AS group_users
JOIN public.computer ON group_users.computer_id = computer.id
  1. Внутри SQL-запроса заменить следующие приставки:

    • X1 - число скрипта сбора данных;
  2. Перейти в подраздел Столбцы представления и выставить типы для следующих колонок:

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

  4. Сохранить созданное представление. В случае некорректной настройки появится предупреждение об ошибке.


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

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

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

Ограничения/Комментарии

  1. В случае пересоздания скрипта сбора данных также произойдёт пересоздание таблицы результатов выполнения скрипта, из-за чего заново потребуется выполнить поиск нового названия созданной в БД таблицы и отредактировать SQL-запрос.