Компьютеры с определенным видеоадаптером
Описание реализации
Реализация представлена в виде представления с SQL-запросом, собирающим всю необходимую информацию для последующей фильтрации.
Описание вывода
Результатом выполнения представления является таблица со следующими параметрами:
- computer_name - Имя компьютера;
- ip - IPv4 адрес компьютера;
- fqdn - FQDN компьютера;
- videocard - Видеоадаптер.
Действия по настройке отчёта
Настройка отчёта состоит из 2-х этапов:
- Подготовка скрипта сбора информации о видеоадаптере;
- Подготовка представления.
Подготовка скрипта сбора списка файлов
Для подготовки скрипта сбора списка файлов необходимо выполнить следующие действия:
- Создать директиву, включающую элемент Shell сбора данных с текстом скрипта:
lspci | grep -Ei 'vga|3d|display' | awk -F ': ' '{print "result: " $2}'
- Во вкладке Настройки указать требуемое расписание запуска скрипта, включить сбор статистики и результата. В свойствах добавить запись result;
- Назначить с помощью ассоциации созданную директиву на группу с целевыми компьютерами;
Подготовка представления
До начала подготовки представления требуется дождаться выполнения настроенных скриптов. Убедиться в выполнении скриптов можно с помощью панели "Статистика" внутри элемента скрипта.
Для подготовки представления необходимо выполнить следующие действия:
- Узнать названия сформированных 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.
- В разделе Zodiac'а Представления создать новое представление с именем "Компьютеры с определенным видеоадаптером" со следующим SQL-запросом:
SELECT
public.computer.hostname AS computer_name,
public.computer.ip_address AS ip,
public.computer.fqdn AS fqdn,
public.dyn_tbl_script_X1.data ->> 'result' AS videocard
FROM public.computer
JOIN public.dyn_tbl_script_X1 ON public.computer.id = public.dyn_tbl_script_X1.computer_id
WHERE public.dyn_tbl_script_X1.data ->> 'result' = ANY ( {0} )
-
Внутри SQL-запроса заменить следующие приставки:
- X1 - Номер динамической таблицы с результатами выполнения скрипта.
-
Перейти в подраздел Столбцы представления и выставить типы для следующих колонок:
- computer_name - String;
- ip - String;
- fqdn - String;
- videocard - String.
-
Выставить для каждой колонки отображаемые имена (колонка Имя);
-
В подразделе Условия задать тип String и имя условия (к примеру videocard);
-
Задать справочник, нажав на рисунок пера:
Ввести следующий SQL запрос:
SELECT DISTINCT public.dyn_tbl_script_X1.data ->> 'result' AS result FROM public.dyn_tbl_script_X1
Внутри SQL-запроса заменить X1 номером динамической таблицы с результатами выполнения скрипта.
В подразделе Конфигурирование и предпросмотр задать Тип условия, возвращаемое условие result, отображаемое значение result:
Нажать применить;
7. Сохранить созданное представление. В случае некорректной настройки появится предупреждение об ошибке.
Действия по применению
Для применения представления необходимо выполнить следующие действия:
- Открыть в веб-интерфейсе Zodiac'а раздел Представления;
- Открыть представление Компьютеры с определенным видеоадаптером;
- Выставить условие, выбрав видеоадаптер;
- Выбрать опцию Экспорт, задать имя файла;
- Получить файл-отчёт формата .xlsx.
Ограничения/Комментарии
- В случае пересоздания одного из скриптов сбора данных также произойдёт пересоздание таблицы результатов выполнения скрипта, из-за чего заново потребуется выполнить поиск нового названия созданной в БД таблицы и отредактировать SQL-запрос.