Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam
Na początek chciałem się przywitać bo to mój pierwszy post tu na forum.
Jestem bardzo początkującym użytkownikiem opgrogramowania OCS Inventory w wersji 2.0.5 oraz GLPI w wersji 0.85.5.
Mam problem ponieważ potrzebuję otrzymywać na e-mail powiadomienia o zmianach w oprogramowaniu/sprzęcie na komputerach użytkowników.
Wyjaśniając chciałbym dostać maila gdy jakiś użytkownik zainstaluje u siebie jakieś oprogramowanie lub np. wymieni jakąś część w komputerze.
Zainstalowałem wtyczkę raporty do glpi i tam mam możliwość ręcznego tworzenia raportów o zmianie w opgrogramowaniu lub sprzęcie ale niestety nie wiem jak to zautomatyzować.
Wiem że na pewno istnieje taka możliwość ponieważ mój poprzednik to wdrożył kiedyś ale potem przestało to działać, on od dawna nie pracuje u nas w firmie a serwer na którym to stało również już nie istnieje.
Pozdrawiam
Offline
Czy ten OCS Inventory albo ten GLPI zapisuje jakieś logi, które można by śledzić skryptem?
Jeśli tak, to paręnaście linijek Basha albo Perla i po kłopocie.
Offline
OCS jak i GLPI trzymają swoje dane w mysqlowych bazach.
Offline
Nie pytam o dane tylko o logi.
Jeżeli żadnych logów nie ma, to możesz zrobić tak:
W skrypcie np Perla, wywołujesz SELECT do tabeli bazy danych, żeby pokazał rekordy dodane np w ciągu ostatniej godziny albo dnia.
Jeżeli jest wynik 0 rekordów, to skrypt kończy pracę, jeśli jest wynik dodatni, pojawiły się nowe rekordy, to skrypt wysyła w jakiejś formie komunikat na maila, albo np jabbera.
Potem ten skrypt uruchamiasz przez CRONA co ustalony okres czasu automatycznie, i gotowe.
Nie jest to jakaś magiczna procedura, ale kawałek programowania w jakimś języku (np Perl, Python) jest tutaj konieczny.
Przy czym to mała łopatologia, zdecydowanie wolę tryb reagowania na zdarzenia, ale jak niewykonalne, to trudno.
PS
Wygląda na to, ze tego OCS INventory można zapiąć do sysloga, w takim przypadku tryb reagowania na zdarzenia można zrobić bajecznie prosto, wykorzystując wbudowane funkcje sysloga i możliwość wysyłania komunikatów na sockety UNIX czy kolejki FIFO.
Sznurki?
http://wiki.ocsinventory-ng.org/index.php/Developers:Unified_standalone
http://wiki.ocsinventory-ng.org/index.php/Developers:Unified_standalone#Logging
Ostatnio edytowany przez Jacekalex (2016-04-27 20:09:56)
Offline
Dzięki za podpowiedzi... ale to chyba zbyt wiele na moje umiejętności.
Faktycznie ocs i glpi korzysta z bazy danych sql. Miałem nadzieję że istnieje jakaś wtyczka która zrobiłaby to z automatu.
Mam wtyczkę "raporty" którą można ręcznie uruchamiać i generować raport o zmianach w sprzęcie lub oprogramowaniu. Zastanawiam się w jaki sposób zrobić żeby ta wtyczka uruchamiała generowanie raportu co określoną ilość czasu + dodatkowo wysyłała powiadomienie z wynikami ale nie wiem czy to możliwe.
Offline
Możesz spróbować napisać trigger w bazie danych który uaktywni się po każdej zmianie.
Offline
[quote=jurgensen]Możesz spróbować napisać trigger w bazie danych który uaktywni się po każdej zmianie.[/quote]
W zasadzie tak, ale nigdy nie słyszałem, żeby trigger z Mysql sam wysyłał maile. :D
Tak czy inaczej trzeba zapiąć CRONA lub pisać extra moduł do Mysqla:
http://forums.mysql.com/read.php?99,33635,33651#msg-33651
Ale za to Mysql może przygotować elegancką treść maila:
http://stackoverflow.com/questions/387483/how-to-send-email-from-mysql-5-1
W każdym razie logi przez unix_socket/named_pipe i jakiś prosty demon (Perl|Python|Swatch|Bash&Grep), który z takiego logu robi maila, to chyba prostsze rozwiązanie.
Wysyłanie maila to nie problem.
np:
http://www.perlfect.com/articles/sendmail.shtml
Pozdro
Ostatnio edytowany przez Jacekalex (2016-04-29 18:04:58)
Offline
mam wtyczkę która generuje raporty. W tym 2 raporty history of last hardware installations oraz history of last software installations .
ścieżka do nich to /var/www/glpi/plugins/reports/report/histohard/histohard.php oraz histosoft.php
Zastanawiam się czy można jakoś wrzucić do crona zeby te 2 pliki odpalały się np. co godzinę, wynik działania skryptów wrzucały do innego pliku z rozszerzeniem np. txt albo najlepiej od razu do maila i wysyłały go.
Ostatnio edytowany przez moro (2016-05-02 15:41:50)
Offline
Muszę napisać parser do logów który będzie mi wyciągał z nich informacje jak wyglądała sytuacja z przed zmiany oraz stan po zmianie, w tym co się zmieniło, godzina, data, IP etc... może mnie ktoś pokierować w jaki sposób się za to zabrać?
Mam stworzony trigger który umożliwia mi pobieranie danych o zmianie IP + informacja na jakim komputerze
Mam również trigger który wysyła info o nowo zainstalowanym opgrogramowaniu. Nie potrafię jednak przy tej pozycji wyciągnąć z bazy nazwy komputera.
może ktoś korzysta z glpi i mógłby rzucić okiem w jaki sposób można by to zrobić?
Przy IP nie ma problemu bo jest ID po którym można zlokalizować komputer, w przypadku software nie potrafie zlokalizować w całej bazie tabeli w której są informacje o tym do którego komputera przynależy dane opgrogramowanie.
Ostatnio edytowany przez moro (2016-05-11 15:23:23)
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00106 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.94.77' WHERE u.id=1 |
0.00061 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.94.77', 1732406384) |
0.00043 | SELECT * FROM punbb_online WHERE logged<1732406084 |
0.00052 | SELECT topic_id FROM punbb_posts WHERE id=301062 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=28574 ORDER BY posted |
0.00060 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28574 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00087 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28574 ORDER BY p.id LIMIT 0,25 |
0.00077 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28574 |
Total query time: 0.00517 s |