/[smecontribs]/rpms/smeserver-sme9admin/contribs9/smeserver-sme9admin-1.5-bz8818-email_accounting.patch
ViewVC logotype

Annotation of /rpms/smeserver-sme9admin/contribs9/smeserver-sme9admin-1.5-bz8818-email_accounting.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Thu Dec 15 18:35:44 2016 UTC (7 years, 4 months ago) by unnilennium
Branch: MAIN
CVS Tags: smeserver-sme9admin-1_5-19_el6_sme
* Thu Dec 15 2016 Jean-Philipe Pialasse <tests@pialasse.com> 1.5-19.sme
- fix bad accounting for incoming and outgoing mail [SME: 8818]
- mail_in alert now account for all queued emails from qpsmtpd and sqpsmtpd
- mail_out alert now account for qmail total remote delivery attempts
- known issue : on first run will account more than 5 minutes ( whole log) and will alert for exceeding amount
- added accounting of qpsmtpd and sqpsmtpd code
- TODO: alert on qmail queue too high, alert on too many qpsmtpd connections

1 unnilennium 1.1 --- smeserver-sme9admin-1.5/root/usr/bin/sme9admind.email 2016-11-24 00:38:09.000000000 +0100
2     +++ smeserver-sme9admin-1.5/root/usr/bin/sme9admind 2016-12-15 19:16:31.000000000 +0100
3     @@ -93,7 +93,8 @@
4     "spamd/current", #pour les SPAMS
5     "sshd/current", #pour les connexions ssh
6     "messages",
7     - "qpsmtpd/current", #pour les mails IN/OUT (RCPT FROM / MAIL TO) et les SPAM/VIRUS ??
8     + "qmail/current", #pour les mails IN/OUT
9     + "qpsmtpd/current", #pour les SPAM/VIRUS ??
10     "sqpsmtpd/current", #idem pour les connexions securisées
11     "proftpd/current", #pour la date de fin de connection FTP
12     "secure", #pour les connexion FTP avec le username authentifie
13     @@ -143,6 +144,39 @@
14     my ($afp_cpu,$afp_mem,$afp_nbproc);
15     #squid.rrd => ps pidof
16     my ($squid_cpu,$squid_mem,$squid_nbproc);
17     +#mail_in s?qpsmtpd
18     +# This is the list of plugins we can get stats for
19     +# you can set the regex used to identify a line in the logs
20     +my %denied = (
21     + dnsbl => qr{(dnsbl\s+90|naughty\s+90\d\s+\(dnsbl\))},
22     + rhsbl => qr{rhsbl\s+90},
23     + uribl => qr{uribl\s+90},
24     + clamav => qr{virus::clam(av|dscan)\s+90},
25     + check_earlytalker => qr{(check_)?earlytalker\s+90},
26     + check_basicheaders => qr{(check_basic)?headers\s+90},
27     + check_goodrcptto => qr{(check_)?goodrcptto\s+90},
28     + check_spamhelo => qr{((check_spam)?helo\s+90|naughty\s+90\d\s+\(helo\))},
29     + fcrdns => qr{fcrdns\s+90},
30     + karma => qr{(karma\s+90|naughty\s+90\d\s+\(karma\))},
31     + spf => qr{(sender_permitted_from|spf_deny)\s+90},
32     + dmarc => qr{dmarc\s+90},
33     + tls_failed => qr{tls\s+90},
34     + resolvable_fromhost => qr{(require_)?resolvable_fromhost}
35     +);
36     +my @others = qw(total_denied spam_denied other_denied spam_queued queued total);
37     +my %cnt;
38     +foreach (keys %denied, @others){
39     + $cnt{$_} = 0;
40     +}
41     +# pour qmail
42     +my ($localqueue,$remotequeue);
43     +my @resultsqm = qw(failure deferral success total);
44     +my %cntqm;
45     +my %cntqmlocal;
46     +foreach (@resultsqm){
47     + $cntqm{$_} = 0;
48     + $cntqmlocal{$_} = 0;
49     +}
50    
51     #------------------------
52     #declaration de fonctions
53     @@ -248,7 +282,7 @@
54     print $body "Uptime: ",`/usr/bin/uptime`;
55     $body->close;
56    
57     - my $cnt=0;
58     + my $cont=0;
59     while(1)
60     {
61     # etape 1 : parsage des logs
62     @@ -268,10 +302,10 @@
63    
64     # etape 4 : envoi des eventuels mails d'alertes
65     mail_alerte();
66     - mail_status() if ($params{'StatusInterval'} && !($cnt % $params{'StatusInterval'}));
67     + mail_status() if ($params{'StatusInterval'} && !($cont % $params{'StatusInterval'}));
68    
69     sleep(300-time%300);
70     - $cnt++;
71     + $cont++;
72     }
73     }
74     #Fin du main
75     @@ -481,8 +515,15 @@
76     }
77    
78    
79     -
80     + # reset all counter before checking logs
81     ($net_dhcp,$net_mail_in,$net_mail_out,$net_spam,$net_virus)=(0,0,0,0,0);
82     + foreach (keys %denied, @others){
83     + $cnt{$_} = 0;
84     + }
85     + foreach (@resultsqm){
86     + $cntqm{$_} = 0;
87     + $cntqmlocal{$_} = 0;
88     + }
89     foreach my $nom (@logs) {
90     # on recupere un file handle positionné comme il faut
91     my $fh = seek_log("$logdir$nom");
92     @@ -609,45 +650,96 @@
93     if($l =~ /identified spam/) {$net_spam++;next;}
94     }
95     }
96     - elsif ($nom =~ /^s?qpsmtpd\/current$/) {
97     + elsif ($nom =~ /^qmail\/current$/) {
98     while ( defined(my $l = <$fh>)) {
99     - #@4000000043a825c60ff26f84 6556 dispatching RCPT TO:<admin@plop.gruiik.org>
100     - #@4000000043a825c60ff26f84 6556 dispatching RCPT TO:<moi@domaine.fr>
101     - if ($l =~ /@[0-9a-f]{24} \d+ dispatching RCPT TO:<([a-zA-Z0-9\._\-]+)@([a-zA-Z0-9\._\-]+)>/i) {
102     - my ($user,$domain)=($1,$2);
103     - foreach my $cur_filter (@MailDomainsMatch) {
104     - # si le filtre courant est une adresse mail (contient @)
105     - if ($cur_filter=~/@/) {
106     - #on verifie la correspondance complete
107     - if ($cur_filter =~ /^$user@.?$domain$/) {$net_mail_in++; last;}
108     - }
109     - else {
110     - #sinon on ne verifie la correspondance que pour le domaine
111     - if ($domain =~/.?$cur_filter/) {$net_mail_in++; last;}
112     - }
113     - }
114     + # accounting for remote connections
115     + # @400000004994ad092afa867c delivery 96906: success etc...
116     + if ($l =~ m/^\@[0-9a-f]{24} delivery \d+: (success|failure|deferral).*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|CNAME_lookup_failed_temporarily|Sorry,_I_wasn't_able_to_establish_an_SMTP_connection)/i) {
117     + my $result = $1;
118     + $cntqm{$result}++;
119     + next;
120     + }
121     + # accounting for local connections have to be after the remote
122     + if ($l =~ m/^\@[0-9a-f]{24} delivery \d+: (success|failure|deferral).*/i) {
123     + my $result = $1;
124     + $cntqmlocal{$result}++;
125     next;
126     }
127    
128     - #@4000000043a1c3a908438ffc 7905 dispatching MAIL FROM:<root@plop.gruiik.org>
129     - #@4000000043a1c3a908438ffc 7905 dispatching MAIL FROM:<root@mourf.biz>
130     - if ($l =~ /@[0-9a-f]{24} \d+ dispatching MAIL FROM:<([a-zA-Z0-9\._\-]+)@([a-zA-Z0-9\._\-]+)>/i) {
131     - my ($user,$domain)=($1,$2);
132     - foreach my $cur_filter (@MailDomainsMatch) {
133     - # si le filtre courant est une adresse mail (contient @)
134     - if ($cur_filter=~/@/) {
135     - #on verifie la correspondance complete
136     - if ($cur_filter =~ /^$user@.?$domain$/) {$net_mail_out++; last;}
137     - }
138     - else {
139     - #sinon on ne verifie la correspondance que pour le domaine
140     - if ($domain =~/.?$cur_filter/) {$net_mail_out++; last;}
141     +
142     + }
143     +
144     + # Calcul des totaux:
145     + foreach (@resultsqm){
146     + $cntqm{total} = $cntqm{total} + $cntqm{$_} if $_ !~ /total/;
147     + $cntqmlocal{total} = $cntqmlocal{total} + $cntqmlocal{$_} if $_ !~ /total/;
148     + }
149     + ## add qmail local queue
150     + $localqueue=`find /var/qmail/queue/local/ -type f | wc -l`;
151     + $localqueue=~ s/\D+//g;
152     + ### add qmail remote queue
153     + $remotequeue=`find /var/qmail/queue/remote/ -type f | wc -l`;
154     + $remotequeue=~ s/\D+//g;
155     + $net_mail_out=$cntqm{total};
156     +
157     + }
158     + elsif ($nom =~ /^s?qpsmtpd\/current$/) {
159     + while ( defined(my $l = <$fh>)) {
160     + # following code is copy paste from util_parse_mail from Daniel Berteaud for Zabbix monitoring
161     + # just changed $line to $l
162     + # We only want logterse lines like
163     + # @400000004994ad092afa867c 18386 logging::logterse plugin:
164     + # The format can slightly change depending on qpsmtpd version
165     + next unless $l =~ m/^\@[0-9a-f]{24} \d+( \((queue|deny)\))? logging::logterse/;
166     +
167     + # Lets count all the message which have been denied 'msg denied before queued'
168     + if ($l =~ m/msg denied before queued/){
169     + $cnt{total_denied}++;
170     + # Now try to find the plugin responsible for the deny
171     + foreach (keys %denied){
172     + if ($l =~ m/$denied{$_}/){
173     + $cnt{$_}++;
174     + }
175     }
176     + next;
177     }
178     - next;
179     - }
180     +
181     + # Rejected by spamassassin because spam score is too high
182     + elsif ($l =~ m/spam score exceeded threshold/){
183     + $cnt{spam_denied}++;
184     + next;
185     + }
186     +
187     + # Tagged as spam, but kept accepted
188     + elsif ($l =~ m/queued\s+<.*>\s+Yes,\s+(score|hits)=/){
189     + $cnt{spam_queued}++;
190     + next;
191     + }
192     +
193     + # Queued, not tagged as spam, those are the clean emails
194     + elsif ($l =~ m/queued\s+<.*>\s+No,\s+(score|hits)=/){
195     + $cnt{queued}++;
196     + next;
197     + }
198     +
199     + }
200     + # we try here.. maybe not the best place
201     + $cnt{total}=0;# as we parse qpsmtpd and then sqpsmtpd, we need to start from scratch the count while doint the last one
202     + # Now lets count other_denied, which is total_denied minus
203     + # all the known plugins denied
204     + $cnt{other_denied} = $cnt{total_denied};
205     + foreach (keys %denied){
206     + $cnt{total} = $cnt{total} + $cnt{$_};
207     + $cnt{other_denied} = $cnt{other_denied} - $cnt{$_};
208     + }
209     + # yes we potentially run this twice for nothing at the first run...
210     + foreach (@others){
211     + $cnt{total} = $cnt{total} + $cnt{$_} if ($_ !~ /total/);
212     }
213     + $net_mail_in=$cnt{spam_queued} + $cnt{queued};
214     +
215     }
216     +
217     elsif ($nom eq "messages") {
218     while ( defined(my $l = <$fh>)) {
219     #Baux DHCP
220     @@ -1215,7 +1307,7 @@
221     # print "if_ext_bin=$if_ext_bin,if_ext_bout=$if_ext_bout,if_ext_pin=$if_ext_pin,if_ext_pout=$if_ext_pout\n";
222     # print "net_samba=$net_samba,net_minlatency=$net_minlatency,net_avglatency=$net_avglatency,";
223     # print "net_maxlatency=$net_maxlatency,net_loss=$net_loss,net_spam=$net_spam,net_virus=$net_virus,";
224     -# print "net_dhcp=$net_dhcp,net_mail_in=$net_mail_in,net_mail_out=$net_mail_out\n";
225     + print "net_dhcp=$net_dhcp,net_mail_in=$net_mail_in,net_mail_out=$net_mail_out\n";
226     # print "cpu_total=$cpu_total,cpu_idle=$cpu_idle,cpu_system=$cpu_system,cpu_user=$cpu_user\n";
227     # print "cpu_nice=$cpu_nice,cpu_plist=$cpu_plist,cpu_runq=$cpu_runq";
228     # print "cpu_load1=$cpu_load1,cpu_load5=$cpu_load5,cpu_load15=$cpu_load15,cpu_uptime=$cpu_uptime\n";
229     @@ -1229,6 +1321,14 @@
230     # print "squid cpu=$squid_cpu, mem=$squid_mem, nb=$squid_nbproc\n";
231     # print "sessions_ftp=$sessions_ftp,sessions_ssh=$sessions_ssh,";
232     # print "sessions_vpn=$sessions_vpn,sessions_netbios=$sessions_netbios\n";
233     +#print "check_basicheaders=$mail_in_check_basicheaders,check_earlytalker=$mail_in_check_earlytalker,check_goodrcptto=$mail_in_check_goodrcptto,check_spamhelo=$mail_in_check_spamhelo,"
234     +#."clamav=$mail_in_clamav,dmarc=$mail_in_dmarc,dnsbl=$mail_in_dnsbl,fcrdns=$mail_in_fcrdns,karma=$mail_in_karma,other_denied=$mail_in_other_denied,queued=$mail_in_queued,resolvable_fromhost=$mail_in_resolvable_fromhost,"
235     +#."rhsbl=$mail_in_rhsbl,spam_denied=$mail_in_spam_denied,spam_queued=$mail_in_spam_queued,spf=$mail_in_spf,tls_failed=$mail_in_tls_failed,total=$mail_in_total,total_denied=$mail_in_total_denied,uribl=$mail_in_uribl\n";
236     +# foreach (keys %denied,@others){ print "$_: $cnt{$_},";}; print "\n";
237     +# print join(':', map {$cnt{$_}} keys %denied,@others); print "\n";
238     + foreach (@resultsqm){ print "local_$_:$cntqmlocal{$_},";}; foreach (@resultsqm){ print "$_:$cntqm{$_},";};
239     + print "localqueue=$localqueue,remotequeue=$remotequeue\n";
240     + print join(':', map {$cntqmlocal{$_}} @resultsqm) .":". join(':', map {$cntqm{$_}} @resultsqm); print ":". $localqueue .":". $remotequeue; print "\n";
241    
242     my %rrds=(
243     "sensors"=>"$sensors_temp1:$sensors_temp2:$sensors_temp_hd1:$sensors_temp_hd2:$sensors_fan_speed:$sensors_fan2_speed:$sensors_temp_hd3:$sensors_temp_hd4:$sensors_temp_hd5:$sensors_temp_hd6",
244     @@ -1242,8 +1342,11 @@
245     "samba"=>"$samba_cpu:$samba_mem:$samba_nbproc",
246     "afp"=>"$afp_cpu:$afp_mem:$afp_nbproc",
247     "squid"=>"$squid_cpu:$squid_mem:$squid_nbproc",
248     - "sessions"=>"$sessions_ssh:$sessions_ftp:$sessions_vpn:$sessions_netbios:$sessions_afp");
249     - my $error;
250     + "sessions"=>"$sessions_ssh:$sessions_ftp:$sessions_vpn:$sessions_netbios:$sessions_afp",
251     + "qpsmtpd" => join(':', map {$cnt{$_}} keys %denied,@others),
252     + "qmail" => join(':', map {$cntqmlocal{$_}} @resultsqm) .":". join(':', map {$cntqm{$_}} @resultsqm) . ":". $localqueue .":". $remotequeue);
253     +
254     + my $error;
255    
256     foreach my $rrd (keys %rrds) {
257     RRDs::update ("$rrddir/$rrd.rrd","N:$rrds{$rrd}");
258     @@ -1295,8 +1398,8 @@
259     gettext("(Possible reasons : do you receive spam ? a mailbomb ? mailing-lists ?)\n"),
260     gettext("If you have access to the server-manager, use this link to modify the limit :\n"),
261     "https://$SystemName.$DomainName/server-manager/cgi-bin/sme9admin?state=conf_alert&alert=MaxMailIn",
262     - "\n# tail /var/log/qpsmtpd/current\n",
263     - `/usr/bin/tail /var/log/qpsmtpd/current -n500 | /usr/local/bin/tai64nlocal |/bin/grep logterse`;
264     + "\n# tail /var/log/qmail/current\n",
265     + `/usr/bin/tail /var/log/qmail/current -n500 | /usr/local/bin/tai64nlocal |/bin/grep 'starting delivery'`;
266     }],
267     [
268     "($params{'MaxMailOut'} && $net_mail_out >= $params{'MaxMailOut'})",
269     @@ -1306,7 +1409,9 @@
270     sprintf(gettext("you had set the alert limit to %s outgoing e-mails.\n"),$params{'MaxMailOut'}),
271     gettext("(Possible reasons : do you send spam ? administrate a mailing-list ?)\n"),
272     gettext("If you have access to the server-manager, use this link to modify the limit :\n"),
273     - "https://$SystemName.$DomainName/server-manager/cgi-bin/sme9admin?state=conf_alert&alert=MaxMailOut";
274     + "https://$SystemName.$DomainName/server-manager/cgi-bin/sme9admin?state=conf_alert&alert=MaxMailOut",
275     + "\n# tail /var/log/qmail/current\n",
276     + `tail /var/log/qmail/current -n500 |tai64nlocal |grep -P "(starting delivery|delivery) \\d+: (msg \\d+|success|failure|deferral).*(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|CNAME_lookup_failed_temporarily|Sorry,_I_wasn't_able_to_establish_an_SMTP_connection|to remote .*)"`;
277     }],
278     [
279     "($params{'MaxDiskSpace'} && $pourc_hd_used >= $params{'MaxDiskSpace'})",
280     --- smeserver-sme9admin-1.5/root/etc/e-smith/web/functions/sme9admin.email 2014-12-24 07:41:01.000000000 +0100
281     +++ smeserver-sme9admin-1.5/root/etc/e-smith/web/functions/sme9admin 2016-12-15 18:26:20.000000000 +0100
282     @@ -64,6 +64,8 @@
283     sub showVpn;
284     sub showSsh;
285     sub showDhcpd;
286     +sub showQpsmtpd;
287     +sub showQmail;
288     #graph-pages-funcs
289     sub showHardGraph;
290     sub showNetGraph;
291     @@ -397,7 +399,7 @@
292     else
293     {
294     #si c'est un service pour lequel on a des infos complementaires...
295     - if($svc=~/^(httpd-e-smith|httpd-admin|smb|smbd|nmbd|atalk|squid|pptpd|dhcpd|sshd|proftpd|ftp|pppoe|pppd|wan)$/) {$details=1;}
296     + if($svc=~/^(httpd-e-smith|httpd-admin|smb|smbd|nmbd|atalk|squid|pptpd|dhcpd|sshd|proftpd|ftp|pppoe|pppd|wan|qmail|qpsmtpd|sqpsmtpd)$/) {$details=1;}
297     if ( -d "/service/$svc") {$cmd = "/usr/bin/sv s $svc";} # was -d /var/service or -d /service/
298     else {$cmd = "/sbin/e-smith/service $svc status|/bin/grep $svc";}
299     my @res=`$cmd`;
300     @@ -1052,6 +1054,8 @@
301     elsif ($q->param('service') eq 'proftpd') {showFtp();}
302     elsif ($q->param('service') eq 'ftp') {showFtp();}
303     elsif ($q->param('service') eq 'pppoe' || $q->param('service') eq 'wan' || $q->param('service') eq 'pppd' ) {showPppoe();}
304     + elsif ($q->param('service') eq 'qpsmtpd' || $q->param('service') eq 'sqpsmtpd' ) {showQpsmtpd();}
305     + elsif ($q->param('service') eq 'qmail') {showQmail();}
306     }
307    
308     #----------------------------------------------------------------
309     @@ -1061,6 +1065,32 @@
310     showSvcGraph("httpd",gettext("System load for the apache web server (httpd-e-smith & httpd-admin processes) on "));
311     }
312     #----------------------------------------------------------------
313     +#details du service qmail
314     +sub showQmail
315     +{
316     + my $start='-1d';
317     + printPopupMenu(gettext("View graphs on "));
318     + $start=$q->param('duree') if defined($q->param('duree'));
319     + print $q->p($q->b($labels{"$start"}));
320     + print $q->p($q->a ({href => "$progname"},gettext("Back\n")));
321     + #qmail local and remote email
322     + createGraphQmail($start);
323     +
324     +}
325     +#----------------------------------------------------------------
326     +#details du service s?qpsmtpd
327     +sub showQpsmtpd
328     +{
329     + my $start='-1d';
330     + printPopupMenu(gettext("View graphs on "));
331     + $start=$q->param('duree') if defined($q->param('duree'));
332     + print $q->p($q->b($labels{"$start"}));
333     + print $q->p($q->a ({href => "$progname"},gettext("Back\n")));
334     + #qpsmtpd incoming emails from outside the server( local network and internet)
335     + createGraphQpsmtpd($start);
336     +
337     +}
338     +#----------------------------------------------------------------
339     #details du service squid
340     sub showSquid
341     {
342     @@ -1612,26 +1642,10 @@
343     "COMMENT:Min\\: ","GPRINT:mindhcp:MIN:%4.0lf ","GPRINT:minsamba:MIN:%4.0lf","COMMENT:\\n",
344     "COMMENT:Last\\:","GPRINT:dhcp:LAST:%4.0lf ","GPRINT:samba:LAST:%4.0lf","COMMENT:\\n");
345    
346     - #mail entrant/sortant/virus/spam
347     - createShowGraph(gettext("Number of incoming/outgoing e-mails and amount of spam/viruses filtered."),"mail",
348     - "--title=".gettext("Incoming/outgoing/spam/virus e-mails"),
349     - "--start=$start",
350     - "DEF:mail_in=$rrddir/net.rrd:mail_in:AVERAGE","DEF:maxmail_in=$rrddir/net.rrd:mail_in:MAX","DEF:minmail_in=$rrddir/net.rrd:mail_in:MIN",
351     - "DEF:mail_out=$rrddir/net.rrd:mail_out:AVERAGE","DEF:maxmail_out=$rrddir/net.rrd:mail_out:MAX","DEF:minmail_out=$rrddir/net.rrd:mail_out:MIN",
352     - "DEF:spam=$rrddir/net.rrd:spam:AVERAGE","DEF:maxspam=$rrddir/net.rrd:spam:MAX","DEF:minspam=$rrddir/net.rrd:spam:MIN",
353     - "DEF:virus=$rrddir/net.rrd:virus:AVERAGE","DEF:maxvirus=$rrddir/net.rrd:virus:MAX","DEF:minvirus=$rrddir/net.rrd:virus:MIN",
354     - "CDEF:adj_mail_out=0,mail_out,-",
355     - "COMMENT: ","AREA:mail_in#1ED408:".gettext("Incoming mail"),"AREA:adj_mail_out#001ACD:".gettext("Outgoing mail"),
356     - "LINE2:spam#DAA520:Spam","LINE2:virus#DB0013:Virus","COMMENT:\\n",
357     - "COMMENT:Max\\: ","GPRINT:maxmail_in:MAX:%4.0lf ","GPRINT:maxmail_out:MAX:%4.0lf ",
358     - "GPRINT:maxspam:MAX:%4.0lf ","GPRINT:maxvirus:MAX:%4.0lf","COMMENT:\\n",
359     - "COMMENT:Min\\: ","GPRINT:minmail_in:MIN:%4.0lf ","GPRINT:minmail_out:MIN:%4.0lf ",
360     - "GPRINT:minspam:MIN:%4.0lf ","GPRINT:minvirus:MIN:%4.0lf","COMMENT:\\n",
361     - "COMMENT:Avg\\: ","GPRINT:mail_in:AVERAGE:%4.0lf ","GPRINT:mail_out:AVERAGE:%4.0lf ",
362     - "GPRINT:spam:AVERAGE:%4.0lf ","GPRINT:virus:AVERAGE:%4.0lf","COMMENT:\\n",
363     - "COMMENT:Last\\: ","GPRINT:mail_in:LAST:%4.0lf ","GPRINT:mail_out:LAST:%4.0lf ",
364     - "GPRINT:spam:LAST:%4.0lf ","GPRINT:virus:LAST:%4.0lf","COMMENT:\\n");
365     -
366     + #qmail local and remote email
367     + createGraphQmail($start);
368     + #qpsmtpd incoming emails from outside the server( local network and internet)
369     + createGraphQpsmtpd($start);
370    
371     #ping latency
372     createShowGraph(gettext("Average and maximal ping with the selected target."),"latency",
373     @@ -1870,4 +1884,92 @@
374     print $q->p($q->a ({href => "$progname"},gettext("Back\n")));
375     }
376    
377     +sub createGraphQmail {
378     + my($start)=(@_);
379     + #qmail entrant/sortant
380     + createShowGraph(gettext("Number of local/remote e-mails handled by the internal mail service (including other service generated e-mails)."),"qmail",
381     + "--title=".gettext("Local/Remote e-mails"),
382     + "--start=$start",
383     + "DEF:local_failure=$rrddir/qmail.rrd:local_failure:AVERAGE","DEF:maxlocal_failure=$rrddir/qmail.rrd:local_failure:MAX","DEF:minlocal_failure=$rrddir/qmail.rrd:local_failure:MIN",
384     + "DEF:local_deferral=$rrddir/qmail.rrd:local_deferral:AVERAGE","DEF:maxlocal_deferral=$rrddir/qmail.rrd:local_deferral:MAX","DEF:minlocal_deferral=$rrddir/qmail.rrd:local_deferral:MIN",
385     + "DEF:local_success=$rrddir/qmail.rrd:local_success:AVERAGE","DEF:maxlocal_success=$rrddir/qmail.rrd:local_success:MAX","DEF:minlocal_success=$rrddir/qmail.rrd:local_success:MIN",
386     + "DEF:local_total=$rrddir/qmail.rrd:local_total:AVERAGE","DEF:maxlocal_total=$rrddir/qmail.rrd:local_total:MAX","DEF:minlocal_total=$rrddir/qmail.rrd:local_total:MIN",
387     + "DEF:remote_failure=$rrddir/qmail.rrd:remote_failure:AVERAGE","DEF:maxremote_failure=$rrddir/qmail.rrd:remote_failure:MAX","DEF:minremote_failure=$rrddir/qmail.rrd:remote_failure:MIN",
388     + "DEF:remote_deferral=$rrddir/qmail.rrd:remote_deferral:AVERAGE","DEF:maxremote_deferral=$rrddir/qmail.rrd:remote_deferral:MAX","DEF:minremote_deferral=$rrddir/qmail.rrd:remote_deferral:MIN",
389     + "DEF:remote_success=$rrddir/qmail.rrd:remote_success:AVERAGE","DEF:maxremote_success=$rrddir/qmail.rrd:remote_success:MAX","DEF:minremote_success=$rrddir/qmail.rrd:remote_success:MIN",
390     + "DEF:remote_total=$rrddir/qmail.rrd:remote_total:AVERAGE","DEF:maxremote_total=$rrddir/qmail.rrd:remote_total:MAX","DEF:minremote_total=$rrddir/qmail.rrd:remote_total:MIN",
391     + "DEF:local_queue=$rrddir/qmail.rrd:local_queue:AVERAGE","DEF:maxlocal_queue=$rrddir/qmail.rrd:local_queue:MAX","DEF:minlocal_queue=$rrddir/qmail.rrd:local_queue:MIN",
392     + "DEF:remote_queue=$rrddir/qmail.rrd:remote_queue:AVERAGE","DEF:maxremote_queue=$rrddir/qmail.rrd:remote_queue:MAX","DEF:minremote_queue=$rrddir/qmail.rrd:remote_queue:MIN",
393     + "CDEF:adj_remote_total=0,remote_total,-", "CDEF:adj_remote_queue=0,remote_queue,-",
394     + "CDEF:adj_remote_failure=0,remote_failure,-", "CDEF:adj_remote_deferral=0,remote_deferral,-","CDEF:adj_remote_success=0,remote_success,-",
395     + "COMMENT:Last\\t Min\\t Avg\\t Max\\r",
396     + "COMMENT:\\n","AREA:local_total#1ED408:".gettext("Total local e-mails"),"COMMENT:\\u","GPRINT:local_total:LAST:%4.0lf ","GPRINT:minlocal_total:MIN:%4.0lf ","GPRINT:local_total:AVERAGE:%4.0lf ","GPRINT:maxlocal_total:MAX:%4.0lf \\r",
397     + "COMMENT:\\n","COMMENT: ".gettext("Total remote e-mails"), "COMMENT:\\u","GPRINT:remote_total:LAST:%4.0lf ","GPRINT:minremote_total:MIN:%4.0lf ","GPRINT:remote_total:AVERAGE:%4.0lf ","GPRINT:maxremote_total:MAX:%4.0lf \\r",
398     +
399     + "COMMENT:\\n","COMMENT: ","AREA:adj_remote_success#0000ff:".gettext("Remote e-mail success"), "COMMENT:\\u","GPRINT:remote_success:LAST:%4.0lf ","GPRINT:minremote_success:MIN:%4.0lf ","GPRINT:remote_success:AVERAGE:%4.0lf ","GPRINT:maxremote_success:MAX:%4.0lf \\r",
400     + "COMMENT:\\n","COMMENT: ","AREA:adj_remote_deferral#ffff00:".gettext("Remote e-mail deferral").":STACK", "COMMENT:\\u","GPRINT:remote_deferral:LAST:%4.0lf ","GPRINT:minremote_deferral:MIN:%4.0lf ","GPRINT:remote_deferral:AVERAGE:%4.0lf ","GPRINT:maxremote_deferral:MAX:%4.0lf \\r",
401     + "COMMENT:\\n","COMMENT: ","AREA:adj_remote_failure#ff0000:".gettext("Remote e-mail failure").":STACK", "COMMENT:\\u","GPRINT:remote_failure:LAST:%4.0lf ","GPRINT:minremote_failure:MIN:%4.0lf ","GPRINT:remote_failure:AVERAGE:%4.0lf ","GPRINT:maxremote_failure:MAX:%4.0lf \\r",
402     +
403     + "COMMENT:\\n","LINE2:local_queue#666666:".gettext("Local queue"),"COMMENT:\\u", "GPRINT:local_queue:LAST:%4.0lf ","GPRINT:minlocal_queue:MIN:%4.0lf ","GPRINT:local_queue:AVERAGE:%4.0lf ","GPRINT:maxlocal_queue:MAX:%4.0lf \\r",
404     + "COMMENT:\\n","LINE2:adj_remote_queue#000000:".gettext("Remote queue"),"COMMENT:\\u", "GPRINT:remote_queue:LAST:%4.0lf ","GPRINT:minremote_queue:MIN:%4.0lf ","GPRINT:remote_queue:AVERAGE:%4.0lf ","GPRINT:maxremote_queue:MAX:%4.0lf \\r",
405     + "COMMENT:\\n");
406     +
407    
408     +}
409     +
410     +sub createGraphQpsmtpd {
411     + my($start)=(@_);
412     + #qpsmtpd
413     + #check_basicheaders:check_goodrcptto:clamav:karma:tls_failed:rhsbl:check_earlytalker:resolvable_fromhost:dnsbl:fcrdns:spf:check_spamhelo:uribl:dmarc:total_denied:spam_denied:other_denied:spam_queued:queued:total
414     + createShowGraph(gettext("Number of incoming e-mail connections to qpsmtpd services (outside of server incoming e-mails) and amount of spam/viruses filtered."),"qpsmtpd",
415     + "--title=".gettext("Incoming qpsmtpd connections spam/virus/e-mails"),
416     + "--start=$start",
417     + "DEF:check_basicheaders=$rrddir/qpsmtpd.rrd:check_basicheaders:AVERAGE","DEF:maxcheck_basicheaders=$rrddir/qpsmtpd.rrd:check_basicheaders:MAX","DEF:mincheck_basicheaders=$rrddir/qpsmtpd.rrd:check_basicheaders:MIN",
418     + "DEF:check_goodrcptto=$rrddir/qpsmtpd.rrd:check_goodrcptto:AVERAGE","DEF:maxcheck_goodrcptto=$rrddir/qpsmtpd.rrd:check_goodrcptto:MAX","DEF:mincheck_goodrcptto=$rrddir/qpsmtpd.rrd:check_goodrcptto:MIN",
419     + "DEF:clamav=$rrddir/qpsmtpd.rrd:clamav:AVERAGE","DEF:maxclamav=$rrddir/qpsmtpd.rrd:clamav:MAX","DEF:minclamav=$rrddir/qpsmtpd.rrd:clamav:MIN",
420     + "DEF:karma=$rrddir/qpsmtpd.rrd:karma:AVERAGE","DEF:maxkarma=$rrddir/qpsmtpd.rrd:karma:MAX","DEF:minkarma=$rrddir/qpsmtpd.rrd:karma:MIN",
421     + "DEF:tls_failed=$rrddir/qpsmtpd.rrd:tls_failed:AVERAGE","DEF:maxtls_failed=$rrddir/qpsmtpd.rrd:tls_failed:MAX","DEF:mintls_failed=$rrddir/qpsmtpd.rrd:tls_failed:MIN",
422     + "DEF:rhsbl=$rrddir/qpsmtpd.rrd:rhsbl:AVERAGE","DEF:maxrhsbl=$rrddir/qpsmtpd.rrd:rhsbl:MAX","DEF:minrhsbl=$rrddir/qpsmtpd.rrd:rhsbl:MIN",
423     + "DEF:check_earlytalker=$rrddir/qpsmtpd.rrd:check_earlytalker:AVERAGE","DEF:maxcheck_earlytalker=$rrddir/qpsmtpd.rrd:check_earlytalker:MAX","DEF:mincheck_earlytalker=$rrddir/qpsmtpd.rrd:check_earlytalker:MIN",
424     + "DEF:resolvable_fromhost=$rrddir/qpsmtpd.rrd:resolvable_fromhost:AVERAGE","DEF:maxresolvable_fromhost=$rrddir/qpsmtpd.rrd:resolvable_fromhost:MAX","DEF:minresolvable_fromhost=$rrddir/qpsmtpd.rrd:resolvable_fromhost:MIN",
425     + "DEF:dnsbl=$rrddir/qpsmtpd.rrd:dnsbl:AVERAGE","DEF:maxdnsbl=$rrddir/qpsmtpd.rrd:dnsbl:MAX","DEF:mindnsbl=$rrddir/qpsmtpd.rrd:dnsbl:MIN",
426     + "DEF:fcrdns=$rrddir/qpsmtpd.rrd:fcrdns:AVERAGE","DEF:maxfcrdns=$rrddir/qpsmtpd.rrd:fcrdns:MAX","DEF:minfcrdns=$rrddir/qpsmtpd.rrd:fcrdns:MIN",
427     + "DEF:spf=$rrddir/qpsmtpd.rrd:spf:AVERAGE","DEF:maxspf=$rrddir/qpsmtpd.rrd:spf:MAX","DEF:minspf=$rrddir/qpsmtpd.rrd:spf:MIN",
428     + "DEF:check_spamhelo=$rrddir/qpsmtpd.rrd:check_spamhelo:AVERAGE","DEF:maxcheck_spamhelo=$rrddir/qpsmtpd.rrd:check_spamhelo:MAX","DEF:mincheck_spamhelo=$rrddir/qpsmtpd.rrd:check_spamhelo:MIN",
429     + "DEF:uribl=$rrddir/qpsmtpd.rrd:uribl:AVERAGE","DEF:maxuribl=$rrddir/qpsmtpd.rrd:uribl:MAX","DEF:minuribl=$rrddir/qpsmtpd.rrd:uribl:MIN",
430     + "DEF:dmarc=$rrddir/qpsmtpd.rrd:dmarc:AVERAGE","DEF:maxdmarc=$rrddir/qpsmtpd.rrd:dmarc:MAX","DEF:mindmarc=$rrddir/qpsmtpd.rrd:dmarc:MIN",
431     + "DEF:total_denied=$rrddir/qpsmtpd.rrd:total_denied:AVERAGE","DEF:maxtotal_denied=$rrddir/qpsmtpd.rrd:total_denied:MAX","DEF:mintotal_denied=$rrddir/qpsmtpd.rrd:total_denied:MIN",
432     + "DEF:spam_denied=$rrddir/qpsmtpd.rrd:spam_denied:AVERAGE","DEF:maxspam_denied=$rrddir/qpsmtpd.rrd:spam_denied:MAX","DEF:minspam_denied=$rrddir/qpsmtpd.rrd:spam_denied:MIN",
433     + "DEF:other_denied=$rrddir/qpsmtpd.rrd:other_denied:AVERAGE","DEF:maxother_denied=$rrddir/qpsmtpd.rrd:other_denied:MAX","DEF:minother_denied=$rrddir/qpsmtpd.rrd:other_denied:MIN",
434     +
435     + "DEF:spam_queued=$rrddir/qpsmtpd.rrd:spam_queued:AVERAGE","DEF:maxspam_queued=$rrddir/qpsmtpd.rrd:spam_queued:MAX","DEF:minspam_queued=$rrddir/qpsmtpd.rrd:spam_queued:MIN",
436     + "DEF:queued=$rrddir/qpsmtpd.rrd:queued:AVERAGE","DEF:maxqueued=$rrddir/qpsmtpd.rrd:queued:MAX","DEF:minqueued=$rrddir/qpsmtpd.rrd:queued:MIN",
437     + "DEF:total=$rrddir/qpsmtpd.rrd:total:AVERAGE","DEF:maxtotal=$rrddir/qpsmtpd.rrd:total:MAX","DEF:mintotal=$rrddir/qpsmtpd.rrd:total:MIN",
438     + "CDEF:total_accepted=queued,spam_queued,+",
439     + "COMMENT:Last\\t Min\\t Avg\\t Max\\r",
440     +
441     + "COMMENT:\\n","COMMENT:".gettext("Total"),"COMMENT:\\u","GPRINT:total:LAST:%4.0lf ","GPRINT:mintotal:MIN:%4.0lf ","GPRINT:total:AVERAGE:%4.0lf ","GPRINT:maxtotal:MAX:%4.0lf \\r",
442     + "COMMENT:".gettext("Total accepted e-mails"),"COMMENT:\\u","GPRINT:total_accepted:LAST:%4.0lf ","GPRINT:total_accepted:MIN:%4.0lf ","GPRINT:total_accepted:AVERAGE:%4.0lf ","GPRINT:total_accepted:MAX:%4.0lf \\r",
443     + "COMMENT:\\n", "AREA:spam_queued#8fd487:".gettext("Accepted e-mails")."\\: ".gettext("spam queued"),"COMMENT:\\u","GPRINT:spam_queued:LAST:%4.0lf ","GPRINT:minspam_queued:MIN:%4.0lf ","GPRINT:spam_queued:AVERAGE:%4.0lf ","GPRINT:maxspam_queued:MAX:%4.0lf \\r",
444     + "COMMENT:\\n","AREA:queued#1ED408:".gettext("Accepted e-mails")."\\: ".gettext("queued").":STACK","COMMENT:\\u","GPRINT:queued:LAST:%4.0lf ","GPRINT:minqueued:MIN:%4.0lf ","GPRINT:queued:AVERAGE:%4.0lf ","GPRINT:maxqueued:MAX:%4.0lf \\r",
445     +
446     + "COMMENT:\\n", "COMMENT:".gettext("Total denied e-mails"),"COMMENT:\\u","GPRINT:total_denied:LAST:%4.0lf ","GPRINT:mintotal_denied:MIN:%4.0lf ","GPRINT:total_denied:AVERAGE:%4.0lf ","GPRINT:maxtotal_denied:MAX:%4.0lf \\r",
447     + "COMMENT:\\n", "AREA:check_spamhelo#007a7a:".gettext("Denied e-mails")."\\: ".gettext("check_spamhelo").":STACK","COMMENT:\\u","GPRINT:check_spamhelo:LAST:%4.0lf ","GPRINT:mincheck_spamhelo:MIN:%4.0lf ","GPRINT:check_spamhelo:AVERAGE:%4.0lf ","GPRINT:maxcheck_spamhelo:MAX:%4.0lf \\r",
448     + "COMMENT:\\n", "AREA:other_denied#666666:".gettext("Denied e-mails")."\\: ".gettext("other reasons").":STACK","COMMENT:\\u","GPRINT:other_denied:LAST:%4.0lf ","GPRINT:minother_denied:MIN:%4.0lf ","GPRINT:other_denied:AVERAGE:%4.0lf ","GPRINT:maxother_denied:MAX:%4.0lf \\r",
449     + "COMMENT:\\n", "AREA:tls_failed#990099:".gettext("Denied e-mails")."\\: ".gettext("tls failed").":STACK","COMMENT:\\u","GPRINT:tls_failed:LAST:%4.0lf ","GPRINT:mintls_failed:MIN:%4.0lf ","GPRINT:tls_failed:AVERAGE:%4.0lf ","GPRINT:maxtls_failed:MAX:%4.0lf \\r",
450     + "COMMENT:\\n", "AREA:spf#00004f:".gettext("Denied e-mails")."\\: ".gettext("spf").":STACK","COMMENT:\\u","GPRINT:spf:LAST:%4.0lf ","GPRINT:minspf:MIN:%4.0lf ","GPRINT:spf:AVERAGE:%4.0lf ","GPRINT:maxspf:MAX:%4.0lf \\r",
451     + "COMMENT:\\n", "AREA:resolvable_fromhost#ff99ff:".gettext("Denied e-mails")."\\: ".gettext("resolvable_fromhost").":STACK","COMMENT:\\u","GPRINT:resolvable_fromhost:LAST:%4.0lf ","GPRINT:minresolvable_fromhost:MIN:%4.0lf ","GPRINT:resolvable_fromhost:AVERAGE:%4.0lf ","GPRINT:maxresolvable_fromhost:MAX:%4.0lf \\r",
452     + "COMMENT:\\n", "AREA:karma#ffff00:".gettext("Denied e-mails")."\\: ".gettext("karma").":STACK","COMMENT:\\u","GPRINT:karma:LAST:%4.0lf ","GPRINT:minkarma:MIN:%4.0lf ","GPRINT:karma:AVERAGE:%4.0lf ","GPRINT:maxkarma:MAX:%4.0lf \\r",
453     + "COMMENT:\\n", "AREA:check_basicheaders#ff00ff:".gettext("Denied e-mails")."\\: ".gettext("check_basicheaders").":STACK","COMMENT:\\u","GPRINT:check_basicheaders:LAST:%4.0lf ","GPRINT:mincheck_basicheaders:MIN:%4.0lf ","GPRINT:check_basicheaders:AVERAGE:%4.0lf ","GPRINT:maxcheck_basicheaders:MAX:%4.0lf \\r",
454     + "COMMENT:\\n", "AREA:check_goodrcptto#00ffff:".gettext("Denied e-mails")."\\: ".gettext("check_goodrcptto").":STACK","COMMENT:\\u","GPRINT:check_goodrcptto:LAST:%4.0lf ","GPRINT:mincheck_goodrcptto:MIN:%4.0lf ","GPRINT:check_goodrcptto:AVERAGE:%4.0lf ","GPRINT:maxcheck_goodrcptto:MAX:%4.0lf \\r",
455     + "COMMENT:\\n", "AREA:uribl#4c004c:".gettext("Denied e-mails")."\\: ".gettext("uribl").":STACK","COMMENT:\\u","GPRINT:uribl:LAST:%4.0lf ","GPRINT:minuribl:MIN:%4.0lf ","GPRINT:uribl:AVERAGE:%4.0lf ","GPRINT:maxuribl:MAX:%4.0lf \\r",
456     + "COMMENT:\\n", "AREA:rhsbl#7f7f7f:".gettext("Denied e-mails")."\\: ".gettext("rhsbl").":STACK","COMMENT:\\u","GPRINT:rhsbl:LAST:%4.0lf ","GPRINT:minrhsbl:MIN:%4.0lf ","GPRINT:rhsbl:AVERAGE:%4.0lf ","GPRINT:maxrhsbl:MAX:%4.0lf \\r",
457     + "COMMENT:\\n", "AREA:dnsbl#0000ff:".gettext("Denied e-mails")."\\: ".gettext("dnsbl").":STACK","COMMENT:\\u","GPRINT:dnsbl:LAST:%4.0lf ","GPRINT:mindnsbl:MIN:%4.0lf ","GPRINT:dnsbl:AVERAGE:%4.0lf ","GPRINT:maxdnsbl:MAX:%4.0lf \\r",
458     + "COMMENT:\\n", "AREA:check_earlytalker#7c7cff:".gettext("Denied e-mails")."\\: ".gettext("check_earlytalker").":STACK","COMMENT:\\u","GPRINT:check_earlytalker:LAST:%4.0lf ","GPRINT:mincheck_earlytalker:MIN:%4.0lf ","GPRINT:check_earlytalker:AVERAGE:%4.0lf ","GPRINT:maxcheck_earlytalker:MAX:%4.0lf \\r",
459     + "COMMENT:\\n", "AREA:fcrdns#827f00:".gettext("Denied e-mails")."\\: ".gettext("fcrdns").":STACK","COMMENT:\\u","GPRINT:fcrdns:LAST:%4.0lf ","GPRINT:minfcrdns:MIN:%4.0lf ","GPRINT:fcrdns:AVERAGE:%4.0lf ","GPRINT:maxfcrdns:MAX:%4.0lf \\r",
460     + "COMMENT:\\n", "AREA:dmarc#7f0000:".gettext("Denied e-mails")."\\: ".gettext("dmarc").":STACK","COMMENT:\\u","GPRINT:dmarc:LAST:%4.0lf ","GPRINT:mindmarc:MIN:%4.0lf ","GPRINT:dmarc:AVERAGE:%4.0lf ","GPRINT:maxdmarc:MAX:%4.0lf \\r",
461     + "COMMENT:\\n", "AREA:spam_denied#DAA520:".gettext("Denied e-mails")."\\: ".gettext("spam denied").":STACK","COMMENT:\\u","GPRINT:spam_denied:LAST:%4.0lf ","GPRINT:minspam_denied:MIN:%4.0lf ","GPRINT:spam_denied:AVERAGE:%4.0lf ","GPRINT:maxspam_denied:MAX:%4.0lf \\r",
462     + "COMMENT:\\n", "AREA:clamav#ff0000:".gettext("Denied e-mails")."\\: ".gettext("virus").":STACK","COMMENT:\\u","GPRINT:clamav:LAST:%4.0lf ","GPRINT:minclamav:MIN:%4.0lf ","GPRINT:clamav:AVERAGE:%4.0lf ","GPRINT:maxclamav:MAX:%4.0lf \\r",
463     + "COMMENT:\\n");
464     +
465     +}
466     --- smeserver-sme9admin-1.5/root/usr/share/doc/smeserver-sme9admin/create-rrd.sh.email 2014-12-24 07:41:01.000000000 +0100
467     +++ smeserver-sme9admin-1.5/root/usr/share/doc/smeserver-sme9admin/create-rrd.sh 2016-12-08 23:18:58.000000000 +0100
468     @@ -429,4 +429,83 @@
469     RRA:MIN:0.5:24:372 \
470     RRA:MIN:0.5:288:365 \
471    
472     +# qpsmtpd.rrd : stats connexions email entrant
473     +
474     +# nombre et raisons de connexions refusées ou accéptées
475     +
476     +rrdtool create /var/lib/sme9admin/qpsmtpd.rrd -s 300 \
477     + DS:check_basicheaders:GAUGE:600:0:U \
478     + DS:check_goodrcptto:GAUGE:600:0:U \
479     + DS:clamav:GAUGE:600:0:U \
480     + DS:karma:GAUGE:600:0:U \
481     + DS:tls_failed:GAUGE:600:0:U \
482     + DS:rhsbl:GAUGE:600:0:U \
483     + DS:check_earlytalker:GAUGE:600:0:U \
484     + DS:resolvable_fromhost:GAUGE:600:0:U \
485     + DS:dnsbl:GAUGE:600:0:U \
486     + DS:fcrdns:GAUGE:600:0:U \
487     + DS:spf:GAUGE:600:0:U \
488     + DS:check_spamhelo:GAUGE:600:0:U \
489     + DS:uribl:GAUGE:600:0:U \
490     + DS:dmarc:GAUGE:600:0:U \
491     + DS:total_denied::GAUGE:600:0:U \
492     + DS:spam_denied::GAUGE:600:0:U \
493     + DS:other_denied::GAUGE:600:0:U \
494     + DS:spam_queued::GAUGE:600:0:U \
495     + DS:queued::GAUGE:600:0:U \
496     + DS:total::GAUGE:600:0:U \
497     + RRA:AVERAGE:0.5:1:12 \
498     + RRA:AVERAGE:0.5:1:72 \
499     + RRA:AVERAGE:0.5:1:288 \
500     + RRA:AVERAGE:0.5:6:336 \
501     + RRA:AVERAGE:0.5:24:372 \
502     + RRA:AVERAGE:0.5:288:365 \
503     + RRA:MAX:0.5:1:12 \
504     + RRA:MAX:0.5:1:72 \
505     + RRA:MAX:0.5:1:288 \
506     + RRA:MAX:0.5:6:336 \
507     + RRA:MAX:0.5:24:372 \
508     + RRA:MAX:0.5:288:365 \
509     + RRA:MIN:0.5:1:12 \
510     + RRA:MIN:0.5:1:72 \
511     + RRA:MIN:0.5:1:288 \
512     + RRA:MIN:0.5:6:336 \
513     + RRA:MIN:0.5:24:372 \
514     + RRA:MIN:0.5:288:365 \
515     +
516     +# qmail.rrd : stats connexions email sortant local et distant
517     +
518     +# nombre et raisons de connexions refusées ou acceptées et file d'attente
519     +rrdtool create /var/lib/sme9admin/qmail.rrd -s 300 \
520     + DS:local_failure:GAUGE:600:0:U \
521     + DS:local_deferral:GAUGE:600:0:U \
522     + DS:local_success:GAUGE:600:0:U \
523     + DS:local_total:GAUGE:600:0:U \
524     + DS:remote_failure:GAUGE:600:0:U \
525     + DS:remote_deferral:GAUGE:600:0:U \
526     + DS:remote_success:GAUGE:600:0:U \
527     + DS:remote_total:GAUGE:600:0:U \
528     + DS:local_queue:GAUGE:600:0:U \
529     + DS:remote_queue:GAUGE:600:0:U \
530     + RRA:AVERAGE:0.5:1:12 \
531     + RRA:AVERAGE:0.5:1:72 \
532     + RRA:AVERAGE:0.5:1:288 \
533     + RRA:AVERAGE:0.5:6:336 \
534     + RRA:AVERAGE:0.5:24:372 \
535     + RRA:AVERAGE:0.5:288:365 \
536     + RRA:MAX:0.5:1:12 \
537     + RRA:MAX:0.5:1:72 \
538     + RRA:MAX:0.5:1:288 \
539     + RRA:MAX:0.5:6:336 \
540     + RRA:MAX:0.5:24:372 \
541     + RRA:MAX:0.5:288:365 \
542     + RRA:MIN:0.5:1:12 \
543     + RRA:MIN:0.5:1:72 \
544     + RRA:MIN:0.5:1:288 \
545     + RRA:MIN:0.5:6:336 \
546     + RRA:MIN:0.5:24:372 \
547     + RRA:MIN:0.5:288:365 \
548     +
549     +
550     +
551     echo -e "Creation of rrds files :\t\t[OK]"
552     --- smeserver-sme9admin-1.5/root/etc/e-smith/sql/init/sme9admin.email 2014-12-24 07:41:01.000000000 +0100
553     +++ smeserver-sme9admin-1.5/root/etc/e-smith/sql/init/sme9admin 2016-12-08 23:18:19.000000000 +0100
554     @@ -39,3 +39,77 @@
555     #si c'est une freshinstall on cree les rrd
556     sh /usr/share/doc/smeserver-sme9admin/create-rrd.sh
557     fi
558     + if [[ ! -f /var/lib/sme9admin/qpsmtpd.rrd ]]; then
559     + # si le rrd qpsmtpd existe pas (nouveauté SME9)
560     + rrdtool create /var/lib/sme9admin/qpsmtpd.rrd -s 300 \
561     + DS:check_basicheaders:GAUGE:600:0:U \
562     + DS:check_goodrcptto:GAUGE:600:0:U \
563     + DS:clamav:GAUGE:600:0:U \
564     + DS:karma:GAUGE:600:0:U \
565     + DS:tls_failed:GAUGE:600:0:U \
566     + DS:rhsbl:GAUGE:600:0:U \
567     + DS:check_earlytalker:GAUGE:600:0:U \
568     + DS:resolvable_fromhost:GAUGE:600:0:U \
569     + DS:dnsbl:GAUGE:600:0:U \
570     + DS:fcrdns:GAUGE:600:0:U \
571     + DS:spf:GAUGE:600:0:U \
572     + DS:check_spamhelo:GAUGE:600:0:U \
573     + DS:uribl:GAUGE:600:0:U \
574     + DS:dmarc:GAUGE:600:0:U \
575     + DS:total_denied:GAUGE:600:0:U \
576     + DS:spam_denied:GAUGE:600:0:U \
577     + DS:other_denied:GAUGE:600:0:U \
578     + DS:spam_queued:GAUGE:600:0:U \
579     + DS:queued:GAUGE:600:0:U \
580     + DS:total:GAUGE:600:0:U \
581     + RRA:AVERAGE:0.5:1:12 \
582     + RRA:AVERAGE:0.5:1:72 \
583     + RRA:AVERAGE:0.5:1:288 \
584     + RRA:AVERAGE:0.5:6:336 \
585     + RRA:AVERAGE:0.5:24:372 \
586     + RRA:AVERAGE:0.5:288:365 \
587     + RRA:MAX:0.5:1:12 \
588     + RRA:MAX:0.5:1:72 \
589     + RRA:MAX:0.5:1:288 \
590     + RRA:MAX:0.5:6:336 \
591     + RRA:MAX:0.5:24:372 \
592     + RRA:MAX:0.5:288:365 \
593     + RRA:MIN:0.5:1:12 \
594     + RRA:MIN:0.5:1:72 \
595     + RRA:MIN:0.5:1:288 \
596     + RRA:MIN:0.5:6:336 \
597     + RRA:MIN:0.5:24:372 \
598     + RRA:MIN:0.5:288:365
599     + fi
600     + if [[ ! -f /var/lib/sme9admin/qmail.rrd ]]; then
601     + # nombre et raisons de connexions refusées ou acceptées et file d'attente
602     + rrdtool create /var/lib/sme9admin/qmail.rrd -s 300 \
603     + DS:local_failure:GAUGE:600:0:U \
604     + DS:local_deferral:GAUGE:600:0:U \
605     + DS:local_success:GAUGE:600:0:U \
606     + DS:local_total:GAUGE:600:0:U \
607     + DS:remote_failure:GAUGE:600:0:U \
608     + DS:remote_deferral:GAUGE:600:0:U \
609     + DS:remote_success:GAUGE:600:0:U \
610     + DS:remote_total:GAUGE:600:0:U \
611     + DS:local_queue:GAUGE:600:0:U \
612     + DS:remote_queue:GAUGE:600:0:U \
613     + RRA:AVERAGE:0.5:1:12 \
614     + RRA:AVERAGE:0.5:1:72 \
615     + RRA:AVERAGE:0.5:1:288 \
616     + RRA:AVERAGE:0.5:6:336 \
617     + RRA:AVERAGE:0.5:24:372 \
618     + RRA:AVERAGE:0.5:288:365 \
619     + RRA:MAX:0.5:1:12 \
620     + RRA:MAX:0.5:1:72 \
621     + RRA:MAX:0.5:1:288 \
622     + RRA:MAX:0.5:6:336 \
623     + RRA:MAX:0.5:24:372 \
624     + RRA:MAX:0.5:288:365 \
625     + RRA:MIN:0.5:1:12 \
626     + RRA:MIN:0.5:1:72 \
627     + RRA:MIN:0.5:1:288 \
628     + RRA:MIN:0.5:6:336 \
629     + RRA:MIN:0.5:24:372 \
630     + RRA:MIN:0.5:288:365
631     + fi

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed