<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Logrotate  Zen-Funk Panda</title>
    <link>https://panda.zenfunk.it/tags/logrotate/</link>
    <description>  Logrotate  Zen-Funk Panda</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Thu, 01 Oct 2015 20:15:30 +0000</lastBuildDate>
      <atom:link href="https://panda.zenfunk.it/tags/logrotate/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Raccogliere i log da remoto con rsyslog, differenziarli in base all’IP e ruotarli con logrotate</title>
      <link>https://panda.zenfunk.it/posts/2015-10-01-raccogliere-i-log-da-remoto-con-rsyslog-differenziarli-in-base-allip-e-ruotarli-con-logrotate/</link>
      <pubDate>Thu, 01 Oct 2015 20:15:30 +0000</pubDate>
      <guid>https://panda.zenfunk.it/posts/2015-10-01-raccogliere-i-log-da-remoto-con-rsyslog-differenziarli-in-base-allip-e-ruotarli-con-logrotate/</guid>
      <description>&lt;p&gt;Le indicazioni di questo post sono state testate con delle antenne &lt;strong&gt;Ubiquity&lt;/strong&gt; e sono valide per qualsiasi sistema che utilizzi &lt;em&gt;ancora&lt;/em&gt; &lt;strong&gt;rsyslog&lt;/strong&gt; e &lt;strong&gt;logrotate&lt;/strong&gt; e qualsiasi hardware che sia in grado di spedire i propri log in remoto. Lo scenario è quello di un logserver Debian che riceve i syslog di access points e stations e li divide in base all’IP di provenienza.&lt;/p&gt;&#xA;&lt;p&gt;Per prima cosa bisogna dire ad &lt;strong&gt;rsyslog&lt;/strong&gt; di ascoltare su una porta UDP o TCP per poter ricevere i log, su &lt;strong&gt;/etc/rsyslog.conf&lt;/strong&gt; decommentare le righe inerenti al protocollo che si desidera utilizzare:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;# provides UDP syslog reception&#xA;$ModLoad imudp&#xA;$UDPServerRun 514&#xA;&#xA;# provides TCP syslog reception&#xA;#$ModLoad imtcp&#xA;#$InputTCPServerRun 514&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Successivamente, sempre su &lt;strong&gt;/etc/rsyslog.conf&lt;/strong&gt; o come snippet in &lt;strong&gt;/etc/rsyslog.conf.d/&lt;/strong&gt; vanno inserite direttive tipo queste:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;if $fromhost-ip startswith &#39;192.168.10.&#39; then /var/log/ubnt-stations.log&#xA;&amp;amp; ~&#xA;if $fromhost-ip startswith &#39;192.168.2.&#39; then /var/log/ubnt-stations.log&#xA;&amp;amp; ~&#xA;&#xA;if $fromhost-ip startswith &#39;192.168.1.&#39; then /var/log/ubnt-APs.log&#xA;&amp;amp; ~&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Molto utile ed importate è la riga ” &lt;strong&gt;&amp;amp; ~&lt;/strong&gt; ” posta immediatamente dopo la singola direttiva, vuol dire: &lt;em&gt;“fermati li dove hai loggato e non andare avanti”&lt;/em&gt;, per evitare di spammare altri logfile tipo &lt;em&gt;syslog&lt;/em&gt; o &lt;em&gt;messages&lt;/em&gt;. Un restart di &lt;strong&gt;rsyslogd&lt;/strong&gt; ed andiamo avanti.&lt;/p&gt;&#xA;&lt;p&gt;Ultimo step è quello di configurare &lt;strong&gt;logrotate&lt;/strong&gt; per ruotare anche questi nuovi logfile ed evitare che &lt;strong&gt;/var/log/&lt;/strong&gt; si riempia troppo presto. Le politiche più adatte spettano a voi, potete anche riciclare delle impostazioni già esistenti tra &lt;strong&gt;/etc/logrotate.conf.d/&lt;/strong&gt; o crearne una vostra, a seconda di quanto vi serva tenere i log.&lt;/p&gt;&#xA;&lt;p&gt;Nel mio caso bastava una settimana ed ho aggiunto quei file di log (anche con wildcard) allo stesso snippet che fa ruotare &lt;strong&gt;syslog&lt;/strong&gt;, ovvero ogni giorno e per una settimana, &lt;strong&gt;/etc/logrotate.conf.d/rsyslog&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;/var/log/syslog&#xA;/var/log/ubnt-*.log&#xA;{&#xA;  rotate 7&#xA;  daily&#xA;  missingok&#xA;  notifempty&#xA;  delaycompress&#xA;  compress&#xA;  postrotate&#xA;    invoke-rc.d rsyslog rotate &amp;gt; /dev/null&#xA;  endscript&#xA;}```&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</description>
    </item>
  </channel>
</rss>
