Portál AbcLinuxu, 3. května 2025 07:18

Logování přes jabber I.

15.3.2008 14:49 | Přečteno: 1136× | varia

Když jsem se zamýšlel nad možnostmi vzdáleného logování (PGP šifrované maily atd), uvědomil jsem si, že se dá problém celkem elegantně řešit pomocí Jabberu, který už v sobě šifrování má. Otevřel jsem jabbeřího bota, kterého jsem nedávno studoval a zjistil jsem, že udělat prográmek typu logger, který pošle string přes jabber není až tak složité. Třeba se níže uvedený prográmek bude někomu hodit ...

Co budeme potřebovat:
  • python
  • python-xmmp

    Soubor sendmsg.py:

    #!/usr/bin/python                                                                                                             
    import sys                                                                                                                    
    import xmpp                                                                                                                   
    jid=xmpp.protocol.JID("jmenorobota@jabber.cz")                                                                                            
    password="botovo_heslo"
    client=xmpp.Client(jid.getDomain(), debug=[])                                                                                 
    client.connect()                                                                                                              
    client.auth(jid.getNode(),password)                                                                                           
    client.sendInitPresence()                                                                                                     
    client.send(xmpp.protocol.Message(sys.argv[1],sys.argv[2],"chat"))        
    
    A teď stačí zavolat prográmek nějakým externím skriptíkem, který bude obsahovat třeba:

    /usr/bin/sendmsg.py adresat@jabber.cz "$1 $2 $3 $4 $5 $6 $7 $8 $9"

    Výše uvedené řešení samozřejmě ještě nešifruje, ale to snad nebude moc velký problém - až to rozchodím, tak napíšu druhý díl ;-).        

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

    Vložit další komentář

    15.3.2008 20:04 jjfgjgh
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    Vazne zajimavy. Opravdu. Taky me obcas chyta experimetnovani s jabberem a pythonem. Nechces napsat nejaky lehky uvod k tematu?
    Věroš avatar 15.3.2008 20:46 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    Tohle je malé kouzlo. Ale zkus si představit XMPP jako kanál pro distribuci zpráv mezi různými částmi aplikace, to je potom hukot. (A abych nezapomněl, Používáme to naživo, a plánuju se rozšíření.
    Školím Ansible
    15.3.2008 21:57 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    Řešit logování přes jabber mi připadá lehce nešťastné.

    Šifrování SSL lze vynutit mezi klientem a serverem, ale mezi servery šifrování nevynutíš a balit kvůli tomu každou zprávu která jde do logu GPGčkem aby šla skutečně zašifrovaná mi připadá docela neefektivní.

    Cpát logy přes XMPP je nestandardní způsob a ne všechny programy je možné nastavit tak aby mohly využít externí program pro logování. A i to využívání externího programu pro logání je docela zbytečná režie, pokud to když udělat jinakt. Spouštět kvůli každému hlášení externí program je o dost náročnější než to hlášení zapsat do souboru :-)

    Na vzdálené logování lze bez problémů použít syslog(-ng), zabezpečení lze řešit stunnelem, vpn, ipsec, vlanou...

    Jako zasílač upozornění na nějaké zvláštní akce je ten skriptík dobrý (třeba ve spojení s nagiosem).
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    15.3.2008 22:41 Georgius | skóre: 24 | blog: jirka
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    No mě právě jde o takové ty "critical" hlášky typu "nejede Apač", "loguje se root","někdo restartuje mašinu" ... Je mi jasný, že posílat každou hlášku přes xmpp by byla trochu zbytečnost ...

    Jinak uvažuji právě o PGP, ale zatím jsem narazil na problém s binárními daty a jejich posíláním :-(
    15.3.2008 23:06 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    možná bys mohl použít Base64?
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    Josef Kufner avatar 19.3.2008 22:54 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    Ale pokud umí program logovat do syslogu (což je jednodušší na implementaci než otevření souboru), tak není třeba nijak programy upravovat a stačí jen pověsit bota na syslog...
    Hello world ! Segmentation fault (core dumped)
    pavlix avatar 16.3.2008 00:32 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    Připojování je zdlouhavý, lepší je být připojený pořád a jenom posílat zprávy.

    Btw... pokud jde o šifrování... SSH taky umí šifrovat a používá se jednodušeji (na druhé straně si necháš pustit server).

    Posílat logy na Jabber má smysl tak když je někdo opravdu na druhé straně v Jabber klientovi čte.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    16.3.2008 08:18 Georgius | skóre: 24 | blog: jirka
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    To trvalý připojení není špatný nápad, zkusím se nad tím zamyslet. Jinak to logování je opravdu myšleno pro člověka na druhém konci kanálu - uvažoval jsem o SMSkách, ale ty docela obtěžujou, takže jabber mi přišel jako elegantnější řešení ...
    17.3.2008 09:51 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    $1 $2 $3 $4 $5 $6 $7 $8 $9 je trochu divna notation, kdyz mame $@ ;-)
    Martin Stiborský avatar 17.3.2008 18:37 Martin Stiborský | skóre: 26 | blog: Stibiho bláboly | Opava
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    jojo, tohle je fajn, na svém webu (momentálně off) využívám (mimo jiné) k oznámení o nových komentářích, ale budu to muset předělat, zprávy se posílají na můj vlastní účet, sám sobě si posílám zprávu :) Bot bude lepší řešení ..
    Kvík ..
    Josef Kufner avatar 19.3.2008 23:06 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    Btw, koukal jsi do dokumentace k téhle knihovně? Konkrétně do adresáře examples... Upravit to tak, aby to přeposílalo stdin na server není problém a pak už to jde krásně pověsit na syslog ;-)
    Hello world ! Segmentation fault (core dumped)
    26.3.2008 15:16 Georgius | skóre: 24 | blog: jirka
    Rozbalit Rozbalit vše Re: Logování přes jabber I.
    Jo, se stdin by to neměl být závažnější problém, možná to na to upravím. To nad čím ještě ve volných chvílích bádám je to šifrování ... nechce lézt skrz ... a v těch příkladech nic takového neřeší.

    Založit nové vláknoNahoru

    ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.