Cacti

Aus crazylinux.de
Zur Navigation springen Zur Suche springen

Cacti

Erweiterungen

Download siehe Files

iptables

http://forums.cacti.net/about8091.html
download cacti templates. Da iptables als root ausgeführt werden muss, wird das script über sudo aufgerufen: /etc/sudoers

#logging
Defaults syslog = local2
# User privilege specification
www-data    ALL = NOPASSWD: /usr/share/cacti/site/scripts/iptables.pl

Damit der syslog nicht damit unnötig 'beloggt' wird, loggen wir an log-facility local2 und damit in ein eigenes Logfile /etc/syslog.conf:

...
*.*;auth,authpriv.none;mail.!*;daemon.!info;cron.!*;local2.none         -/var/log/syslog
...
local2.* /var/log/sudo.log
#!/usr/bin/perl
###
### This is a quick perl script to
### pull bandwidth usage from iptables chains
###
### If you use/optimize this script, please let me know.
### Brian Stanback : brian [at] stanback [dot] net
##
### Example iptables rule for web bandwidth usage:
### > iptables -N WWW
### > iptables -A WWW -j ACCEPT
### > iptables -A INPUT -p tcp -m tcp --dport 80 -j WWW
### > iptables -A OUTPUT -p tcp -m tcp --sport 80 -j WWW
###
### Run "iptables.pl WWW" as root to test, note that you can
### combine more than one protocol into a single chain.
###
### Sudo Configuration (/etc/sudoers)
### > www-data    ALL = NOPASSWD: /usr/share/cacti/scripts/iptables.pl
###
### The Input String should be set to "sudo <path_cacti>/scripts/iptables.pl <chain>"
### and you will need to setup an input field so that the <chain> argument can be passed.
###
### The data input type should be set to COUNTER
###
##
##
## modified by: Paul Campbell <forums@campbell-multimedia.co.uk>
## Now returns a seperate entry for each rule.  Output for a
## 3 rule chain might now be:
## rule1:123 rule2:456 rule3:789
#
if ($ARGV[0]) {
$chains = `/sbin/iptables --line-number -xnvL $ARGV[0]`;
@chains = split(/\n/, $chains);
shift(@chains);
shift(@chains);
foreach( @chains ) {
/(\d+)\W+[0-9]+\W+([0-9]+)\W+/;
print " rule$1:$2";
}
print "\n";
#$chains[2] =~ /[\W+]?[0-9]+\W+([0-9]+)\W+/;
} else {
print "Usage: $0 Chain\n";
}

Mysql

http://forums.cacti.net/viewtopic.php?t=6108

Squid

in /etc/snmp/snmpd.conf

proxy -v 1 -c public localhost:3401 .1.3.6.1.4.1.3495.1

und in /etc/squid/squid.conf

acl snmppublic snmp_community public
snmp_access allow snmppublic localhost
snmp_access deny all
snmp_port 3401

http://forums.cacti.net/about4142-0-asc-0.html

Qmail

snmpd erweitern: http://wotsit.thingy.com/haj/cacti/cacti-qmail.html

#/etc/snmp/snmpd.conf
...
exec .1.3.6.1.4.1.2021.50.1 qmail-message-status  /usr/local/bin/qmailmrtg7 s /var/log/qmail
exec .1.3.6.1.4.1.2021.50.2 qmail-bytes-transfer /usr/local/bin/qmailmrtg7 b /var/log/qmail
exec .1.3.6.1.4.1.2021.50.3 qmail-smtp-concurrency /usr/local/bin/qmailmrtg7 t /var/log/qmail/smtpd
exec .1.3.6.1.4.1.2021.50.4 qmail-sessions /usr/local/bin/qmailmrtg7 a /var/log/qmail/smtpd
exec .1.3.6.1.4.1.2021.50.5 qmail-queue /usr/local/bin/qmailmrtg7 q /var/qmail/queue
exec .1.3.6.1.4.1.2021.50.6 qmail-messages /usr/local/bin/qmailmrtg7 m /var/log/qmail
exec .1.3.6.1.4.1.2021.50.7 qmail-concurrency /usr/local/bin/qmailmrtg7 c /var/log/qmail
exec .1.3.6.1.4.1.2021.50.8 qmail-smtp-concurrency /usr/local/bin/qmailmrtg7 t /var/log/qmail/smtpd_auth
exec .1.3.6.1.4.1.2021.50.9 qmail-sessions /usr/local/bin/qmailmrtg7 a /var/log/qmail/smtpd_auth
...

Werte abfragen: snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.50

Cacti-Templates: http://forums.cacti.net/about3839.html

OIDs:

Qmail - Messages - Attempts .1.3.6.1.4.1.2021.50.1.101.2
Qmail - Messages - Deliveries .1.3.6.1.4.1.2021.50.1.101.1
Qmail - Bits Transfer .1.3.6.1.4.1.2021.50.2.101.1
Qmail - SMTP Concurrency .1.3.6.1.4.1.2021.50.3.101.1
Qmail - SMTP Totals - Allow .1.3.6.1.4.1.2021.50.4.101.1
Qmail - SMTP Totals - Deny .1.3.6.1.4.1.2021.50.4.101.2
Qmail - Queue Size .1.3.6.1.4.1.2021.50.5.101.2
Qmail - Queue Size - Unprocessed .1.3.6.1.4.1.2021.50.5.101.1
Qmail - Messages Status - Failures .1.3.6.1.4.1.2021.50.6.101.2
Qmail - Messages Status - Success .1.3.6.1.4.1.2021.50.6.101.1
Qmail - Local/Remote Concurrency - Local .1.3.6.1.4.1.2021.50.7.101.1
Qmail - Local/Remote Concurrency - Remote .1.3.6.1.4.1.2021.50.7.101.2

Qmail - SpamAssassin - Clean Qmail - SpamAssassin - Spam Qmail - Clamav - Error Qmail - Clamav - Found

courier

von http://xavier.perseguers.ch/open-source/cacti/
Files: http://crazylinux.de/files/it_stuff/cacti/courier/

/etc/snmp/snmpd.conf

exec   .1.3.6.1.4.5312.3.1   couriercount_imaps  /bin/cat /var/tmp/courierimaps
exec   .1.3.6.1.4.5312.3.2   couriercount_imap   /bin/cat /var/tmp/courierimap
exec   .1.3.6.1.4.5312.3.3   couriercount_pop3s  /bin/cat /var/tmp/courierpop3s
exec   .1.3.6.1.4.5312.3.4   couriercount_pop3   /bin/cat /var/tmp/courierpop3

Spamassassin

Als Vorlage diente qs2mrtg.pl. von qmail-scanner: Reporting: in the contrib directory there's qs2mrtg.pl. A perl script for monitoring your syslog files for qmail-scanner records. It then graphs how Qmail-Scanner is processing your emails. It creates different graphs for incoming vs outgoing email, as well as the flow of spam and viruses.

#/etc/snmp/snmpd.conf
exec .1.3.6.1.4.1.2050.50.1 spamd_spam  /bin/cat /var/qmail/log/spam.txt
exec .1.3.6.1.4.1.2050.50.2 spamd_rbl  /bin/cat /var/qmail/log/rbl.txt
exec .1.3.6.1.4.1.2050.50.3 spamd_tot_local  /bin/cat /var/qmail/log/totall.txt
exec .1.3.6.1.4.1.2050.50.4 spamd_tot_remote  /bin/cat /var/qmail/log/totalr.txt
exec .1.3.6.1.4.1.2050.50.5 spamd_quar_virus  /bin/cat /var/qmail/log/quarantinedv.txt
exec .1.3.6.1.4.1.2050.50.6 spamd_quar_policy  /bin/cat /var/qmail/log/quarantinedp.txt

HDDTemp

http://blog.gotchi.at/index.php?/archives/305-Monitoring-Hardware-mit-Cacti.html http://forums.cacti.net/about15743.html

LM Sensors

get some temperatures... see http://wiki.hetzner.de/index.php/Hardwaremonitoring

modprobe i2c-viapro && modprobe eeprom && modprobe w83627hf or put them into /etc/modules

for cacti start with http://www.wlug.org.nz/CactiLMSensors

#!/usr/bin/perl

@sensoroutput=`/usr/bin/sensors`;

foreach(@sensoroutput) {
chomp();
split();
#print $_[0],"-",$_[1],$_[2],"\n";
if ( $_[0] eq 'M/B' ) {
$temp1 = $_[2];
}
if ( $_[0] eq 'CPU' ) {
$temp2 = $_[2];
}
if ( $_[0] eq 'temp3:' ) {
$temp3 = $_[1];
}
if ( $_[0] eq 'fan1:' ) {
$fan1 = $_[1];
}
if ( $_[0] eq 'fan2:' ) {
$fan2 = $_[1];
}
if ( $_[0] eq 'fan3:' ) {
$fan3 = $_[1];
}
}

$temp1 =~ s/\+//;
$temp1 =~ s/\°C//;
$temp2 =~ s/\+//;
$temp2 =~ s/\°C//;
$temp3 =~ s/\+//;
$temp3 =~ s/\°C//;

print "temp1:$temp1 temp2:$temp2 temp3:$temp3\n";

SmartMonTools (smartctl)

http://forums.cacti.net/viewtopic.php?t=23959

  • HDD-Temp
  • HDD-Errors
  • Power-Up (not used)

<source lang=php>

  1. !/usr/bin/php

<?php /*

* 4 = value
* 7 = Raw
*
* include this into the /etc/sudoers file!!
* www-data    ALL= NOPASSWD: /usr/sbin/smartctl
*
*/

if ($argc < 2) {

       die("USAGE: $argv[0] /dev/sdX\n");

}


$dev = $argv[1]; $smartCtl = exec('sudo /usr/sbin/smartctl -d ata --all ' . $dev,$output); //print_r($output); $_OUT = array(); $needle = "Temperature_Celsius,Reallocated_Sector_Ct,Power_On_Hours,Spin_Retry_Count,Seek_Error_Rate,Raw_Read_Error_Rate";


foreach ($output as $line) {

       if (preg_match('/^\s*(\d+)\s+(\w+)\s+(0x[0-9a-fA-F]+)\s+(\d+)\s+(\d+)\s+(\d+).*\s+\-\s+(\d+)/',$line,$match)) {
       //      print_r($match);
               if ( $match[2] == 'Temperature_Celsius') $_OUT['Temperature_Celsius'] = $match[7];
               if ( $match[2] == 'Reallocated_Sector_Ct') $_OUT['Reallocated_Sector_Ct'] = $match[7];
               if ( $match[2] == 'Power_On_Hours') $_OUT['Power_On_Hours'] = $match[7];
               if ( $match[2] == 'Spin_Retry_Count') $_OUT['Spin_Retry_Count'] = $match[7];
               if ( $match[2] == 'Seek_Error_Rate') $_OUT['Seek_Error_Rate'] = $match[7];
               if ( $match[2] == 'Raw_Read_Error_Rate') $_OUT['Raw_Read_Error_Rate'] = $match[7];
       }

}


$needle = explode(",",$needle); foreach ( $needle as $need ) {

       if ( ! isset($_OUT[$need]) ) $_OUT[$need] = 0;

}


print (

       "Temperature_Celsius:" . $_OUT['Temperature_Celsius'] . " " .
       "Reallocated_Sector_Ct:" . $_OUT['Reallocated_Sector_Ct'] . " " .
       "Power_On_Hours:" . $_OUT['Power_On_Hours'] . " " .
       "Spin_Retry_Count:" . $_OUT['Spin_Retry_Count'] . " " .
       "Seek_Error_Rate:" . $_OUT['Seek_Error_Rate'] . " " .
       "Raw_Read_Error_Rate:" . $_OUT['Raw_Read_Error_Rate']

);


?> </source