Cacti
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>
- !/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