{"id":1666,"date":"2014-10-01T16:25:57","date_gmt":"2014-10-01T14:25:57","guid":{"rendered":"http:\/\/blog.sfsoft.it\/?p=1666"},"modified":"2014-10-02T11:58:59","modified_gmt":"2014-10-02T09:58:59","slug":"monitorare-il-traffico-di-rete-con-pmacct-su-ubuntu-aggiornamento","status":"publish","type":"post","link":"http:\/\/www.sfsoft.it\/blog\/2014\/10\/01\/monitorare-il-traffico-di-rete-con-pmacct-su-ubuntu-aggiornamento\/","title":{"rendered":"Monitorare il traffico di rete con pmacct su Ubuntu (aggiornamento)"},"content":{"rendered":"<p>Aggiornamento dell&#8217;articolo <a title=\"Monitorare il traffico di rete con pmacct su Ubuntu\" href=\"http:\/\/blog.sfsoft.it\/2011\/03\/18\/monitorare-il-traffico-di-rete-con-pmacct-su-ubuntu\/\">Monitorare il traffico di rete con pmacct su Ubuntu<\/a> usando la versione nuova della tabella.<\/p>\n<hr \/>\n<p>Di <a href=\"http:\/\/www.ubuntugeek.com\/bandwidth-monitoring-tools-for-linux.html\" target=\"_blank\">sistemi per il monitoraggio della rete<\/a> ce ne sono molti ma alla fine ho optato per il programma che si chiama <em>pmacct<\/em> che descritto molto grezzamente si tratta di uno sniffer di rete che registra il traffico su <em>MySQL<\/em> o <em>PostgreSQL<\/em> o <em>SQLite<\/em>.<\/p>\n<p>La cosa bizzarra \u00e8 che \u00e8 un sistema che ha notevoli potenzialit\u00e0 ma di cui non si trova quasi documentazione o traccia in rete, sembra un prodotto di nicchia.<\/p>\n<p>Innanzi tutto procediamo all&#8217;installazione di <em>MySQL<\/em> se ancora manca ( o <em>PostgreSQL<\/em> o <em>SQLlite<\/em> ):<\/p>\n<pre class=\"lang:default decode:true\">sudo apt-get install mysql-server<\/pre>\n<p>Ora non sto a riprendere la configurazione di <em>MySQL<\/em> in quanto in rete c&#8217;\u00e8 abbastanza documentazione in merito.<\/p>\n<p>Si installa il programma:<\/p>\n<pre class=\"lang:default decode:true\">sudo apt-get install pmacct<\/pre>\n<p>Stoppare il demone per configurarlo:<\/p>\n<pre class=\"lang:default decode:true\">sudo service pmacct stop<\/pre>\n<p>Creare il database con la tabella versione 8 che al momento in cui scrivo \u00e8 l&#8217;ultima, se no basta cambiare il numero:<\/p>\n<pre class=\"lang:default decode:true\">mysql -h host -u root -p &lt; \/usr\/share\/doc\/pmacct\/sql\/pmacct-create-db_v8.mysql<\/pre>\n<p>Impostare i permessi di default ( utente <em>pmacct@localhost <\/em> ):<\/p>\n<pre class=\"lang:default decode:true\">mysql -h host -u root -p &lt; \/usr\/share\/doc\/pmacct\/sql\/pmacct-grant-db.mysql<\/pre>\n<p>Cambiare la password:<\/p>\n<pre class=\"lang:default decode:true\">mysql -h host -u root -p<\/pre>\n<pre class=\"lang:default decode:true\">USE pmacct;\r\nUPDATE mysql.user SET Password=PASSWORD('nuova-password') WHERE User='pmacct';\r\nFLUSH PRIVILEGES;<\/pre>\n<p>Configurare il programma:<\/p>\n<pre class=\"lang:default decode:true\">sudo nano \/etc\/pmacct\/pmacct.conf<\/pre>\n<p>Un esempio di configurazione:<\/p>\n<pre class=\"lang:default decode:true\">! pmacctd configuration\r\n!\r\n!\r\n!\r\ndaemonize: true\r\npidfile: \/var\/run\/pmacctd.pid\r\nsyslog: daemon\r\n!\r\n! interested in in and outbound traffic\r\naggregate: src_host,dst_host,src_port,dst_port\r\n! on this network\r\npcap_filter: net 192.168.1.0\/24\r\n! on this interface\r\ninterface: eth0\r\n!\r\n! storage methods\r\nplugins: mysql\r\nsql_host: localhost\r\nsql_user: pmacct\r\nsql_passwd: nuova-password\r\nsql_db: pmacct\r\nsql_table_version: 8\r\n!\r\n! refresh the db every 5 minutes\r\nsql_refresh_time: 300\r\n! reduce the size of the insert\/update clause\r\nsql_optimize_clauses: true\r\n! accumulate values in each row for up to 5 minutes\r\nsql_history: 5m\r\n! create new rows on the minute, hour, day boundaries\r\n!sql_history_roundoff: mhd\r\nsql_history_roundoff: m\r\n! in case of emergency, log to this file\r\nsql_recovery_logfile: \/var\/lib\/pmacct\/recovery_log\r\n! try to use only INSERT\r\nsql_dont_try_update: true<\/pre>\n<p>Avviare il demone e controllare sul nostro database i record che vengono inseriti:<\/p>\n<pre class=\"lang:default decode:true\">sudo service pmacct start<\/pre>\n<p><strong>Nota<\/strong>: ho notato che su reti diciamo discrete la mole di dati generata influisce notevolmente sulle prestazioni richieste dal server <em>MySQL<\/em>, ogni tanto \u00e8 cosigliato spostare i dati storici su una copia della tabella meglio ancora su un altro <em>database<\/em>\/<em>host<\/em>.<\/p>\n<p><strong>Nota 2<\/strong>: se il traffico \u00e8 elevato e si usa il raggruppamento \u00e8 possibile che venga richiesto un server <em>MySQL<\/em> con alte prestazioni di <em>CPU<\/em> e di <em>I\/O<\/em> su disco in quanto le istruzioni di <em>UPDATE<\/em> sono molte, in tal caso ridurre il periodo di raggruppamento ( es. da 30m a 5m ) e usare l&#8217;istruzione &#8220;<em>sql_dont_try_update: true<\/em>&#8221; che usa la memoria per limitare al massimo le istruzioni di <em>UPDATE<\/em>, appoggiandosi a versioni <em>InnoDB<\/em> invece che <em>MyISAM<\/em> delle tabelle.<\/p>\n<p><strong>Nota 3<\/strong>: Nel caso servisse recuperare i dati dal file di recupero ( <em>recovery_log<\/em> ) utilizzare il comando <em>pmmplay<\/em>:<\/p>\n<pre class=\"lang:default decode:true\">pmmplay -d -f \/var\/lib\/pmacct\/recovery_log -U &lt;utentemysql&gt; -P &lt;passwordmysql&gt;<\/pre>\n<p>Se serve solo testare cosa c&#8217;\u00e8 nel file senza fare modifiche al database aggiungere il parametro <em>-t<\/em>.<\/p>\n<p>Sul <a href=\"http:\/\/wiki.pmacct.net\/\" target=\"_blank\">wiki ufficiale<\/a> per\u00f2 sconsigliano di utilizzare il file di recupero dicendo che sar\u00e0 dismesso ma di urilizzare eventualmente un DB di backup:<\/p>\n<blockquote><p>While planning for a recovery method, consider that the logfile method is being discontinued and you are encouraged to use the backup DB option.<\/p><\/blockquote>\n<p><strong>Nota 4<\/strong>: Nel caso si utilizzi un server <em>MySQL<\/em> esterno controllare che le due macchine abbiano lo stesso <em>timezone<\/em> tramite il comando <em>date<\/em>, in caso siano diversi occorre riconfigurarlo per impostarlo uguale, riavviare anche <em>MySQL<\/em> dopo:<\/p>\n<pre class=\"lang:default decode:true\">sudo dpkg-reconfigure tzdata\r\nsudo service mysql restart<\/pre>\n<p><strong>Nota 5<\/strong>: Nel caso servisse controllare eventuali errori fare riferimento al <em>syslog<\/em>:<\/p>\n<pre class=\"lang:default decode:true \"># Gli ultimi log\r\nsudo tail \/var\/log\/syslog\r\n\r\n# Monitor realtime dei log (uscire con CTRL+C)\r\nsudo tail \/var\/log\/syslog -f<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aggiornamento dell&#8217;articolo Monitorare il traffico di rete con pmacct su Ubuntu usando la versione nuova della tabella. Di sistemi per il monitoraggio della rete ce ne sono molti ma alla fine ho optato per il programma che si chiama pmacct che descritto molto grezzamente si tratta di uno sniffer di rete che registra il traffico [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,3,23],"tags":[16,8,205,20,5],"_links":{"self":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1666"}],"collection":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/comments?post=1666"}],"version-history":[{"count":7,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1666\/revisions"}],"predecessor-version":[{"id":1670,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1666\/revisions\/1670"}],"wp:attachment":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/media?parent=1666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/categories?post=1666"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/tags?post=1666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}