====== collectd ======
===== debug log =====
#source : http://emacstragic.net/collectd-causing-rrd-illegal-attempt-to-update-using-time-errors/
FSType "rootfs"
IgnoreSelected true
===== mysql =====
apt-get install libdbd-mysql
LoadPlugin dbi
# recup de la taille de la table inventoryitems
Statement "SELECT table_name as c_key,round(sum(data_length+index_length)/1024/1024,2) as c_value FROM information_schema.tables WHERE table_schema = 'prod_grid' AND table_name = 'inventoryitems';"
Type "gauge"
InstancePrefix "inventory_size"
InstancesFrom "c_key"
ValuesFrom "c_value"
# recup du nombre de users
Statement "SELECT count( PrincipalID ) as c_value FROM `UserAccounts;"
Type "gauge"
InstancePrefix "users_count"
ValuesFrom "c_value"
# recup de la quantite de users online
Statement "SELECT COUNT(UserID) AS c_value FROM Presence WHERE RegionID'00000000-0000-0000-0000-000000000000';"
Type "gauge"
InstancePrefix "online_users_count"
ValuesFrom "c_value"
# recup de la quantite de regions
Statement "SELECT COUNT(uuid) AS c_value FROM regions;"
Type "gauge"
InstancePrefix "regions_count"
ValuesFrom "c_value"
# config de la base
Driver "mysql"
DriverOption "host" "localhost"
DriverOption "mysql_unix_socket" "/var/run/mysqld/mysqld.sock"
DriverOption "username" "localreader"
DriverOption "password" "abcdef"
DriverOption "dbname" "mybase"
SelectDB "mybase"
Query "inventory_size"
Query "users_count"
Query "online_users_count"
Query "regions_count"
===== apache stats =====
==== Install apache stats ====
a2enmod status
==== create stats config file ====
edit /etc/apache2/conf.d/stats
ExtendedStatus on
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .example.com
Allow from localhost
==== Install collectd ====
apt-get install collectd
* the config file is : /etc/collectd/collectd.conf
* the default rrd folder is : /var/lib/collectd/rrd
* the default plugins folder is : /usr/lib/collectd
* some libs are in : /usr/share/collectd
edit /etc/collectd/collectd.conf
# Config file for collectd(1).
#
# Some plugins need additional configuration and are disabled by default.
# Please read collectd.conf(5) for details.
#
# You should also read /usr/share/doc/collectd-core/README.Debian.plugins
# before enabling any more plugins.
#Hostname "localhost"
FQDNLookup true
#BaseDir "/var/lib/collectd"
#PluginDir "/usr/lib/collectd"
#TypesDB "/usr/share/collectd/types.db" "/etc/collectd/my_types.db"
#Interval 10
#ReadThreads 5
LoadPlugin logfile
#LoadPlugin syslog
#
# LogLevel info
#
LogLevel "info"
File "/var/log/collectd.log"
#File STDOUT
Timestamp true
LoadPlugin apache
#LoadPlugin apcups
#LoadPlugin ascent
#LoadPlugin battery
#LoadPlugin bind
#LoadPlugin conntrack
LoadPlugin cpu
#LoadPlugin cpufreq
#LoadPlugin csv
#LoadPlugin curl
#LoadPlugin curl_json
#LoadPlugin dbi
LoadPlugin df
LoadPlugin disk
#LoadPlugin dns
#LoadPlugin email
#LoadPlugin entropy
#LoadPlugin exec
#LoadPlugin filecount
#LoadPlugin fscache
#LoadPlugin gmond
#LoadPlugin hddtemp
LoadPlugin interface
#LoadPlugin ipmi
#LoadPlugin iptables
#LoadPlugin ipvs
#LoadPlugin irq
#LoadPlugin java
#LoadPlugin libvirt
LoadPlugin load
#LoadPlugin madwifi
#LoadPlugin mbmon
#LoadPlugin memcachec
#LoadPlugin memcached
LoadPlugin memory
#LoadPlugin multimeter
#LoadPlugin mysql
#LoadPlugin netlink
#LoadPlugin network
#LoadPlugin nfs
#LoadPlugin nginx
#LoadPlugin notify_desktop
#LoadPlugin notify_email
#LoadPlugin ntpd
#LoadPlugin nut
#LoadPlugin olsrd
#LoadPlugin openvpn
#LoadPlugin perl
#LoadPlugin ping
#LoadPlugin postgresql
#LoadPlugin powerdns
LoadPlugin processes
#LoadPlugin protocols
LoadPlugin rrdtool
#LoadPlugin sensors
#LoadPlugin serial
#LoadPlugin snmp
LoadPlugin swap
#LoadPlugin table
#LoadPlugin tail
#LoadPlugin tcpconns
#LoadPlugin teamspeak2
#LoadPlugin ted
#LoadPlugin thermal
#LoadPlugin unixsock
#LoadPlugin uptime
#LoadPlugin users
#LoadPlugin uuid
#LoadPlugin vmem
#LoadPlugin vserver
#LoadPlugin wireless
#LoadPlugin write_http
#
# URL "http://localhost/server-status?auto"
# User "www-user"
# Password "secret"
# VerifyPeer false
# VerifyHost false
# CACert "/etc/ssl/ca.crt"
# Server "apache"
#
#
URL "http://localhost/server-status?auto"
Host "mymachine"
Server "apache"
#
# Host "localhost"
# Port "3551"
#
#
# URL "http://localhost/ascent/status/"
# User "www-user"
# Password "secret"
# VerifyPeer false
# VerifyHost false
# CACert "/etc/ssl/ca.crt"
#
#
# URL "http://localhost:8053/"
#
# OpCodes true
# QTypes true
# ServerStats true
# ZoneMaintStats true
# ResolverStats false
# MemoryStats true
#
#
# QTypes true
# ResolverStats true
# CacheRRSets true
#
# Zone "127.in-addr.arpa/IN"
#
#
#
# DataDir "/var/lib/collectd/csv"
# StoreRates false
#
#
#
# URL "http://finance.google.com/finance?q=NYSE%3AAMD"
# User "foo"
# Password "bar"
# VerifyPeer false
# VerifyHost false
# CACert "/etc/ssl/ca.crt"
#
# Regex "]*> *([0-9]*\\.[0-9]+) *"
# DSType "GaugeAverage"
# Type "stock_value"
# Instance "AMD"
#
#
#
#
## See: http://wiki.apache.org/couchdb/Runtime_Statistics
#
# Instance "httpd"
#
# Type "http_requests"
#
#
#
# Type "http_request_methods"
#
#
#
# Type "http_response_codes"
#
#
## Database status metrics:
#
# Instance "dbs"
#
# Type "gauge"
#
#
# Type "counter"
#
#
# Type "bytes"
#
#
#
#
#
# Statement "SELECT 'customers' AS c_key, COUNT(*) AS c_value \
# FROM customers_tbl"
# MinVersion 40102
# MaxVersion 50042
#
# Type "gauge"
# InstancePrefix "customer"
# InstancesFrom "c_key"
# ValuesFrom "c_value"
#
#
#
#
# Driver "mysql"
# DriverOption "host" "localhost"
# DriverOption "username" "collectd"
# DriverOption "password" "secret"
# DriverOption "dbname" "custdb0"
# SelectDB "custdb0"
# Query "num_of_customers"
# Query "..."
#
#
#
# Device "/dev/sda1"
# Device "192.168.0.2:/mnt/nfs"
# MountPoint "/home"
# FSType "ext3"
# IgnoreSelected false
# ReportByDevice false
#
#
# Disk "hda"
# Disk "/sda[23]/"
# IgnoreSelected false
#
#
# Interface "eth0"
# IgnoreSource "192.168.0.1"
# SelectNumericQueryTypes false
#
#
# SocketFile "/var/run/collectd-email"
# SocketGroup "collectd"
# SocketPerms "0770"
# MaxConns 5
#
#
# Exec user "/path/to/exec"
# Exec "user:group" "/path/to/exec"
# NotificationExec user "/path/to/exec"
#
#
#
# Instance "foodir"
# Name "*.conf"
# MTime "-5m"
# Size "+10k"
# Recursive true
#
#
#
# MCReceiveFrom "239.2.11.71" "8649"
#
#
# Type "swap"
# TypeInstance "total"
# DataSource "value"
#
#
#
# Type "swap"
# TypeInstance "free"
# DataSource "value"
#
#
#
# Host "127.0.0.1"
# Port 7634
# TranslateDevicename false
#
#
# Interface "eth0"
# IgnoreSelected false
#
#
# Sensor "some_sensor"
# Sensor "another_one"
# IgnoreSelected false
# NotifySensorAdd false
# NotifySensorRemove true
# NotifySensorNotPresent false
#
#
# Chain "table" "chain"
#
#
# Irq 7
# Irq 8
# Irq 9
# IgnoreSelected true
#
#
# JVMArg "-verbose:jni"
#
# LoadPlugin "org.collectd.java.GenericJMX"
#
# # See /usr/share/doc/collectd/examples/GenericJMX.conf
# # for an example config.
#
#
#
# Connection "xen:///"
# RefreshInterval 60
# Domain "name"
# BlockDevice "name:device"
# InterfaceDevice "name:device"
# IgnoreSelected false
# HostnameFormat name
#
#
# Interface "wlan0"
# IgnoreSelected false
# Source "SysFS"
# WatchSet "None"
# WatchAdd "node_octets"
# WatchAdd "node_rssi"
# WatchAdd "is_rx_acl"
# WatchAdd "is_scan_active"
#
#
# Host "127.0.0.1"
# Port 411
#
#
#
# Server "localhost"
# Key "page_key"
#
# Regex "(\\d+) bytes sent"
# DSType CounterAdd
# Type "ipt_octets"
# Instance "type_instance"
#
#
#
#
# Socket "/var/run/memcached.sock"
# or:
# Host "127.0.0.1"
# Port "11211"
#
#
#
# Host "database.serv.er"
# Port "3306"
# User "db_user"
# Password "secret"
# Database "db_name"
# MasterStats true
#
#
#
# Host "localhost"
# Socket "/var/run/mysql/mysqld.sock"
# SlaveStats true
# SlaveNotifications true
#
#
#
# Interface "All"
# VerboseInterface "All"
# QDisc "eth0" "pfifo_fast-1:0"
# Class "ppp0" "htb-1:10"
# Filter "ppp0" "u32-1:0"
# IgnoreSelected false
#
#
# # client setup:
# Server "ff18::efc0:4a42" "25826"
#
# SecurityLevel Encrypt
# Username "user"
# Password "secret"
#
# TimeToLive "128"
#
# # server setup:
# Listen "ff18::efc0:4a42" "25826"
#
# SecurityLevel Sign
# AuthFile "/etc/collectd/passwd"
#
# MaxPacketSize 1024
#
# # proxy setup (client and server as above):
# Forward true
#
#
# URL "http://localhost/status?auto"
# User "www-user"
# Password "secret"
# VerifyPeer false
# VerifyHost false
# CACert "/etc/ssl/ca.crt"
#
#
# OkayTimeout 1000
# WarningTimeout 5000
# FailureTimeout 0
#
#
# SMTPServer "localhost"
# SMTPPort 25
# SMTPUser "my-username"
# SMTPPassword "my-password"
# From "collectd@main0server.com"
# # on .
# # Beware! Do not use not more than two placeholders (%)!
# Subject "[collectd] %s on %s!"
# Recipient "email1@domain1.net"
# Recipient "email2@domain2.com"
#
#
# Host "localhost"
# Port 123
# ReverseLookups false
#
#
# UPS "upsname@hostname:port"
#
#
# Host "127.0.0.1"
# Port "2006"
# CollectLinks "Summary"
# CollectRoutes "Summary"
# CollectTopology "Summary"
#
#
# StatusFile "/etc/openvpn/openvpn-status.log"
#
#
# IncludeDir "/my/include/path"
# BaseName "Collectd::Plugin"
# EnableDebugger ""
# LoadPlugin "foo"
# LoadPlugin "bar"
#
#
# Foo "Bar"
# Qux "Baz"
#
#
#
# Host "host.foo.bar"
# Host "host.baz.qux"
# Interval 1.0
# Timeout 0.9
# TTL 255
#
#
#
# Statement "SELECT magic FROM wizard WHERE host = $1;"
# Param hostname
#
#
# Type gauge
# InstancePrefix "magic"
# ValuesFrom "magic"
#
#
#
#
# Statement "SELECT COUNT(type) AS count, type \
# FROM (SELECT CASE \
# WHEN resolved = 'epoch' THEN 'open' \
# ELSE 'resolved' END AS type \
# FROM tickets) type \
# GROUP BY type;"
#
#
# Type counter
# InstancePrefix "rt36_tickets"
# InstancesFrom "type"
# ValuesFrom "count"
#
#
#
#
# Host "hostname"
# Port 5432
# User "username"
# Password "secret"
#
# SSLMode "prefer"
# KRBSrvName "kerberos_service_name"
#
# Query magic
#
#
#
# Service "service_name"
#
# Query backend # predefined
# Query rt36_tickets
#
#
#
#
# Collect "latency"
# Collect "udp-answers" "udp-queries"
# Socket "/var/run/pdns.controlsocket"
#
#
# Collect "questions"
# Collect "cache-hits" "cache-misses"
# Socket "/var/run/pdns_recursor.controlsocket"
#
# LocalSocket "/opt/collectd/var/run/collectd-powerdns"
#
#
# Process "name"
# ProcessMatch "foobar" "/usr/bin/perl foobar\\.pl.*"
#
#
# Value "/^Tcp:/"
# IgnoreSelected false
#
DataDir "/var/lib/collectd/rrd"
# CacheTimeout 120
# CacheFlush 900
# WritesPerSecond 30
# RandomTimeout 0
#
# The following settings are rather advanced
# and should usually not be touched:
# StepSize 10
# HeartBeat 20
# RRARows 1200
# RRATimespan 158112000
# XFF 0.1
#
# Sensor "it8712-isa-0290/temperature-temp1"
# Sensor "it8712-isa-0290/fanspeed-fan3"
# Sensor "it8712-isa-0290/voltage-in8"
# IgnoreSelected false
#
# See /usr/share/doc/collectd/examples/snmp-data.conf.gz for a
# comprehensive sample configuration.
#
#
# Type "voltage"
# Table false
# Instance "input_line1"
# Scale 0.1
# Values "SNMPv2-SMI::enterprises.6050.5.4.1.1.2.1"
#
#
# Type "users"
# Table false
# Instance ""
# Shift -1
# Values "HOST-RESOURCES-MIB::hrSystemNumUsers.0"
#
#
# Type "if_octets"
# Table true
# InstancePrefix "traffic"
# Instance "IF-MIB::ifDescr"
# Values "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
#
#
#
# Address "192.168.0.2"
# Version 1
# Community "community_string"
# Collect "std_traffic"
# Inverval 120
#
#
# Address "192.168.0.42"
# Version 2
# Community "another_string"
# Collect "std_traffic" "hr_users"
#
#
# Address "192.168.0.3"
# Version 1
# Community "more_communities"
# Collect "powerplus_voltge_input"
# Interval 300
#
#
#
#
# Instance "slabinfo"
# Separator " "
#
# Type gauge
# InstancePrefix "active_objs"
# InstancesFrom 0
# ValuesFrom 1
#
#
# Type gauge
# InstancePrefix "objperslab"
# InstancesFrom 0
# ValuesFrom 4
#
#
#
#
#
# Instance "exim"
#
# Regex "S=([1-9][0-9]*)"
# DSType "CounterAdd"
# Type "ipt_bytes"
# Instance "total"
#
#
# Regex "\\"
# DSType "CounterInc"
# Type "counter"
# Instance "local_user"
#
#
#
#
# ListeningPorts false
# LocalPort "25"
# RemotePort "25"
#
#
# Host "127.0.0.1"
# Port "51234"
# Server "8767"
#
#
# Device "/dev/ttyUSB0"
# Retries 0
#
#
# ForceUseProcfs false
# Device "THRM"
# IgnoreSelected false
#
#
# SocketFile "/var/run/collectd-unixsock"
# SocketGroup "collectd"
# SocketPerms "0660"
#
#
# UUIDFile "/etc/uuid"
#
#
# Verbose false
#
#
#
# User "collectd"
# Password "secret"
#
#
Include "/etc/collectd/filters.conf"
Include "/etc/collectd/thresholds.conf"
==== Restart Collectd ====
/etc/init.d/collectd restart
===== Install web interface =====
==== Install some perl libs ====
apt-get install librrds-perl libconfig-general-perl libhtml-parser-perl libregexp-common-perl
==== Create an apache conf file ====
edit /etc/apache2/sites-available/stats
ScriptAlias /collectd/bin/ /usr/share/doc/collectd-core/examples/collection3/bin/
Alias /collectd/ /usr/share/doc/collectd-core/examples/collection3/
AddHandler cgi-script .cgi
DirectoryIndex bin/index.cgi
Options +ExecCGI
Order Allow,Deny
Allow from example.com
==== Enable apache site ====
a2ensite stats
==== Restart apache ====
service apache2 restart
==== Go to the page ====
http://localhost/collectd/bin/index.cgi
{{tag>collectd}}