Raporty SQL
Uruchomienie hurtowni danych
Hurtownia danych jest możliwa do włączenia per Profil Agenta w sekcji Hurtownia danych (dla posiadaczy licencji na ten moduł).
Z dowolnego miejsca w systemie kliknij na ikonę swojego profilu i wybierz Ustawienia → Profile agenta → Desktop
Z listy profili, wybierz przypisany do osoby/urządzenia, z którego mają być zbierane dane.
W sekcji Hurtownia danych należy określić zakres dotyczący zarówno częstotliwości zbierania danych jak i poszczególnych zakresów. Należy zwrócić uwagę też na opisy poszczególnych elementów. Więcej informacji znajdziesz w artykule Profile agenta Windows
Jak utworzyć zapytanie SQL ?
Z dowolnego miejsca w systemie wybierz Inne → Raporty.
Kliknij Utwórz nowy raport.
Zbuduj zapytanie korzystając z edytora - kliknij na ikonę Pomoc aby wyświetlić słownik i ułatwić sobie pracę
Zapisz raport.
Gotowe raporty w LOG Plus
Lista gotowych raportów, które możesz użyć:
Posiadając moduł monitoring:
Monitoring logowania
Monitoring plików
Monitoring procesów
Monitoring stron www
Monitoring wydruków
Procesy uruchamiane na Komputerach w Dziale (30 dni)
Procesy uruchamiane na Komputerze (30 dni)
Procesy uruchamiane przez Osobę (30 dni)
Procesy uruchamiane przez Osoby w Dziale (30 dni)
Strony WWW odwiedzane na Komputerach w Dziale (30 dni)
Strony WWW odwiedzane na Komputerze (30 dni)
Strony WWW odwiedzane przez Osobę (30 dni)
Strony WWW odwiedzane przez Osoby w Dziale (30 dni)
Posiadając moduł RODO:
Rejestr czynności przetwarzania
Oraz dowolne zapytania do hurtowni danych napisane w SQL (słownik składni dostępny w oprogramowaniu)
Uwaga!
Należy pamiętać że raporty systemowe należy dopasować pod własne potrzeby (dodać odpowiednie zmienne w obrębie danego raportu).
Przykład parametryzacji raportu: Procesy uruchamiane na Komputerach w Dziale (30 dni)
Raport prezentuje procesy uruchamiane na komputerach w odniesienie do konkretnego Działu (komputery muszą posiadać relację z odpowiednim działem na schematem organizacyjny)
Treść domyślnego skryptu
WITH cte_org AS (
SELECT Id, Name, Parent_id FROM [Department]
WHERE Parent_id IS NULL AND
-- Parametr zapytania:
-- Nazwa organizacji (wybierz tylko jedną)
Name = ''
UNION ALL
SELECT d.Id, d.Name, d.Parent_id FROM [Department] d
INNER JOIN cte_org o ON o.Id = d.Parent_id
)
SELECT roi.ProcessName as "Nazwa procesu", soft.SoftwareType as "Typ procesu", computer.Name as "Nazwa komputera", roi.Username as "Login użytkownika", (SELECT TOP 1 Name FROM cte_org) as "Organizacja", STRING_AGG(department.Name, ', ') WITHIN GROUP (ORDER BY department.Name) as "Dział", roi.UsageSecondsPerHour as "Czas użytkowania (sek)" FROM [RoiSummary] roi
LEFT JOIN [Computer] computer ON roi.Computer_id = computer.Id
LEFT JOIN [Software] soft ON roi.Software_id = soft.Id
LEFT JOIN [ComputerDepartment] cd ON computer.Id = cd.Computer_id
LEFT JOIN [Department] department ON cd.Department_id = department.Id
WHERE roi.RoiLevel = 'Last30Days' AND roi.ProcessName != 'Idle' AND department.Id IN (SELECT Id FROM cte_org)
-- Parametry zapytania:
-- Wykluczony komputer po nazwie
AND computer.Name NOT LIKE ''
-- Nazwa działu
AND (department.Name LIKE ''
-- dodatkowy dział
-- OR department.Name LIKE ''
)
GROUP BY roi.ProcessName, roi.Software_id, soft.SoftwareType, computer.Name, roi.Username, roi.UsageSecondsPerHour
Minimalny zestaw zmiennych, które należy uwzględnić parametryzując skrypt:
Nazwa organizacji na podstawie schematu organizacyjnego
-- Nazwa organizacji (wybierz tylko jedną)
Name = ''
Nazwa działu na podstawie schematu organizacyjnego
-- Nazwa działu
AND (department.Name ILIKE ''
Jeśli nie są spełnione w/w warunki raport wygeneruje się pusty, czyli z zerową liczbą rekordów.
Założenia do wykonania poprawnego raportu
sparametryzowany skrypt raportu:
WITH cte_org AS (
SELECT Id, Name, Parent_id FROM [Department]
WHERE Parent_id IS NULL AND
-- Parametr zapytania:
-- Nazwa organizacji (wybierz tylko jedną)
Name = 'LOG Systems'
UNION ALL
SELECT d.Id, d.Name, d.Parent_id FROM [Department] d
INNER JOIN cte_org o ON o.Id = d.Parent_id
)
SELECT roi.ProcessName as "Nazwa procesu", soft.SoftwareType as "Typ procesu", computer.Name as "Nazwa komputera", roi.Username as "Login użytkownika", (SELECT TOP 1 Name FROM cte_org) as "Organizacja", STRING_AGG(department.Name, ', ') WITHIN GROUP (ORDER BY department.Name) as "Dział", roi.UsageSecondsPerHour as "Czas użytkowania (sek)" FROM [RoiSummary] roi
LEFT JOIN [Computer] computer ON roi.Computer_id = computer.Id
LEFT JOIN [Software] soft ON roi.Software_id = soft.Id
LEFT JOIN [ComputerDepartment] cd ON computer.Id = cd.Computer_id
LEFT JOIN [Department] department ON cd.Department_id = department.Id
WHERE roi.RoiLevel = 'Last30Days' AND roi.ProcessName != 'Idle' AND department.Id IN (SELECT Id FROM cte_org)
-- Parametry zapytania:
-- Wykluczony komputer po nazwie
AND computer.Name NOT LIKE ''
-- Nazwa działu
AND (department.Name LIKE 'IT'
-- dodatkowy dział
-- OR department.Name LIKE ''
)
GROUP BY roi.ProcessName, roi.Software_id, soft.SoftwareType, computer.Name, roi.Username, roi.UsageSecondsPerHour
organizacja posiada nazwę LOG Systems
istnieje na drzewie dla tej organizacji dział IT do którego taki komputer jest przypisany
dla przypisanego komputera/komputerów do działu IT istnieją w bazie dane w zakresie monitoringu procesów za ostatnie 30 dni
Efekt finalny wykonanego raportu (39 rekordów):
Jak wygenerować raport systemowy?
Z dowolnego miejsca w systemie wybierz Inne>Raporty.
Z listy raportów wybierz odpowiednią pozycję oraz uzupełnij zmienne (patrz czerwona ramka powyżej).
Wybierz Wykonaj.
Usunięcie zdublowanych raportów
W przypadku dubli raportów należy:
Wykonać backup bazy danych
Z
modyfikować poniższe polecenie podstawiając nazwę bazy danych LOG+ w miejsce NAZWA_BAZY_DANYCH
UPDATE [NAZWA_BAZY_DANYCH].[dbo].[DataWarehouseReport]
SET SourceType = 'Custom'
WHERE SourceType != 'Custom' AND (Name = 'Monitoring plikow'
OR Name = 'Monitoring procesow'
OR Name = 'Monitoring wydrukow'
OR Name = 'Monitoring_plikow'
OR Name = 'Monitoring_procesow'
logplus.io