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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2017-09-14 20:33:26

  moro - Użytkownik

moro
Użytkownik
Zarejestrowany: 2016-04-27

wysłanie maila z linią loga jako temat

Witam

Chciałbym wysyłać maile z sysloga po znalezieniu w nim konkretnej frazy ale w ten sposób, żeby linia z loga z frazą była tematem maila.
Obecnie używam swatch ale on jako temat przypisuje albo swój temat, albo z góry przeze mnie nadany w configu. Czy jest możliwość za jego pomocą lub jakiegoś innego narzędzia wysłać maila o temacie - linijka z loga a treść może być pusta.

Offline

 

#2  2017-09-14 20:47:18

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: wysłanie maila z linią loga jako temat

Po co maila?

Puszczasz logi w syslogu na kolejkę  fifo stworzoną poleceniem np:

Kod:

mkfifo /dev/syslog

Apotem możesz sobie do dowolnego skrypta z czytywać tą kolejkę, przykład w Perlu:

Kod:

#!/usr/bin/perl

use strict;

  open(FIFO, "< /dev/syslog") or die ": unable to open /dev/syslog: $!\n";
  
  while (<FIFO>) {

 print $_;

}

Następnie dodajesz dowolne regexy
np tak:
https://forum.dug.net.pl/viewtopic.php?id=22977

A potem moduł NET::SMTP albo lepiej jakiś moduł do XMPP - np AnyEvent:XMPP wysyła wyjście regexa przez maila lub jabbera.
Jakmają tego iść wieksze ilości, to lepiej mieć własny serwer maila i jabbera, bo na innych mogą się ważne rzeczy na limitach zatrzymać.

Po drugiej stronie podobny robot może wiadomości XMPP odbierać i wykonywać z nimi dowolne akcje, jakie Ci do głowy przyjdą.

PS
Tak się przypadkowo składa, że wszystkie znane mi implementacje sysloga w Linuxie potrafią wysyłać logi przez sieć przeważnie używając szyfrowania TLS:
np:
http://www.rsyslog.com/doc/v8-stable/tutorials/tls_cert_summary.html
To chyba najciekawsze wyjście, a np rsyslog też obrabia regexy w pliku konfiguracyjnym.
To może być ciekawsze i prostsze  wyjście.
http://www.rsyslog.com/doc/v8-stable/configuration/filters.html
http://www.rsyslog.com/regex/

Pozdro

Ostatnio edytowany przez Jacekalex (2017-09-14 20:58:43)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2017-09-14 20:57:40

  moro - Użytkownik

moro
Użytkownik
Zarejestrowany: 2016-04-27

Re: wysłanie maila z linią loga jako temat

nic prościej nie da rady ogarnąć? :)

Offline

 

#4  2017-09-14 21:00:54

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: wysłanie maila z linią loga jako temat

Co to znaczy prościej?

Prościej, to masz swatcha właśnie.

Pokaż przykład takiego loga,co potrzebujesz wysłać, może się coś innego da wykombinować.

Przy okazji napisz, co dokładnie ma tego maila odbierać, że log musi być w temacie
a nie w treści wiadomości.

Z resztą syslogi też potrafią skrypty odpalać:
https://unix.stackexchange.com/questions/87223/rsys … ing-log-event

Ostatnio edytowany przez Jacekalex (2017-09-14 21:05:07)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2017-09-14 21:07:49

  moro - Użytkownik

moro
Użytkownik
Zarejestrowany: 2016-04-27

Re: wysłanie maila z linią loga jako temat

mam syslog do którego trafiają różne info np. ze snorta, arpwatcha itd... i jak wpada tam jakaś konkretna fraza to chcę otrzymać na maila powiadomienie... np. nowe urządzenie loguje się do sieci - do laga trafia mi info że jest nowy mac, IP jakie dostał itd... teraz dostaję maila z tematem jaki napisałem a w treści jest IP i mac tego urządzenia, podobnie z logami ze snorta.
Czasami przychodzi 1 mail na dzień, czasami kilka - dużo wygodniej przegląda się takie wiadomości jeżeli te info miałbym w temacie a nie musiał wchodzić do każdej wiadomości osobno.
Mam np. Bacule i z niej logi przychodzą w formie czytelnego tematu i z niego wiem czy coś się zrobiło na danym hoście czy nie i jeżeli chcę szczegóły to dopiero wtedy otwieram danego maila.

Czy do tematu w configu swatch można zastosować jakaś zmienną typu $0 albo $1, która odzwierciedlałaby konkretne fragmenty linii loga?


przykładowa linia:
Aug 2 11:02:35 smoothsec64 arpalert:  seq=322184, mac=33:33:33:33:33:33, ip=192.168.100.100, type=new, dev=eth0, vendor="(null)"


W temacie wystarczyłoby: new IP mac=33:33:33:33:33:33 ip=192.168.100.100

Czy właśnie tutaj mógłbym zastosować w jakiś sposób Subject: new IP $7 $8    ??

Ostatnio edytowany przez moro (2017-09-14 21:15:30)

Offline

 

#6  2017-09-14 21:52:32

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: wysłanie maila z linią loga jako temat

Trzeba było od razu pisać, ze chodzi o nowych pacjentów w sieci.

Do takiej zabawy masz gotowe narzędzie, arpwatch, który zawiadamia na maila
o nowych urządzeniach.

Ale arpwatch wysyła takiego maila:
temat:

Kod:

new station (router) net

treść:

Kod:

            hostname: router
          ip address: 192.168.0.1
           interface: net
    ethernet address: c0:c6:87:5e:d2:3e
     ethernet vendor: <unknown>
           timestamp: Thursday, September 14, 2017 21:53:17 +0200

Ostatnio edytowany przez Jacekalex (2017-09-14 21:54:48)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7  2017-09-14 22:04:39

  moro - Użytkownik

moro
Użytkownik
Zarejestrowany: 2016-04-27

Re: wysłanie maila z linią loga jako temat

Jacekalex napisał(-a):

Trzeba było od razu pisać, ze chodzi o nowych pacjentów w sieci.

Do takiej zabawy masz gotowe narzędzie, arpwatch, który zawiadamia na maila
o nowych urządzeniach.

Ale arpwatch wysyła takiego maila:
temat:

Kod:

new station (router) net

treść:

Kod:

            hostname: router
          ip address: 192.168.0.1
           interface: net
    ethernet address: c0:c6:87:5e:d2:3e
     ethernet vendor: <unknown>
           timestamp: Thursday, September 14, 2017 21:53:17 +0200

Tak tak wiem że jest arpwatch - ale on również nie wysyła maila o takim temacie jak bym chciał .

Dlatego próbuję wyjąć treść z sysloga.

Offline

 

#8  2017-09-14 22:10:33

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: wysłanie maila z linią loga jako temat

Dlaczego log musi być w temacie? jakiś program odbierający maila potrzebuje takiego rozwiązania, czy co?

Maila z arpwatcha nietrudno przetworzyć wyciągając IP i MAC z poziomu np Procmaila.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2017-09-14 22:22:44

  moro - Użytkownik

moro
Użytkownik
Zarejestrowany: 2016-04-27

Re: wysłanie maila z linią loga jako temat

Jacekalex napisał(-a):

Dlaczego log musi być w temacie? jakiś program odbierający maila potrzebuje takiego rozwiązania, czy co?

Tak jak pisałem ... jak przychodzi mail to łatwiej mi szybko sprawdzić co w nim jest przeglądając temat... dostaję różne raporty na maila z sieci i to jest szybsza forma wyciągania ważnych informacji.

ok poradziłem sobie

Kod:

#!/bin/bash

EMAILADDRESS="moj@mail.pl"
EMAILSUBJECT="$(cut -f 7,8,9 -d" " /home/alert.txt)"
MESSAGEBODY="/home/alert.txt"
SEARCHSTRING='type=new_mac'
SYSLOG=/var/log/syslog

tail -f /var/log/syslog | while read LINE
do
 if [ `echo $LINE | grep -c "type=new_mac"` -gt 0 ]
 then
        echo $LINE > $MESSAGEBODY
        echo "Nowy MAC ADDRESS w sieci" >> $MESSAGEBODY
        mail -s "$EMAILSUBJECT" "$EMAILADDRESS" < $MESSAGEBODY
 fi
done

Ostatnio edytowany przez moro (2017-09-15 13:01:32)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)