monitorix.conf(5) Monitorix configuration file monitorix.conf(5)
NAME
monitorix.conf - Configuration file for Monitorix.
SYNOPSIS
Monitorix is a free, open source, lightweight system monitoring tool designed to monitor as many services and system resources as possible.
It has been created to be used on production UNIX/Linux servers, but due to its simplicity and small size may also be used to monitor
embedded devices as well.
It consists mainly of two programs: a collector, called monitorix, which is a Perl daemon that is started automatically like any other sys-
tem service, and a CGI script called monitorix.cgi.
Every time monitorix is started it reads the configuration file from the path specified in the command line (using the -c option), and once
checked, it creates the index.html file that will act as the Monitorix main page.
It also creates a file called $BASE_DIR/cgi-bin/monitorix.conf.path that includes the absolute path of the configuration file. This file
will be read by monitorix.cgi to determine the exact location of the configuration file. If for any reason it is unable to locate this
file, Monitorix will try two alternate locations: /etc/monitorix.conf and /usr/local/etc/monitorix.conf.
DESCRIPTION
The configuration file is a Perl file where values are directly assigned to variables that Monitorix uses during normal operation; you
should take care to conform to basic Perl syntax.
CONFIGURATION OPTIONS
Because this file follows the Perl syntax, you will find different type of options (scalar or normal variables, arrays and associative
arrays), each one prefixed with $, @ and % respectively. This is important to keep in mind as the prefix symbols indicate what type of val-
ues each option accepts.
Remember to enclose all values with double quotes.
TITLE
A description of the server, where it is located, the Company name, etc.
Default value: Place a Title Here
HOSTNAME
The name of the host.
Default value: none
THEME_COLOR
RRDtool comes with a default white theme, and since Monitorix introduces its own black theme, you have two predefined themes to
choose from.
Default value: black
REFRESH_RATE
The refresh rate (in seconds) of the statistics web page displayed in your browser. If set to 0, page refreshing is disabled.
Default value: 150
IFACE_MODE
The interface mode defines the manner in which data is shown in the browser. Since version 1.4.0 it has been possible to display the
graphic data using plain text tables. This allows Monitorix to be used by those running screen reader software, and also simplifies
automatic data processing through scripts.
The possible values are:
graph for rendered graphs
text for plain text representation
Default value: graph
ENABLE_ZOOM
Zoom allows double clicking any graph in order to see a larger version (zoomed in). This is especially useful for seeing additional
detail.
Default value: Y
NETSTATS_IN_BPS
This option toggles network values between bits and bytes per second.
Default value: N
DISABLE_JAVASCRIPT_VOID
This option enables or disables the use of use javascript:void-URLs when opening windows with zoomed graphs. Some people likes to
open links in the background by pressing the middle mouse button in Firefox, and with the default javascript:void-URLs the only they
get is an empty window with nothing in it.
Default value: N
BASE_DIR
This is the absolute path to the directory where all the web elements are located:
cgi-bin/ monitorix.cgi script directory
imgs/ .png graph images directory
index.html Monitorix main page
logo_bot.png Monitorix bottom logo
logo_top.png Monitorix top logo
monitorixico.png Monitorix favicon logo
Default value: /usr/share/monitorix/
(depends on the operating system)
BASE_LIB
This is the absolute path to the directory where all of the monthly reports, daily traffic usage, and RRD files are located:
reports/ monthly reports localization directory
usage/ daily traffic usage data directory
*.rrd RRD files
Default value: /var/lib/monitorix/
(depends on the operating system)
BASE_URL
This is the URL prefix that Monitorix utilizes when refering to its own pages and files.
Default value: /monitorix
BASE_CGI
This is the URL prefix that Monitorix utilizes when refering to monitorix.cgi.
Default value: /monitorix-cgi
LOG_FILE
This is the path to the Monitorix log file. Please check this file periodically and especially after every update to confirm proper
operation.
Default value: /var/log/monitorix
SECURE_LOG
This is the path to the system log (also known as secure, auth.log, etc.) Monitorix uses this file to report SSH, POP3, FTP and Tel-
net successful logins.
Default value: /var/log/secure
MAIL_LOG
This is the path to the mail log file. Monitorix uses this file to report messages sent (supporting Sendmail and Postfix formats),
and the MailScanner log format for spam-mail and virus-mail alerts.
Default value: /var/log/maillog
MILTER_GL
This is the path to the dump file of milter-greylist.
Default value: /var/lib/milter-greylist/db/greylist.db
IMAP_LOG
This is the path to the IMAP (Dovecot or UW-IMAP) log file. Monitorix uses this file to report IMAP and POP3 successful logins.
Default value: /var/log/imap
HYLAFAX_LOG
This is the path to the Hylafax log file. Monitorix uses this file to report successful FAX dispatches.
Default value: /var/spool/hylafax/etc/xferfaxlog
CUPS_LOG
This is the path to the CUPS page log file. Monitorix uses this file to report on print jobs.
Default value: /var/log/cups/page_log
FAIL2BAN_LOG
This is the path to the Fail2ban log file. Monitorix uses this file to report IP addresses banned.
Default value: /var/log/fail2ban.log
SPAMASSASSIN_LOG
This is the path to the Spamassassin log file. Monitorix uses this file to report spam-mail alerts.
Default value: /var/log/maillog
CLAMAV_LOG
This is the path to the Clamav log file. Monitorix uses this file to report virus-mail alerts.
Default value: /var/log/clamav/clamav.log
CG_LOGDIR
This is the path to the CommuniGate logs directory. Monitorix uses these files to report the number of mail messages successfully
received and sent, and to report IMAP and POP3 successful logins.
Default value: /var/CommuniGate/SystemLogs/
SQUID_LOG
This is the path to the Squid log file. Monitorix uses this file to report on Squid Proxy requests.
Default value: /var/log/squid/access.log
IMAP_DATE_LOG_FORMAT
This is the Dovecot date format as it appears in the IMAP_LOG file.
Default value: %b %d
ENABLE_ALERTS
This enables or disables the alert capabilities that were introduced in Monitorix version 1.4.0. Only two alerts are currently
implemented; one for the average CPU load and one for the root filesystem disk use. They work as follows:
The CPU load average uses the third value (the one that represents the last 15 minutes of load average), and if it reaches the
ALERT_LOADAVG_THRESHOLD value for the interval of time defined in ALERT_LOADAVG_TIMEINTVL, Monitorix will execute the external alert
script defined in ALERT_LOADAVG_SCRIPT.
For the root filesystem disk use, if the percentage of disk space used reaches the ALERT_ROOTFS_THRESHOLD value for the interval of
time defined in ALERT_ROOTFS_TIMEINTVL, Monitorix will execute the external alert script defined in ALERT_ROOTFS_SCRIPT.
The default Monitorix installation includes an example alert shell-script called monitorix-alert.sh which you can use as a base for
your own script.
Default value: N
ALERT_LOADAVG_TIMEINTVL
This is the period of time (in seconds) that the threshold needs to be exceeded before the external alert script is executed.
Default value: 3600
ALERT_LOADAVG_THRESHOLD
This is the value that needs to be reached or exceeded within the specified time period in ALERT_LOADAVG_TIMEINTVL to trigger the
mechanism for a particular action, which in this case is the execution of an external alert script.
The value of this option is compared against the last 15 minutes of CPU load average.
Default value: 5.0
ALERT_LOADAVG_SCRIPT
This is the full path name of the script that will be executed by this alert.
It will receive the following three parameters:
1st - the value currently defined in ALERT_LOADAVG_TIMEINTVL
2nd - the value currently defined in ALERT_LOADAVG_THRESHOLD
3rd - the current 15min CPU load average
Default value: /path/to/script.sh
ALERT_ROOTFS_TIMEINTVL
This is the period of time (in seconds) that the threshold needs to be exceeded before the external alert script is executed.
Default value: 3600
ALERT_ROOTFS_THRESHOLD
This is the value that needs to be reached or exceeded within the specified time period in ALERT_ROOTFS_TIMEINTVL to trigger the
mechanism for a particular action, which in this case is the execution of an external alert script.
The value of this option is compared to the current root filesystem disk usage.
Default value: 100
ALERT_ROOTFS_SCRIPT
This is the full path name of the script that will be executed by this alert.
It will receive the following three parameters:
1st - the value currently defined in ALERT_ROOTFS_TIMEINTVL
2nd - the value currently defined in ALERT_ROOTFS_THRESHOLD
3rd - the current root filesystem disk usage
Default value: /path/to/script.sh
GRAPH_ENABLE
This enables or disables the monitoring of each graph. Placing a Y on a desired graph and restarting Monitorix will automatically
create the RRD file for that graph and start gathering information according to its settings.
System load average and usage (system.rrd)
Only the limit and rigid values may be set here.
Global kernel usage (kern.rrd)
KERN_GRAPH_MODE
This changes the layout of the kernel usage graph, the possible values are R for a real graph, or S for a stacked graph (every line
or area is stacked on top of the previous element).
Default value: R
KERN_DATA
This is the list of values offered in modern Linux kernels. Older Linux kernels or other Operating Systems may not have all of them.
Placing a Y or an N will enable or disable the value in the graph.
Kernel usage per processor (proc.rrd)
PROC_MAX
This is the number of processors or cores that your system has. There is no limit, however keep in mind that every time this number
is changed Monitorix will resize the proc.rrd file accordingly, removing all historical data.
Default value: 4
PROC_PER_ROW
This is the number of processor graphs that will be put in a row. Consider the interaction of this parameter with the PROC_SIZE and
PROC_DATA options (below) in order to adjust the size and number of graphs in relation to your horizontal screen size.
Default value: 2
PROC_SIZE
This option sets the size of all processors graphs.
The possible values are:
main for 450x150 graphs
medium for 325x150 graphs
medium2 for 325x70 graphs
small for 200x66 graphs
mini for 183x66 graphs
tiny for 110x40 graphs
Default value: medium
PROC_DATA
This option will completely enable or disable the legend in the processor graphs.
Default value: Y
HP ProLiant System Health (hptemp.rrd)
HPTEMP_1
HPTEMP_2
HPTEMP_3
These arrays will hold the defined temperature sensors for each graph. You must have installed the latest version of hplog that
comes with HP ProLiant System Health Application and Command Line Utilities.
Each graph has a limited number of IDs:
HPTEMP_1 up to 8 IDs
HPTEMP_2 up to 6 IDs
HPTEMP_3 up to 6 IDs
The following is a configuration example of selected IDs:
# hplog -t
ID TYPE LOCATION STATUS CURRENT THRESHOLD
1 Basic Sensor Ambient Normal 75F/ 24C 107F/ 42C
2 Basic Sensor CPU (1) Normal 104F/ 40C 179F/ 82C
3 Basic Sensor CPU (2) Normal ---F/---C 179F/ 82C
4 Basic Sensor Memory Board Normal ---F/---C 188F/ 87C
5 Basic Sensor Memory Board Normal 82F/ 28C 188F/ 87C
6 Basic Sensor Memory Board Normal ---F/---C 188F/ 87C
7 Basic Sensor System Board Normal 89F/ 32C 192F/ 89C
8 Basic Sensor System Board Normal ---F/---C 192F/ 89C
9 Basic Sensor System Board Normal 84F/ 29C 192F/ 89C
10 Basic Sensor System Board Normal 118F/ 48C 230F/110C
11 Basic Sensor System Board Normal 96F/ 36C 192F/ 89C
12 Basic Sensor System Board Normal 84F/ 29C 154F/ 68C
13 Basic Sensor System Board Normal 87F/ 31C 154F/ 68C
14 Basic Sensor System Board Normal 89F/ 32C 156F/ 69C
15 Basic Sensor System Board Normal 93F/ 34C 161F/ 72C
16 Basic Sensor Ambient Normal ---F/---C 192F/ 89C
17 Basic Sensor System Board Normal ---F/---C 192F/ 89C
18 Basic Sensor SCSI Backplane Normal 32F/ 0C 140F/ 60C
our @HPTEMP_1 = (
"2",
"3",
);
our @HPTEMP_2 = (
"1",
"5",
"18",
);
our @HPTEMP_3 = (
"7",
"9",
"10",
"11",
"12",
"13",
);
LM-Sensors and GPU temperatures (lmsens.rrd)
SENSORS_LIST
You may specify in this associative array the sensors you want to monitor with the same names as they appear in your sensors com-
mand.
For example, imagine a sensors output like this:
# sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +51.0oC (high = +78.0oC, crit = +100.0oC)
coretemp-isa-0001
Adapter: ISA adapter
Core 1: +49.0oC (high = +78.0oC, crit = +100.0oC)
f71882fg-isa-0a00
Adapter: ISA adapter
3.3V: +3.30 V
Vcore: +1.21 V (max = +2.04 V)
Vdimm: +1.82 V
Vchip: +1.38 V
+5V: +5.00 V
12V: +14.37 V
5VSB: +4.33 V
3VSB: +3.30 V
Battery: +3.22 V
CPU: 2035 RPM
System: 1765 RPM ALARM
Power: 2110 RPM ALARM
Aux: 2080 RPM ALARM
M/B Temp: +36.00 C
CPU Temp: +29.00 C
Then you may want to configure the SENSORS_LIST associative array as:
our %SENSORS_LIST = (
"CORE0" => "Core 0",
"CORE1" => "Core 1",
"MB0" => "M/B Temp",
"CPU0" => "CPU Temp",
"FAN0" => "CPU",
"FAN1" => "System",
"FAN2" => "Power",
"FAN3" => "Aux",
"VOLT0" => "3.3V",
"VOLT1" => "VCore",
"VOLT2" => "Vdimm",
"VOLT3" => "Vchip",
"VOLT4" => "\+5V",
"VOLT5" => "12V",
"VOLT6" => "5VSB",
"VOLT7" => "3VSB",
"VOLT8" => "Battery",
"GPU0" => "nvidia",
);
Note that you need to precede the plus and minus signs in the voltage labels with double forward slashes.
The last one, GPU0, is set here just in case you have an NVIDIA card and want to monitor its temperature. Currently only NVIDIA
cards are supported so the value nvidia is mandatory.
This array has the following maximums allowed:
Up to 16 CORE keys
Up to 2 MB keys
Up to 4 CPU keys
Up to 9 FAN keys
Up to 12 VOLT keys
Up to 9 GPU keys
NVIDIA temperatures and usage (nvidia.rrd)
NVIDIA_MAX
This is the number of NVIDIA cards currently plugged in your system.
The maximum allowed is 9.
Default value: 1
Disk drive temperatures and health (disk.rrd)
This graph is able to monitor an unlimited number of disk drives.
DISK_LIST
This is a two-dimensional array of groups of disk device names that you want to monitor. Each group will become a graph and there
may be an unlimited number of groups.
WARNING: Every time the number of groups in this list changes, Monitorix will resize the disk.rrd file accordingly, removing all
historical data.
To collect the disk drive temperatures and health the commands smartmontools or hddtemp are required.
It is recommended that you first check if either smartctl or hddtemp are able to collect data from the disk drive(s) that you plan
to monitor. You may test this with the following command:
# hddtemp /dev/sda
/dev/sda: WDC WD1600AABS-00M1A0: 48oC
If you see good results as above, you can add it in the list like this:
our @DISK_LIST = (
[
"/dev/sda",
"/dev/sdb",
],
);
The maximum number of disk device names allowed per group is 8.
Filesystem usage and I/O activity (fs.rrd)
This graph is able to monitor an unlimited number of filesystems.
FS_LIST
This is a two-dimensional array of groups of mounted filesystems that you want to monitor. Each group will become a graph and there
may be an unlimited number of groups.
WARNING: Every time the number of groups in this list changes, Monitorix will resize the fs.rrd file accordingly, removing all his-
torical data.
Take special care to use the same name as appears in the output of the df command (the swap device is a special case). An example
would be:
our @FS_LIST = (
[
"/",
"swap",
"/boot",
"/home",
"/mnt/backup",
],
);
The maximum number of filesystems allowed per group is 8.
FS_DESC
This associative array complements the FS_LIST array. It basically allows you to change the name that will appear in the graph, hid-
ing the real name of the mount point. If no association is defined, then Monitorix will display the name specified in the FS_LIST
array.
our %FS_DESC = (
"/" => "Root FS",
"/home" => "My Home",
"/mnt/backup" => "Backups",
);
You can define as much entries as you want.
FS_DEV
This associative array complements the FS_LIST array. Monitorix tries itself to detect automatically the device name associated to
each filesystem defined in the FS_LIST array to show its I/O activity. If you feel Monitorix failed to detect it then you can help
it using this associative array.
our %FS_DEV = (
"/" => "/dev/sda1",
"/home" => "/dev/mapper/dm-0",
"/mnt/backup" => "/dev/mapper/dm-1",
);
You can define as much entries as you want.
Network traffic and usage (net.rrd)
NET_LIST
This is the list of network interfaces that you may want to monitor. An example would be:
our @NET_LIST = (
"eth0",
"eth1",
);
The maximum number of entries allowed is 10.
NET_DESC
This is the array where each network interface listed in NET_LIST is described. Put one description for each interface listed. An
example would be:
our @NET_DESC = (
"FastEthernet LAN",
"ADSL 10Mbs Internet",
);
The maximum number of entries allowed is 10.
NET_RIGID
This is the location where the scaling of the network graph can be specified.
The possible values are:
0 No rigid actually, no lower-limit and no upper-limit.
1 No rigid actually, but with lower-limit and upper-limit.
2 Rigid with lower-limit and upper-limit.
There must be an entry here for each network interface listed in NET_LIST. An example would be:
our @NET_RIGID = (
"0",
"2",
);
The maximum number of entries allowed is 10.
NET_LIMIT
This is where you can enter the upper value limit for the graph. Since Monitorix uses bytes/s instead of bits/s, the value entered
here must be in bytes.
Remember to put an entry here for each network interface listed in NET_LIST. Following the description of the above example, it
would be:
our @NET_LIMIT = (
"10000000",
"1000000",
);
That is:
"Fast Ethernet LAN" means 100Mb/s, which means ~10MB/s which means 10000000 bytes.
and
"ADSL 10Mb Internet" means 10Mb/s, which means ~1MB/s which means 1000000 bytes.
The maximum number of entries allowed is 10.
NET_GATEWAY
This is where the network interface that acts as the gateway for this server is defined. This is mainly used if you plan to monitor
the network traffic usage of the PCs on your LAN using the PC_LIST option below.
System services demand (serv.rrd)
SERV_MODE
This option toggles the way the System Services Demand data is represented in the graph. There are two possible values:
I for incremental style
L for load (spikes) style
Default value: I
Mail statistics (mail.rrd)
MAIL_MTA
This option specifies the MTA that Monitorix will use to collect mail statistics. The currently supported MTAs are:
Sendmail
Postfix
NOTE: the pflogsumm utility is required when using Postfix MTA.
Default value: sendmail
MAIL_GREYLIST
This option specifies the Greylisting implementation that Monitorix will use to collect statistical information. In the future more
Greylisting software will be supported.
The currently supported Greylist software is:
milter-greylist
Default value: milter-greylist
Network port traffic (port.rrd)
This graph requires the iptables command on Linux systems, and the ipfw command on FreeBSD and OpenBSD systems.
PORT_MAX
This is the number of network ports that you want to monitor. There is no limit to the number of ports monitored, but keep in mind
that every time this number changes, Monitorix will resize the port.rrd file accordingly, removing all historical data.
Default value: 9
PORT_RULE
This is the rule number that Monitorix will use when using the ipfw command to manage network port activity on FreeBSD and OpenBSD
systems. Change it if you think it might conflict with any other rule number.
Default value: 24000
PORT_LIST
You may define here up to PORT_MAX network port numbers. If you see a red color in the background of a network port graph, it means
that there is not a daemon listening on that port. This can be useful to know if some service gone down unexpectedly.
PORT_NAME
This array complements the PORT_LIST array. Each option pairs with the one in the same position of the array. It basically permits
naming network ports.
PORT_PROT
This array complements the PORT_LIST array. Each option pairs with the one in the same position of the array. It permits defining
the protocol type to be used in the traffic reporting. The protocol type must be valid and supported by your system.
Users using the system (user.rrd)
Only the limit and rigid values may be set here.
Apache statistics (apache.rrd)
This graph requires that mod_status be loaded and ExtendedStatus option set to On in order to collect full status information of the Apache
web server.
This graph is able to monitor an unlimited number of local and remote Apache web servers.
APACHE_LIST
This is a list of URLs of the monitored Apache web servers.
WARNING: Every time the number of entries in this list changes, Monitorix will resize the apache.rrd file accordingly, removing all
historical data.
Default value: http://localhost:80/
Nginx statistics (nginx.rrd)
This graph may require adding some lines in the configuration file nginx.conf. Please see the README.nginx file to determine the exact
steps needed to configure Nginx to get status information.
This graph requires the iptables command on Linux systems, and the ipfw command on FreeBSD and OpenBSD systems.
NGINX_PORT
This is the network port the Nginx web server is listening on.
Default value: 80
NGINX_RULE
This is the rule number that Monitorix will use when using the ipfw command to manage Nginx network activity on FreeBSD and OpenBSD
systems. Change it if you think it might conflict with any other rule number.
Default value: 24100
Lighttpd statistics (lighttpd.rrd)
This graph requires that mod_status is loaded in order to collect status information from the Lighttpd web server.
This graph is able to monitor an unlimited number of local and remote Lighttpd web servers.
LIGHTTPD_LIST
This is a list of URLs of the monitored Lighttpd web servers.
WARNING: Every time the number of entries of this list changes, Monitorix will resize the lighttpd.rrd file accordingly, removing
all historical data.
Default value: http://localhost:80/
MySQL statistics (mysql.rrd)
This graph requires that you create a password protected MySQL user that is NOT granted privileges on any DB.
Example:
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
where user is the new user name and password is the password that will be used for that user.
This graph is able to monitor an unlimited number of local and remote MySQL web servers.
NOTE: It is strongly recommended that you restart the MySQL service in order to avoid high spikes that could prevent correct display of the
first plotted data.
MYSQL_CONN_TYPE
This option toggles the way how Monitorix establishes the connection with the MySQL server. There are two possible values:
Host using the network (hostname and IP address)
Socket using a socket file
Default value: Host
MYSQL_HOST_LIST
This is the list of hostnames of MySQL servers.
WARNING: Every time the number of entries of this list change Monitorix will resize the mysql.rrd file accordingly, removing all
historical data.
Default value: localhost
MYSQL_PORT_LIST
This is the TCP port number to use for the connection of each hostname listed in the MYSQL_HOST_LIST.
Default value: 3306
MYSQL_USER_LIST
This is the user name used to connect to each hostname listed in the MYSQL_HOST_LIST. See the example above.
Default value: none
MYSQL_PASS_LIST
This is the password used to connect to each hostname listed in the MYSQL_HOST_LIST. See the example above.
Default value: none
MYSQL_SOCK_LIST
This is the list of socket files of MySQL servers.
WARNING: Every time the number of entries of this list change Monitorix will resize the mysql.rrd file accordingly, removing all
historical data.
Default value: /var/lib/mysql/mysql.sock
Some of the values shown in the graphs are the result of a calculation of two values from either SHOW [GLOBAL] STATUS or SHOW VARIABLES.
The following is an explanation of them:
Thread Cache Hit Rate
(1 - (Threads_created / Connections)) * 100
When an application connects to a MySQL database, the database has to create a thread to manage the connection and the queries that will be
sent in that connection. The database instructs the kernel to create a new thread, and the kernel allocates resources and creates the
thread, then returns it to the MySQL service. When the connection is terminated by the application, MySQL tells the kernel to destroy the
thread and free the resources. This create/destroy mechanism causes considerable overhead if the MySQL server has many new connections per
second.
If MySQL doesn't destroy the thread when the connection is terminated, but reuses it and assigns it to the next connection then this will
decrease the kernel overhead. This is why a high Thread Cache Hit Rate improves MySQL performance and decreases the system's CPU usage.
Setting the parameter thread_cache_size in the my.cnf file accordingly will help to correctly balance between having a great thread cache
and keeping MySQL memory consumption reasonable.
Higher is better.
Query Cache Hit Rate
Qcache_hits / Qcache_inserts
Higher should be considered better. This value should grow proportionally with the number of executed queries, if the query cache is per-
forming well. Please also have a look at the Query cache usage percentage to know if your query_cache configuration is appropriate.
Query Cache Usage
(1 - (Qcache_free_memory / query_cache_size)) * 100
This value should be reasonably far from 100%, otherwise consider incrementing the query_cache_size parameter in my.cnf.
Connections Usage
(Max_used_connections / max_connections) * 100
This value should be reasonably far from 100%, otherwise consider incrementing the max_connections parameter in my.cnf.
Key Buffer Usage
(Key_blocks_used / (Key_blocks_used + Key_blocks_unused)) * 100
This value should be reasonably far from 100%, otherwise consider incrementing the key_buffer_size parameter in my.cnf.
InnoDB Buffer Pool Usage
(1 - (Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total)) * 100
This value should be reasonably far from 100%, otherwise consider incrementing the innodb_buffer_pool_size parameter in my.cnf.
Squid Proxy Web Cache (squid.rrd)
SQUID_CMD
This command displays statistics about the Squid HTTP proxy process and is the main command used to collect all data.
Default value: squidclient -h 127.0.0.1
SQUID_GRAPH_1
SQUID_GRAPH_2
These arrays hold the selected Squid result or status codes to be shown in each graph. Feel free to mix result status and code sta-
tus in any of the two arrays.
For more information about the list of all the result and status codes, please refer to http://wiki.squid-cache.org/SquidFaq/Squid-
Logs.
Each graph has a limit number of 9 entries.
NFS server statistics (nfss.rrd)
NFSS_VERSION
This option specifies which NFS server version is running in the system in order to correctly gather the correct values.
The possible values are:
2 for NFS version 2
3 for NFS version 3
4 for NFS version 4
Default value: 3
NFSS_GRAPH_1
NFSS_GRAPH_2
NFSS_GRAPH_3
These arrays hold the defined NFS server activity statistics to be shown in each graph. Put every statistic name exactly as they
appear in the output of the nfsstat command.
Each graph has a limit number of 10 entries.
NFS client statistics (nfsc.rrd)
NFSC_VERSION
This option specifies which NFS server version is running in the system in order to correctly gather the correct values.
The possible values are:
2 for NFS version 2
3 for NFS version 3
4 for NFS version 4
Default value: 3
NFSC_GRAPH_1
NFSC_GRAPH_2
NFSC_GRAPH_3
NFSC_GRAPH_4
NFSC_GRAPH_5
These arrays hold the defined NFS client activity statistics to be shown in each graph. Put every statistic name exactly as they
appear in the output of the nfsstat command.
Each graph has the following limit number of entries:
NFSC_GRAPH_1 up to 10 entries
NFSC_GRAPH_2 up to 10 entries
NFSC_GRAPH_3 up to 4 entries
NFSC_GRAPH_4 up to 4 entries
NFSC_GRAPH_5 up to 4 entries
BIND statistics (bind.rrd)
This graph requires a BIND server with version 9.5 or higher, and in order to see all statistics provided by BIND you must configure the
statistics-channels like this:
statistics-channels {
inet 127.0.0.1 port 8053;
};
This graph is able to monitor an unlimited number of BIND servers.
BIND_URL_LIST
This is a list of URLs of BIND servers status pages.
WARNING: Every time the number of entries in this list changes, Monitorix will resize the bind.rrd file accordingly, removing all
historical data.
Default value: http://localhost:8053/
BIND_IN_QUERIES_LIST
This is a two-dimensional array of RR (Resource Records) types for each BIND server. The RR types defined here will appear in the
Incoming Queries graph which shows the number of incoming queries for each RR type.
For a complete list of RR types check the BIND 9 Administrator Reference Manual at <http://ftp.isc.org/www/bind/arm95/Bv9ARM.html>.
our @BIND_IN_QUERIES_LIST = (
[
"A",
"AAAA",
"ANY",
"DS",
"MX",
"NS",
"PTR",
"SOA",
"SRV",
"TXT",
"NAPTR",
"A6",
"CNAME",
"SPF",
"KEY",
"DNSKEY",
"HINFO",
"WKS",
"PX",
"NSAP",
],
);
The maximum number of RR types allowed for this graph is 20.
BIND_OUT_QUERIES_LIST
This is a two-dimensional array of RR (Resource Records) types for each BIND server. The RR types defined here will appear in the
Outgoing Queries graph (_default view) which shows the number of outgoing queries sent by the DNS server resolver for each RR type.
our @BIND_OUT_QUERIES_LIST = (
[
"A",
"AAAA",
"ANY",
"DS",
"MX",
"NS",
"PTR",
"SOA",
"SRV",
"TXT",
"NAPTR",
"A6",
"CNAME",
"SPF",
"KEY",
"DNSKEY",
"HINFO",
"WKS",
"PX",
"NSAP",
],
);
The maximum number of RR types allowed for this graph is 20.
BIND_SERVER_STATS_LIST
This is a two-dimensional array of counters about incoming request processing. The counters defined here will appear in the Server
Statistics graph.
our @BIND_SERVER_STATS_LIST = (
[
"Requestv4",
"Requestv6",
"ReqEdns0",
"ReqBadEDNSVer",
"ReqTSIG",
"ReqSIG0",
"ReqBadSIG",
"ReqTCP",
"Response",
"QrySuccess",
"QryAuthAns",
"QryNoauthAns",
"QryReferral",
"QryNxrrset",
"QrySERVFAIL",
"QryNXDOMAIN",
"QryRecursion",
"QryDuplicate",
"QryDropped",
"QryFailure",
],
);
The maximum number of counters allowed for this graph is 20.
BIND_RESOLVER_STATS_LIST
This is a two-dimensional array of counters about name resolution performed in the internal resolver. The counters defined here will
appear in the Resolver Statistics graph (_default view).
our @BIND_RESOLVER_STATS_LIST = (
[
"Queryv4",
"Queryv6",
"Responsev4",
"Responsev6",
"NXDOMAIN",
"SERVFAIL",
"FORMERR",
"OtherError",
"EDNS0Fail",
"Truncated",
"Lame",
"Retry",
"QueryTimeout",
"GlueFetchv4",
"GlueFetchv6",
"GlueFetchv4Fail",
"GlueFetchv6Fail",
"ValAttempt",
"ValOk",
"ValNegOk",
],
);
The maximum number of counters allowed for this graph is 20.
BIND_CACHE_RRSETS_LIST
This is a two-dimensional array of RR (Resource Records) types for each BIND server. The RR types defined here will appear in the
Cache DB RRsets graph (_default view) which shows the number of RRsets per RR type (positive or negative) and nonexistent names
stored in the cache database.
our @BIND_CACHE_RRSETS_LIST = (
[
"A",
"!A",
"AAAA",
"!AAAA",
"DLV",
"!DLV",
"DS",
"!DS",
"MX",
"NS",
"CNAME",
"!CNAME",
"SOA",
"!SOA",
"!ANY",
"PTR",
"RRSIG",
"NSEC",
"DNSKEY",
"NXDOMAIN",
],
);
The maximum number of RR types allowed for this graph is 20.
NTP statistics (ntp.rrd)
This graph is able to monitor an unlimited number of NTP servers.
NTP_HOST_LIST
This is a list of NTP servers.
WARNING: Every time the number of entries in this list changes, Monitorix will resize the ntp.rrd file accordingly, removing all
historical data.
Default value: localhost
NTP_CODE_LIST
This is a two-dimensional array of group of Reference Identifier and Kiss-o'-Death Codes for every hostname specified in the
NTP_HOST_LIST option.
For more information on these NTP codes:
<http://www.iana.org/assignments/ntp-parameters/ntp-parameters.xml>
<http://www.iana.org/go/rfc5905>
our @NTP_CODE_LIST = (
[
"AUTH",
"AUTO",
"CRYP",
"DENY",
"GPS",
"INIT",
"NKEY",
"RATE",
"RMOT",
"RSTR",
],
[
"DENY",
"RMOT",
"RSTR",
],
);
The maximum number of codes allowed for each hostname is 10.
Fail2ban statistics (fail2ban.rrd)
This graph is able to monitor an unlimited number of Fail2ban jails.
FAIL2BAN_PER_ROW
This is the number of fail2ban graphs that will be put in a row.
Default value: 2
FAIL2BAN_LIST
This is a two-dimensional array of unlimited group of jails defined in your Fail2ban configuration. For every group specified there
is the ability to specify a description in the FAIL2BAN_DESC array.
WARNING: Every time the number of entries in this list changes, Monitorix will resize the fail2ban.rrd file accordingly, removing
all historical data.
our @FAIL2BAN_LIST = (
[
"[apache]",
"[apache-mod-security]",
"[courierauth]",
"[sshd]",
"[pam-generic]",
"[php-url-fopen]",
"[vsftpd]",
],
[
"[apache-imdbphp]",
"[apache-evasive]",
],
);
The maximum number of jails allowed for each group is 9.
FAIL2BAN_DESC
This is the description of each group of jails in FAIL2BAN_LIST. Put one description for each group. An example would be:
our @FAIL2BAN_DESC = (
"Security",
"Overload / Abuse",
);
Icecast Streaming Media Server (icecast.rrd)
This graph is able to monitor an unlimited number of Icecast servers.
ICECAST_URL_LIST
This is a list of URLs of Icecast server status pages.
WARNING: Every time the number of entries in this list changes, Monitorix will resize the icecast.rrd file accordingly, removing all
historical data.
Default value: http://localhost:8000/status.xsl
ICECAST_MP_LIST
This is a two-dimensional array of mountpoints configured for every URL specified in the ICECAST_URL_LIST option.
our @ICECAST_MP_LIST = (
[
"/stream1",
"/stream2",
"/stream3",
],
[
"/stream1",
"/stream2",
],
);
The maximum number of mountpoints allowed for each URL is 9.
ICECAST_GRAPH_MODE
This changes the layout of the listeners graph, the possible values are R for a real graph, or S for a stacked graph (every line or
area is stacked on top of the previous element).
Default value: R
Devices interrupt activity (int.rrd)
Only the limit and rigid values may be set here.
Monitoring remote servers (Multihost)
The Multihost feature allows you to monitor an unlimitted number of remote servers that already have Monitorix installed.
Monitorix assumes that every remote server has been configured with the same settings in the BASE_URL and BASE_CGI options. Future versions
may introduce the ability to have different configurations between local and remote servers.
MULTIHOST
This option enables the Multihost feature.
Default value: N
MULTIHOST_FOOTER
If set to Y Monitorix will show the original URL of each server at the bottom of the graph. Where security is important you may want
to hide this information.
Default value: Y
MULTIHOST_IMGS_PER_ROW
If your horizontal screen resolution is pretty wide, you may want to increase the number of graphs that appear on each row.
Default value: 2
REMOTEHOST_LIST
This is a list of remote servers, with Monitorix already installed and working, that you plan to monitor from here. It consists of a
series of name/value pairs with the right side being the URL or IP address and the left the server description.
An example of this list would be:
our @REMOTEHOST_LIST = (
"WWW Linux", "http://www.example.com",
"Backup Linux", "http://192.168.1.4",
"SMTP Linux", "http://71.16.11.2:8080",
);
As you can see all three entries use URLs to designate the location of each remote server. This means that each server most also
have been installed on a CGI capable web server like Apache.
GROUPS
This enables the server grouping for those environments where there are too much servers to display at the same time. Hence, you can
group them in order to show them separatedly.
Default value: N
REMOTEGROUP_LIST
This is a list of groups of remote servers, with Monitorix already installed and working, that you plan to monitor from here. It
consists of a series of name/value pairs with the right side being the names of the remote servers given in REMOTEHOST_LIST (sepa-
rated by a colon) and in the left the group name.
An example of this list would be:
our @REMOTEGROUP_LIST = (
"My Group", "Backup Linux:SMTP Linux",
);
Monitoring the Internet traffic of LAN PCs, devices or whole networks
If your server acts as the gateway for a group of PCs, devices or even whole networks in your local LAN, you may want to know much Internet
traffic each one is generating.
This graph requires the iptables command on Linux systems, and the ipfw command on FreeBSD and OpenBSD systems.
The following are the options you will need to configure to accomplish all of this.
PC_LAN
This option enables this feature.
Default value: N
PC_MAX
This is the number of LAN devices you want to monitor. There is no limit, but keep in mind that every time this number changes, Mon-
itorix will resize its current pc.rrd file, removing all historical data.
Default value: 10
PC_IMGS_PER_ROW
If your horizontal screen resolution is pretty wide, you may want to increase the number of graphs that appear on each row.
Default value: 2
PC_LIST
This is the list of names of PCs, LAN devices or whole networks that you want to monitor. The only requirement is that all they must
utilize this server as their gateway.
If the names in this list are able to be resolved by a DNS query then you don't need to define the PC_IP list (below) with corre-
sponding IP addresses.
An example would be:
our @PC_LIST = (
"pc8",
"printer",
"scanner",
"lan3",
);
PC_IP
This is the list of IP addresses and network masks corresponding to the entries defined in the PC_LIST. This list is only used when
the those entries are not resolvable through a DNS query.
An example would be:
our @PC_IP = (
"192.168.1.108/32",
"192.168.1.122/32",
"192.168.1.203/32",
"192.168.2.0/24",
);
PC_ENABLE_MONTHLY_REPORTS
If this option is set to Y, Monitorix will send a report of all the monthly Internet activity of the defined devices in PC_LIST to
the specified email address on the first day of each month.
Default value: N
PC_REPORT_LANG
Define here the language used in the monthly report.
The possible values are: ca, de, en, it and pl.
Default value: en
PC_DEFAULT_MAIL
This is the default email address used to send the monthly reports. This option is only used if the PC_REPORT_MAIL array is empty.
Default value: root@localhost
PC_REPORT_MAIL
This is the list of email addresses (one per entry) that corresponds to each name listed in the PC_LIST array. If this list is empty
then the PC_DEFAULT_MAIL option will be used as the default email address for all the PCs.
An example would be:
our @PC_MAIL = (
"user1@example.com",
"user2@example.com",
"user3@example.com",
"admin@example.com",
);
AUTHOR
Monitorix is written by Jordi Sanfeliu <jordi@fibranet.cat>
COPYRIGHT
Copyright (C) 2005-2012 Jordi Sanfeliu
Licensed under the GNU General Public License v2 (GPL).
SEE ALSO
monitorix(8), rrdtool(1)
2.6.0 Sep 2012 monitorix.conf(5)