uploaded latest version

This commit is contained in:
Jordi Sanfeliu 2012-10-22 16:26:37 +02:00
parent 8f4849e104
commit e0f9883cba
29 changed files with 25991 additions and 0 deletions

339
COPYING Normal file
View File

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

896
Changes Normal file
View File

@ -0,0 +1,896 @@
2.6.1 - NN-XXX-2012
====================
- Introduced some modifications to the device name detection for FreeBSD.
(thanks to Chris Rees, utisoft AT gmail.com)
2.6.0 - 19-Sep-2012
====================
- Added a complete statistical BIND graph.
- Added support for NetBSD systems.
- Added support for grouping remote servers in the Multihost view.
(thanks to Hartmut Wöhrle, hartmut AT hartmut-woehrle.ch)
- The Disk and Filesystems Usage and I/O Activity graphs have been completely
rewriten.
(suggested by Konstantinos Skarlatos, k.skarlatos AT gmail.com)
- Added support to monitor unlimited number of disk drives.
- Added support to monitor unlimited number of filesystems.
- Reorganized the legend in the Disk drive temperatures and health graph.
- Changed the shebang to be more portable among different systems.
- Completely rewritten the Debian/Ubuntu init script.
(suggested by Andreas Itzchak Rehberg, izzy AT qumran.org)
- Minor changes in the header of the Debian/Ubuntu init script.
(thanks to Uwe Heidrich, uweheidrich AT hotmail.com)
- Expanded to 15 characters the description in network ports.
- Changed to lines a bit thicker some graphs with few values.
- Added a new feature to enable/disable the use of javascript:void function when
clicking on a zoomable graph.
(thanks to Florian E.J. Fruth, fejf AT gmx.de)
- Fixed a bug that mixed the collected values when monitoring multiple MySQL
servers.
(thanks to Piotr Smalira, p.smalira AT g16-lublin.eu)
- Fixed a bad percentage calculation in the dentries and inodes values.
- Removed useless code when collecting Squid stats.
- Fixed a typo in a MySQL graph.
2.5.2 - 21-May-2012
====================
- Modified iptables/ipfw accounting rules handling and fixed some bugs.
- Added to backup .rrd files every time it changes their internal structure.
(suggested by Michael Mansour, mmansour AT ostech.com.au)
- Fixed a bug that prevented the creation of the 'mysql.rrd' file. The error
message was "ERROR: while creating /var/lib/monitorix/mysql.rrd: you must
define at least one Data Source".
(thanks to Darryl Yeoh Gim Hong, drl AT bsd.my for pointing this out)
- Fixed to avoid modifying read-only values in chomp() function.
(thanks to Julio Cifuentes, jcifuentes AT mail.com for pointing this out)
2.5.1 - 23-Apr-2012
====================
- Modified the regexp in 'mgr:ipcache' listing to support newer Squid versions.
- Changed some information and debug messages to be more verbose and clear.
- Force termination with exit(0) when receiving a SIGINT.
- Added support to use the socket file for the connection to the MySQL server.
(suggested by Darryl Yeoh Gim Hong, drl AT bsd.my)
- Added the new option IMAP_DATE_LOG_FORMAT to match with the Dovecot date log
format.
- Refreshed the COPYING file to reflect the current contents of the GPLv2 at
http://www.gnu.org/licenses/gpl-2.0.txt.
- Complete English correction in the monitorix.conf(5) man page.
(thanks to Paul Rupp, paulrupp AT acorp.net)
- Fixed a bug that prevented monitoring multiple MySQL servers.
(thanks to Piotr Smalira, p.smalira AT g16-lublin.eu)
- Fixed the vertical label of network traffic in Mail graph to honour the
NETSTATS_IN_BPS option.
(thanks to Piotr Smalira, p.smalira AT g16-lublin.eu)
- Fixed a bug that prevented collecting IMAP data from wu-imap server.
- Fixed padding on big values in the Nginx stats.
2.5.0 - 21-Mar-2012
====================
- Added a complete statistical Fail2ban graph.
(suggested by Andreas Itzchak Rehberg, izzy AT qumran.org)
- Added a complete statistical Lighttpd graph.
- Added full support for the Postfix MTA in the Mail statistics graph.
- Extended the number of information in the Mail statistics graph.
- Added support to monitor unlimited number of local or remote Apache servers.
- Added support to monitor unlimited number of local or remote MySQL servers.
- Added support for Dovecot 2.0 log format.
- Optimized a lot of code including more regular expressions.
- Replaced hardcoded graph titles with the strings in the configuration file.
- Modified the RedHat init script to let Monitorix create itself the pidfile.
This should improve the support on modern Linux systems using 'systemd'.
(thanks to a IRC user called 'dashbad' for pointing this out)
- Improved the init script to be more LSB-compliant.
- Changed to the '-A' parameter in 'smartctl' to avoid waking up disks when
collecting their temperatures and health values.
(thanks to Michael Perry, mike AT serensilver.co.uk)
- Fixed some titles in the list box of the main page.
- Fixed color overriding in the IMAP and POP3 services graph.
- Fixed the title in some graphs.
- Fixed a typo in the debug array name that prevented individual debug working
properly.
- Fixed a typo in the configuration file.
(thanks to a IRC user called 'gangsterlicious' for pointing this out)
- Fixed a bug in the Squid graph that prevented of being counted the Aborted
clients.
- Fixed numbering in some graphs.
2.4.1 - 09-Jan-2012
====================
- Added support for Dovecot 1.2 log format.
- Added Polish language support in the monthly traffic report.
(thanks to Piotr Smalira, p.smalira AT g16-lublin.eu)
- Added 'hour' timeframe in 'monitorix.cgi' to accept unsupported queries not
comming from the main page.
- Added support for fail2ban bans in the System Services Demand graph.
(thanks to Andreas Itzchak Rehberg, izzy AT qumran.org)
- Added support for CommuniGate mail server logs in the System Services Demand
graph.
(thanks to Andreas Itzchak Rehberg, izzy AT qumran.org)
- Added the ability to show more debug information introducing extra values to
the -d parameter. The monitorix(8) manpage has been updated to reflect these
changes.
(suggested by Andreas Itzchak Rehberg, izzy AT qumran.org)
- Added the sensor real names in the Voltages graph.
(suggested by Andreas Itzchak Rehberg, izzy AT qumran.org)
- Removed duplicated newline character in logger() calls.
- Added disabling automatic page reloading when $REFRESH_RATE is 0.
(thanks to Andreas Itzchak Rehberg, izzy AT qumran.org)
- Added a new option in configuration file to change the favicon image.
(thanks to Andreas Itzchak Rehberg, izzy AT qumran.org)
- Added support for SpamAssassin and Clamav logs to catch email-spam and
email-virus.
(thanks to Andreas Itzchak Rehberg, izzy AT qumran.org)
- Grouped all the mail related services to the small graphs in the System
Services Demand graph. This only implied changing the IMAP position.
(suggested by Andreas Itzchak Rehberg, izzy AT qumran.org)
- Fixed the main interrupt graph in order to avoid running out of colors on
systems with lot of interrupts.
- Fixed to honour the limit of 15 characters of the mountpoint names in the
Icecast graph.
- Fixed the column layout of the text mode in the LM-Sensors graph.
- Fixed to set standard locale LC_TYPE,"C".
2.4.0 - 28-Nov-2011
====================
- Added a complete statistical Squid Proxy Web Cache graph.
(suggested by Michael Mansour, mmansour AT ostech.com.au)
- Added a complete statistical NTP multigraph.
- Added a complete statistical Icecast Streaming Media Server multigraph.
(suggested by Kamil Weiser, crx AT lordcyber.net)
- Error messages now use the internal logger() function so all these messages
will have the date and time prefixed.
- Added support for network port monitoring on FreeBSD and OpenBSD systems.
- Added support for Nginx network traffic monitoring on FreeBSD and OpenBSD
systems.
- Added the number of instances (1) in the specified time key (day, week, month
or year). This also introduces some changes in the name of the .png files and
will break backwards compatibility with old (2.3-) Monitorix with Multihost
feature enabled.
- Removed some inadequate calls to 'die' taking proper actions on each case.
- Introduced small optimizations.
- Removed the '--lower-limit=0' in the Voltages graph that prevented seeing
negatives values.
- Fixed some typos in the variable name $PNG_DIR in 'monitorix.cgi'.
- Fixed to avoid a 'divide by zero' message on certain NVIDIA driver version.
2.3.0 - 05-Sep-2011
====================
- Added a complete statistical NFS (v2, v3 and v4) server graph.
- Added a complete statistical NFS (v2, v3 and v4) client graph.
- Improved support for newer NVIDIA drivers and fixed some bugs.
- Added the 'condrestart' option in the RedHat init script.
(suggested by Yury V. Zaytsev, yury AT shurup.com)
- Added a new option in the configuration file to toggle all network values
between bits and bytes per second.
- Some cosmetic changes.
- Fixed to sanitize a trailing space in the '/proc/stat' file that prevented to
show values in the disk I/O graphs on certain systems with Linux kernel 2.4.
(thanks to Dimitri Yioulos, dyioulos AT firstbhph.com)
- Fixed the Connections_usage value in the MySQL graph avoiding to be greater
than 100%.
- Fixed to avoid showing the device interrupts called 'Dynamic-irq'.
(thanks to Michael Mansour, mmansour AT ostech.com.au)
- Fixed to avoid showing the additional parameter in disk drives.
(thanks to Michael Mansour, mmansour AT ostech.com.au)
- Fixed to add more colors in order to support more interrupt devices.
(thanks to Dan Criel, dancriel AT gmail.com)
- Fixed a bad calculation of network traffic in 'text' interface of Ports graph.
- Fixed an extra 'optgroup' close tag in 'index.html' for each graph disabled.
2.2.0 - 21-Jun-2011
====================
- Added support for OpenBSD systems.
(thanks to Devio.us team)
- Added a complete statistical MySQL graph.
(thanks to Luca Ferrario, luca AT ferrario.net)
- (missed in previous version) Prefixed with full path the 'sysctl' command to
retrieve the boot time. This is specially needed when using the lighttpd web
server on FreeBSD systems.
(thanks to Chris Rees, utisoft AT gmail.com)
- Added the Fork rate (new processes started per second) in the Context Switches
graph. It includes two new values: the number of forks and vforks, being the
later only for FreeBSD and OpenBSD systems.
- Added support for the new NVIDIA driver 270.41.03.
- Added support for the names 'BusyServers' and 'IdleServers' given by Apache
when ExtendedStatus is disabled.
- Added support to show the interrupt names on Xen guest systems.
- Added to force a standard locale to avoid problems with decimal point/comma.
(thanks to Vadim Beljaev, anon333 AT mail.com)
- Workarounded the well-known problem with SIG{CHLD} and system() function that
returns -1 on *BSD systems.
- Included a Debian init script.
(thanks to Jörg Alpers, JAlpers AT gmx.net)
- Fixed the LINE2 of VFS graph and the swap device in FS graph.
- Fixed a bug when counting total of users on systems with large number of users
logged in.
- Fixed a bug in 'monitorix.spec' that prevented a correct installation on
systems with no 'apache' user defined, and added cosmetic changes.
- Fixed to show only the graphs of the PC LAN defined in @PC_LIST even when
$PC_MAX is greater.
- Fixed a bug that could remove some Network Port 'iptables' rules under
certain circumstances.
- Fixed a bug that prevented to put in the email of monthly reports the listing
with the daily usage of all the hosts.
- Fixed a missing import of the 'File::Basename' module.
- Fixed some typos in the man pages and aligned texts in some graphs.
2.1.2 - 04-May-2011
====================
- Added a new command line parameter to save the PID into the specified file
in order to make life easier to 'rc' scripts.
(thanks to Chris Rees, utisoft AT gmail.com)
- Prefixed with full path the 'sysctl' command to retrieve the boot time. This
is specially needed when using the lighttpd web server on FreeBSD systems.
(thanks to Chris Rees, utisoft AT gmail.com)
- Added to change to the / directory before parsing the command line parameters,
and after that, a change to a safety directory, either /tmp or /lost+found.
- Improved the code that detects the physical device name where the / filesystem
resides.
- Changed the way how are handled the command line options.
- Removed the 'Tahoma' font name from all 'font face' HTML tags.
- Hidden the unused values in the 'LM-Sensors and GPU temperatures' graphs.
- Fixed to remove correctly the 'iptables' rules when some defined port has been
removed from the configuration file.
- Fixed to show only the graphs of the ports defined in @PORT_LIST even when
$PORT_MAX is greater.
- Fixed a missing variable initialization that generated an 'illegal division by
zero' message if the filesystem defined does not existed, and the system
didn't had a valid swap device.
(thanks to Mowd, mowd8574 AT gmail.com)
- Fixed to show the PID number even when started as a foreground process.
- Fixed the padding of the Voltages values.
- Fixed a bug that prevented to gather correctly the disk I/O values of the /
filesystem on Linux systems with kernel 2.4.
2.1.1 - 12-Apr-2011
====================
- Reflect the SIGHUP reception with a message also in the new reopened log file.
- Added support for the new 'Idrop' column in the output of 'netstat' command
appeared in FreeBSD 8.0 and newer versions.
(thanks to Sean, strumming AT thestrings.com)
- Fixed an illegal division by zero message if the swap device is not used at
all, which caused to not collect any data and, at the same time, prevented to
see any results in the Filesystems usage and I/O activity graphs.
(thanks to Daniel Constantinov, daniel AT k9tecnologia.com.br)
- Fixed to not show a broken graph if there is no data defined in any of the
three possible arrays of the HP Temperatures graphs.
- Fixed to rename the files in the $USAGE_DIR directory once they are already
sent in the monthly reports.
- Fixed to create correctly the iptables rules for PC LAN traffic accounting.
(thanks to Daniel Constantinov, daniel AT k9tecnologia.com.br)
2.1.0 - 09-Mar-2011
====================
- Completed the monthly traffic reports for PCs.
- Added a better signal handling.
- Added the SIGHUP signal handler in order to close and open a new log file.
- Modified the monitorix(8) manpage to reflect that new feature.
- Darkened the grey color of the CUPS usage in the Network Services graphs.
- Fixed annoying messages in log file when PC_MAX is actually greater than the
number of entries in PC_LIST or PC_IP:
*** DNS problem with:
*** pc_update(): Usage: Socket::inet_ntoa(ip_address_sv) at /usr/bin/monitorix line 3548.
- Fixed to show only the entries defined in PC_LIST even when PC_MAX has a
greater value.
- Fixed to correctly handle the SIGCHLD signal to prevent an accumulation of
defunct or "zombie" processes in old Perl versions.
- Fixed a regexp in 'fs.rrd' that prevented monitoring non-local filesystems.
- Fixed a typo in monitorix(8) man page when referencing the monitorix.conf(5)
man page.
- Fixed in 'monitorix.cgi' to accept the 'silent' option in PCs graphs.
- Fixed to LINE2 type the lines plotted in the Greylisting zoomed graph.
2.0.0 - 01-Feb-2011
====================
This new version is a complete rewrite, including new features and graphs,
cleaned up all the code, updated and enhanced a number of aspects in some
graphs, and fixed a lot of bugs. The most important change is that it no longer
requires 'crond' to work, instead Monitorix is now a complete standalone Perl
daemon being started and stopped like any other system service.
Please read the 'News' and 'Features' sections in the Monitorix web site to
give you an idea of all the changes and new features that include.
I want to give a huge thanks to the people that has contributed testing and
reporting bugs during its beta phase.
1.5.2 - 18-Nov-2010
====================
- Added an new alert based on the usage of the root filesystem. It follows
the same logic than the CPU alert, so the alert script is practically the
same.
(thanks to Ramchander, ramchan10 AT gmail.com)
- Modified the man page of the configuration file to reflect the new alert
capability.
- Added a protection mechanism when collecting the filesystem disk usage. It
prevents possible timeout scenarios on those filesystems mounted using NFS.
(thanks to Ramchander, ramchan10 AT gmail.com)
- Fixed to remove the netmask suffix when collecting the network traffic if
the IP belongs to a hostname instead of a network.
(anonymous contribution)
1.5.1 - 23-Jun-2010
====================
- Changed the default $ENABLE_MAIL option to 'N'.
- Added a second decimal in the Mail statistics graph in order to have more
accurated values.
- Added a missing "--lower-limit=0" to all graphs (except MTA stats).
- Changed the default value of rigid (RIGID = 2) to 0 in all network port graphs.
- Included a number of necessary adjustments in the install.sh script to adapt
it better to the FreeBSD installation process.
(thanks to Michael Brune, admin AT mjbrune.org)
- Added the description of the @NET_RIGID and @NET_LIMIT arrays in the man page
monitorix.conf(5).
- Fixed some bugs and a bad code design in the Interrupts graph that prevented
showing correctly the graph on systems with some interrupts numbers greater
than 256.
(thanks to Dimitri Yioulos, dyioulos AT firstbhph.com)
- Fixed the Memory graph to display correctly the value in MB. This bug affected
only the FreeBSD systems.
- Fixed to be able to enable only the LAN devices monitoring without having to have
enabled the network ports monitoring.
(thanks to Niklas Janzon, niklas.janzon AT gmail.com)
- Fixed the iptables rules section in order to avoid its execution on FreeBSD
systems.
- Fixed a bug in the init script that prevented executing it during the system
shutdown on RedHat/Fedora/CentOS systems. The path of the lock file has
changed from /var/lock/ to /var/lock/subsys.
1.5.0 - 06-Apr-2010
====================
- Added a new graph to show complete MTA (Sendmail) statistics.
- Added support for those lines in the 'sensors' command output that include
a newline character and have the result in the next line.
(thanks to Balazs Denes, dnsdns AT gmail.com)
- Reused a lot of temporal variables in the CGI file.
- Fixed to not show error messages on certain virtual servers if the file
'/proc/diskstats' does not exist.
(thanks to an anonymous IRC user called 'gangsterlicious')
- Fixed the rigid control in the 3rd graph of the Nginx statistics.
- Fixed the colors scheme in the main page when using the 'white' theme.
1.4.2 - 10-Feb-2010
====================
- Removed the width=1 from the top table in the graphs page.
- Changed to grey the color of all links.
- Added automatic detection of total amount of memory in the system.
- Modified the install.sh script in order to remove the already supported
distribution Gentoo and to include some warnings saying that the script is
not the recommended method of installing Monitorix.
- Added a new $OSTYPE key called "Linux-Arch" to include support for Arch Linux
distribution.
(thanks to graysky, da_audiophile AT yahoo.com)
- Fixed the URL of the images if is being called through a secure web server.
(thanks to an anonymous IRC user called 'dobermai')
- Fixed those no named interrupts that generated the annoying message
"substr outside of string at /var/www/cgi-bin/monitorix.cgi line 4775,
<INTERRUPTS> line n." in the Apache error log.
(thanks to Mac, redleader25 AT hotmail.com)
1.4.1 - 04-Jan-2010
====================
- Updated the monitorix.spec and monitorix.conf files for SuSE Linux packages.
(thanks to Oliver Kaltenecker, oliver.kaltenecker AT wittwer.de)
- Modified the wide of the mount point column in the disk usage graph in order
to fit longer pathnames.
- Substituted the pair of bottom logos (black and white) for a new one with
background transparency.
- Changed the initial logo image by a new one with background transparency and
removed the slogan which reduced its size.
- Removed the configuration option $IDATE.
- Removed the envelope image as with the new mailing list it doesn't make sense
to be there anymore.
- Fixed to honour the color theme even in the main page and simplified its
layout.
- Fixed some annoying error messages in the web server logs about the use of
an uninitialized value in 4781 line.
(thanks to Edgar Barranco, ebarranco AT gmail.com)
- Fixed a bug in how are collected the hardware temperatures in HP ProLiant
ML310 and ML350 models.
(thanks to Rene Kapeller, rene.kapeller AT psi.ch)
- Fixed an overflow in the CPU array in systems with more than 8 processors,
that prevented seeing the rest of graphs.
(thanks to Robin Friedrich, Robin.Friedrich AT itt.com)
1.4.0 - 05-Oct-2009
====================
- Optimized the iptables command used to collect Chain statistics.
- Added the ability to show the results in plain text instead of using rendered
graphs. This will make life easier either for people with vision impairments
and for automatic processing of the information.
(thanks to Christoph Doeren, cd AT yuyumo.de)
- Added an alert system based on the last 15 minutes of the CPU load average.
(suggested by Dimitri Yioulos, dyioulos AT firstbhph.com)
- Fixed a bug in monitorix.cgi that messed up the way how are displayed the
individual processors' graphs.
1.3.2 - 01-Sep-2009
====================
- Improved a lot the support for FreeBSD systems.
(thanks to Pavlin Vatev, anex AT smrad.net)
- Added support for Enterprise Volume Management System (EVMS) to show the
I/O disk activity of the root filesystem.
(thanks to Markus Rennings, mren AT mrmx.de)
- Added a new option in monitorix.conf called %MAIL_LOG with the paths for the
mail log file of each Operating System. This removes the old path hard coded.
- Changed the "use" line of the LWP::UserAgent module, now is only loaded if
Nginx statistics are enabled. This creates less dependences for all people
that don't need the Nginx statistics.
- Optimized the accounting process of SSH connections using the same code for
Linux and for FreeBSD. Linux SSH connections using public keys are also
counted now.
(thanks to Markus Rennings, mren AT mrmx.de)
- Rewritten the Monitorix init script for Gentoo Linux.
(thanks to Markus Rennings, mren AT mrmx.de)
- Added a zero pading in the name of the proc.png files.
- Fixed to show 0% of usage if a filesystem defined in MNT_LIST has been
umounted, instead of returning the same disk usage of its parent filesystem.
- Fixed the %HTTP_LOG path in the monitorix.conf file for Linux-Gentoo.
(thanks to Markus Rennings, mren AT mrmx.de)
- Fixed the missing monitorixico.png file in the install script.
(thanks to Markus Rennings, mren AT mrmx.de)
- Fixed to not create the network ports counters if $ENABLE_PORT is "N".
1.3.1 - 05-Jul-2009
====================
- Fixed a location problem for the logo files on a fresh installation using the
Linux-Debian option.
- Fixed a critical permission problem during a fresh installation (using the
Linux-Debian option) that prevented seeing all the graphs.
(thanks to Rubla Georgian, deletet.file AT yahoo.com)
- Fixed some annoying error messages in the web server log when the $PORTnn and
$PORTnn_NAME aren't correctly defined in /etc/monitorix.conf.
(thanks to Luca Ferrario, luca AT ferrario.net)
- Removed the un_install.sh script.
1.3.0 - 14-Jul-2009
====================
- Added the monitorix.conf(5) man page to be the main place to get help.
- Added support for the Nginx web server statistics.
(thanks to Aleksandr Miroshnychenko, al.miroshnychenko AT gmail.com)
- Removed the unused $EMAIL option. The $PC_DEFMAIL option is the one used when
sending the monthly reports.
- Removed the $PC_MAX option as its value is now hard coded.
- Reorganized a bit the monitorix.conf file and cleared the syntax.
- Improved the install.sh script with the 'install' command instead of using
'mkdir', 'cp' and friends.
- Fixed some missing HTML closing tags.
- Fixed to match the default value of $ENABLE_LMTEMP in monitorix.pl.
- Fixed a bad counting of the number of current Samba shares when there wasn't
any share on the list.
(thanks to Luca Ferrario, luca AT ferrario.net)
1.2.4 - 06-Apr-2009
====================
- Isolated a Linux dependant code that prevented running Monitorix correctly
on FreeBSD systems.
- Included support to recognize correctly the temperatures and RPM values when
in some weird cases, the FAN and CPU labels (in the lm_sensors output) share
the same name.
(thanks to Luca Ferrario, luca AT ferrario.net)
- Fixed a duplication in the Monitorix iptables rules during a restart.
- Added support for systems with device interrupt numbers greater than 255.
- Added support for openSuSE/SLES Linux distribution.
(thanks to Alessandro Soraruf, soraruf AT ntd.homelinux.org)
1.2.3 - 14-Jan-2009
====================
- Fixed the way how Monitorix creates the iptables rules. Now it uses the
parameter -I instead the -A in order to insert those rules in the top of
each chain so the data get recorded.
(thanks to Andrei Ioachim, andrei AT inteligis.com)
- Added support for the Postfix MTA in the SMTP counter of the Network Services
Demand graph.
(thanks to Andrei Ioachim, andrei AT inteligis.com)
- Fixed a typo in the declaration of $HTDOCS in the install.sh that only
affected to Gentoo installations.
(thanks to Carlos Perez, cpa.admin AT gmail.com)
- Removed the dependence of the 'lockfile' command in the init-script.
(suggested by Carlos Perez, cpa.admin AT gmail.com)
- Fixed to detect and show better the interrupt names.
- Added a minimal support for interrupt numbers bigger than 255. This minimal
support will let you see the names of those interrupts that have those big
numbers but their activity will rest still void.
(thanks to Brian Lopeman, brian.lopeman AT ctrh.org)
- Fixed a missing '127.0.0.1' in the URL of the graph images when
'monitorix.cgi' is called from the command line.
(thanks to David Tiberio, dave AT cheapbooks.com)
1.2.2 - 20-Nov-2008
====================
- Fixed a missing '/' when removing /var/www/monitorix in the un_install.sh
script.
(thanks to Tamas Marki, tamas AT gnsdm.com)
- Fixed to really accept more than three network devices. There were some parts
that were not correctly upgraded to five.
(thanks to Milos Prudek, prudek AT bvx.cz)
- Added the parameter -w during the hddtemp call just to make sure that it will
awaken the disk (if needed).
- Removed the .sh extension and the she-bang in the crond script for all Linux
distributions, although only in the Debian based ones people experienced
problems.
- Added a new configuration option to disable the crond mail related to
Monitorix errors.
(suggested by Detlef Neubauer, detlef.neubauer AT wzrz.de)
- Fixed to include the "Linux-Generic" as a supported OSTYPE.
- Fixed to include the monthly report files for the Italian language in the RPM
package.
- Removed the htmlentity of the ampersand character introduced in the previous
version, as the last RRDtool version seems not complaining anymore.
- Improved the way how the root filesystem device is detected including support
for the partitions with two digits like /dev/sda10.
(suggested by Dimitri Yioulos, dyioulos AT firstbhph.com)
1.2.1 - 01-Oct-2008
====================
- Added support for the new RRDtool 1.3 version.
- Fixed the alignment of the MB & CPU temperatures graph legend.
- Forced the font type to 'Mono' for the RRDtool 1.3 version.
- Fixed one identifier to count better the total messages sent/received in
/var/log/maillog.
- Added support for some virtualized systems where the rootfs device name does
not appears in /proc/diskstats and the only way to collect the i/o values is
using the partition device name.
(thanks to Travis Wu, twu AT capitalsystems.com)
- Added support for Linux software RAID devices of the form /dev/md/*.
(thanks to an anonymous IRC user called 'emilio')
- Added Italian language support in the monthly traffic report.
(thanks to Luca Ferrario, luca AT ferrario.net)
- Fixed the ampersand character to be an entity to avoid complaining messages
of Pango in the RRDtool 1.3 version.
- Included the "Linux-Generic" OSTYPE key that for a strange reason it was
missing.
- Fixed in the cover web page to only include the graphs that the system can
really offer. That will avoid to see more ethernets graphs than the number
of real ethernet devices and the same for the number of processors.
1.2.0 - 02-Apr-2008
====================
- Added support for systems based on LVM structure on top of a CCISS RAID of
disk drives.
(thanks to Bob McClure, Jr., bob AT bobcatos.com)
- Removed the full path of the 'pvs' command as it complicates the portability
of Monitorix to other Linux distributions.
(thanks to Eric, teknologist AT gmail.com)
- Added the "no warnings" pragma to temporarily block warnings while calling
the 'sensors' command.
- Fixed a bug introduced in the last version that prevented to see the interrupt
names on systems with 2.4 Linux kernels.
- Fixed the graph of disk temperatures in order to preserve the page layout
when there's no defined any disk device in the HDDTEMP_LIST array.
(thanks to Eric, teknologist AT gmail.com)
- Fixed to tolerate if @HDDTEMP_LIST was badly defined with just a void entry
instead of no entries at all. That's if someone defined incorrectly the array
as @HDDTEMP_LIST = ""; instead of simply as @HDDTEMP_LIST;
(thanks to Eric, teknologist AT gmail.com)
- Removed the error messages when it has been defined in /etc/monitorix.conf a
network interface that it doesn't exist in the system.
- Fixed the error message "Use of uninitialized value in string eq at
/var/www/cgi-bin/monitorix.cgi line 454." that appeared in the Apache error
logs when using Multihost feature.
1.1.2 - 25-Feb-2008
====================
- Added the execution of the "pvs -a" command each time Monitorix is restarted,
just to make sure to remove a strange message about "Medium not found"
appeared on fresh CentOS 5 installations using LVM.
- Converted automatically into a link the URL that appears in the bottom of
each graph (if enabled by $MULTIHOST_FOOTER) in the Multihost mode.
- Fixed to put the zero character instead of NULL when there's no value, in the
monthly file of traffic during the daily collecting of counters.
- Fixed a bug in the interrupt names that removed its first character affecting
only (mostly old) machines with "local-APIC-edge" support.
1.1.1 - 16-Nov-2007
====================
- Fixed a stupid bug that prevented showing the graphs of network ports.
1.1.0 - 15-Nov-2007
====================
- Added support for Gentoo Linux distribution.
(thanks to Matej Povazaj, ybdaba AT gmail.com)
- Added support for Slackware Linux distribution.
(thanks to Bogdan Radulescu, from http://nimblex.net>
- Changed the way how is the data collected in the Kernel Usage graph. From now
on, this graph will show its data in a more accurated way than before. People
can continue using the Real and Stacked modes though.
(thanks to Christian Meusel, christian.meusel AT inf.tu-dresden.de)
- Definitely fixed (I really hope so) a persistent bug during the numeric
extraction of the alpha numeric string of the lm_sensors temperatures.
- Fixed support for HP ML310 ProLiant server in the motherboard temperatures
graph.
- Changed the main page form method from POST to GET in order to be able to
remove the old /cgi-bin/monitorix.cgi and call localhost.cgi directly.
So now on, the localhost.cgi is renamed as monitorix.cgi and it's placed in
the same place where it was the old one, removing the /cgi-bin/monitorix
directory as it will not longer be used.
- Fixed to show the graph when using multihost feature and select only the
Context Switches graph.
- Improved how are showed the images when using multihost feature selecting
only individual hosts. Now they are bigger.
1.0.1 - 03-Oct-2007
====================
- Fixed some annoying messages like "Argument "+46M-BM-0C" isn't numeric in int
at /usr/bin/monitorix.pl line > 2710, <SENSORS> line 13.". Now it extracts
correctly numbers from an alpha numeric string.
(thanks to Russell Morris, rmorris AT rkmorris.us)
- Changed from area-based to line-based the HP IPL temperature graphs in order
to follow the same aspect than the new LM-Sensors graph.
- Added a permanent "lower-limit=0" in the following graphs: Context Switches,
LM-Sensors, Network Packet Traffic and Network Error Traffic.
- Fixed the alignment of the legend in the FAN speeds graph on systems still
using the old RRDtool branch version 1.0.
1.0.0 - 04-Sep-2007
====================
- Added a new graph to see the temperatures of the system motherboard, CPUs,
fan speeds and hard disk drives using lm_sensors and the hddtemp tool. Such
graph is disabled by default since there are still a lot of motherboards with
unsupported sensors out there. This new graph can be combined with the HP
specific temperatures graph.
- Fixed some adjustments in the temperatures collector in newer HP ProLiant
servers with newer IML.
- Added the ability to select the percentages layout in the Kernel Usage
statistics. The possible options are (R)eal or (S)tacked.
(suggested by Andrzej Pokrywko, Andrzej.Pokrywko AT onet.pl)
- Fixed a bug that prevented to display correctly the interrupt names on newer
systems that use PCI-MSI instead of IO-APIC.
- Added the ability to change the refresh rate value in the statistics web
page. The default value remains unchanged to 150 seconds.
- Added some adjustments in the Monitorix init script.
- Extended the environment variable PATH to cover more root directories.
- Changed the default NET_RIGID from 2 to 0.
- Changed the default network configuration from two interfaces to only one, as
it seems the most of people have only one network interface installed.
- Removed some "Use of uninitialized value ..." annoying messages in the Apache
error_log.
0.9.2 - 12-Jun-2007
====================
- Special Debian contribution.
+ Added support for Debian distribution.
+ Added the missing "monitorixico.png" file during the install process using
the install.sh shell-script.
(thanks to Uwe Heidrich, uweheidrich AT hotmail.com)
- Added German language support in the monthly report.
(thanks to Uwe Heidrich, uweheidrich AT hotmail.com)
- Added support for systems using Linux RAID systems under LVM.
- Fixed in the localhost.cgi and in monitorix.pl files to not include a second
configuration file if the first one already exists.
- Fixed the graphs legend lines adding blank lines in order to have a better
formatting. That only affected those who have RRDtool version above 1.2.13.
- Added the Zoom feature that, when enabled, it will permits to see a larger
picture just clicking inside any graph image.
(suggested by Dimitri Yioulos, dyioulos AT firstbhph.com)
- Removed the degree symbol in all the temperature graphs.
- Some little code cleanup.
0.9.1 - 09-Jan-2007
====================
- Fixed some annoying cron messages about uninitialized value during an addition
and a multiplication, only on 2.4 kernels.
- Fixed the line and area colors in the kernel-related new graphs.
0.9.0 - 03-Jan-2007
====================
- Fixed the background color of the graphs in Multihost feature.
- Added a lot of new colors to cover as many hardware interrupts as they exist.
- Added the Monitorix shortcut icon.
- Fixed a bad closing in the global <html> tag.
- Fixed and optimized the start routine in the init script.
- Added a new composed-graph to see the Linux kernel usage per processor. The
graph will be divided by three parts (as always) only using, right now, the
biggest and the first one of the last two. The graph will show the global
percentages of total user time, nice time, system time, idle time and io-wait
time and separately, the number of context switches. Finally if the system
has multiprocessors there will be an individual graph per processor showing
the percentages of its CPU times (up to 8 processors).
(suggested by Michael Berger, MBerger AT scrippsops.com)
- Added a configuration switch (Y/N) per graph to enable or disable its
processing. This will help specially on embedded systems (where there is not
much disk space) to monitorize only what it is really needed.
- IMPORTANT NOTICE: The configuration file (/etc/monitorix.conf) has been
extended with important changes.
0.8.3 - 16-Oct-2006
====================
- Added the word "easier" to the Monitorix slogan.
- Added support for CCISS Compaq RAID driver under 2.6 Linux kernels.
- Changed the color for the first mounted filesystem in the disk usage, now is
darker.
- Changed all the white colors to gray in order to be more visible when using
the white theme.
- Changed the Fax color (from white to orange).
- Adjusted three colors in the interrupt activity graphs: from gray to orange,
from black to dark-gray and from white to light-gray.
- Changed the color of the running processes (from dark blue to red).
- Changed the HTML font from the Arial,Helvetica to Verdana,Tahoma, and switched
to lowercase all the HTML tags.
- Fixed a problem when finding the root disk on LVM systems with multiple disks
on the same logical volume.
(thanks to Bon, bon AT bugstudio.net)
- Consolidated to only one internal function all temperature graphs concerning
to the Hewlett-Packard server models.
- Fixed a broken image in the third temperature graph on some Hewlett-Packard
server models.
- Added support for up to 255 hardware interrupts to take advantatge of the
APIC feature in newer Linux systems. The "int.rrd" database will be upgraded
automatically.
- Because of the new support for so many interrupts, the interrupt graphs no
longer displays the unused ones.
- Added support for up to 5 NICs. The "net.rrd" database will be upgraded
automatically.
(suggested by Mike Harris, MikeDawg AT addictz.org)
- Removed the use of the generation number from the HP ProLiant servers, because
there are no differencies In the number of processors between the current
generations. Now the server names are changed from ML350G3 to simply ML350.
0.8.2 - 04-Jul-2006
====================
- Changed from dark-gray to orange the color of the last mount point in the
disk usage graph.
- Added error handling during the creation of the RRDs database files.
- Fixed a graph creation error when trying to view the PC LANs on systems with
RRDtool v1.2+.
- Fixed a graph creation error during the monthly report creation on systems
with RRDtool v1.2+.
- Fixed to take care about the color selected when creating the monthly report
graphs.
- Fixed a typo when cutting the last digit of $root_disk.
(thanks to Christoph Fritsche, Christoph.Fritsche AT fh-telekom-leipzig.de)
- Added the new parameter "silent=imagetag" which among of the image
generation it will return the HTML <IMG SRC> tag for the specified image.
- Fixed the annoying old behaviour of the Multihost feature that obligates to
reload the page two times every time you want to see the most up to date
remote server graphs.
- Some cosmetic changes.
0.8.1 - 17-May-2006
====================
- Fixed problems while creating the ip counters when the network port variables
$PORT01, $PORT02, ... are removed or not defined in the configuration file.
- Added better support for Linux Software RAID devices (/dev/md0, /dev/md1, ...).
- Added specific colored logo images for black and white themes.
- Optimized the way how are used the chomp() functions, using now multiple
arguments.
- Optimized all the code that was using system commands to collect information.
- Dramatically reduced the CPU load average on most systems specially on slow or
old systems. As an example of that, a Pentium at 133Mhz sees reduced to 50%
its CPU load.
- More code cleaning.
0.8.0 - 27-Mar-2006
====================
- Almost complete support for FreeBSD based systems.
(thanks to Roger "Rocky" Vetterberg, roger AT vetterberg.com)
(thanks to the twenty4help, http://www.twenty4help.com)
- Code prepared to be more easily portable to other UNIX/Linux systems.
- Changed the location of the configuration file to /etc/monitorix.conf.
- Fixed a "grep" condition problem with LVM based systems not using LVM.
(thanks to Yazhir, admin AT pazeng.co.il)
- Fixed to escape more possible colons on interrupt device names.
- Fixed graph font size for RRDtool versions 1.2+.
- Better support for RRDtool version 1.2.
- Fixed the counter of the amount of Samba locked files.
- Better monitorization in the detection of VirusMail (requires MailScanner).
- Improved the Active Processes graph, now includes the sleeping and running
processes in order to know better the amount of concurrent processes the
server has.
- Now the cron file is automatically created taking care the OS usual paths.
- Removed the default names for the unused interrupt devices. Now all the unused
interrupts will be marked as "unused".
- Fixed the order of collected data in disk activity graphs.
- More code cleaning and removed some unused variables.
0.7.14 - 17-Jan-2006
====================
- Fixed to be more accurate the way how are detected the ports that are down.
- Removing annoying cron messages and added again the locking mechanism.
0.7.13 - 16-Jan-2006
====================
- Added an automatic space-padding control to the MNT_LIST mount points names.
- Fixed "val" and "mode" declarations and added a hint into README file for
users coming from other Linux distributions.
(thanks to Christoph Fritsche, s03315 AT fh-telekom-leipzig.de )
- Really added the parameter "-P" in the "df" lines. In the previous version it
was only commented in the ChangeLog.
- Added a new file in the /etc/httpd/conf.d/ which will make the alias
"/monitorix", and will facilitate the installation with different html root
directories.
- Added an initial support for LVM (Logical Volume Manager) based systems.
- Added a warning indicator (changing the color background to red) on the 12
port graphs for each selected port if it seems to be down.
- Removed temporaly the locked mechanism introduced in the previous version
because it produces annoying cron messages everyday at midnight.
- Some little code cleaning.
0.7.12 - 07-Nov-2005
====================
- Fixed the stat() function that prevented to collect Samba and NetAtalk data.
- Escape colons in Interrupt names (INT_NAME) for rrdtool 1.2 branch versions.
(thanks to Marcos Andre, foca AT siagri.com.br)
- Added the parameter "-P" in order to prevent multi-line output from "df".
(thanks to Rene Kapeller, rene.kapeller AT psi.ch)
- Added a locking mechanism to prevent concurrent executions of Monitorix, that
will be useful on very high loaded servers.
(thanks to Rene Kapeller, rene.kapeller AT psi.ch)
0.7.11 - 06-Oct-2005
====================
- Now the POP3 section is looking for pop3 string (not pop-3) in log entries.
- It handles possible DNS no resolution for defined PC LANs.
- Added English language support for the monthly reports.
- Removed the PC_DS list. Monitorix only will use PC_LIST and PC_IP if needed.
- Remove the hard-coded command paths in order to be more distro compatible.
- Added some checks in order to warn if some directories or files can't be read.
- Fix to escape only colons for rrdtool 1.2 branch versions.
0.7.10 - 26-Sep-2005
====================
- Reduced the size of the Monitorix logo in the startup screen.
- Finally fixed the problem with disk i/o on 2.6 kernels.
- Fixed some incompatibilities in order to support RRDtool v1.2.
(thanks to Alex Shiffer, refys AT zelacom.com)
- Removed MONITORIX_VER variable from the configuration file.
0.7.9 - 12-Sep-2005
====================
- Some cleanups in the Configuration.help file.
- Remove annoying samba messages in cron when samba is not running.
- Fixed bug when collecting disk i/o on kernels 2.6 (/proc/diskstats).
(thanks to Alf Tanner, alf.tanner AT gmail.com)
0.7.8 - 11-Sep-2005
====================
- Initial public release.

170
README Normal file
View File

@ -0,0 +1,170 @@
INTRODUCTION
===============================================================================
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 under 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 system 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
alternative locations: '/etc/monitorix.conf' and
'/usr/local/etc/monitorix.conf'.
HISTORY
===============================================================================
All of its development was initially created for monitoring Red Hat, Fedora and
CentOS Linux systems, so this project was made keeping in mind these type of
distributions. Today it runs on different GNU/Linux distributions and even in
other UNIX systems, like FreeBSD, OpenBSD and NetBSD.
On March 2006, Monitorix included minimal support to run on FreeBSD systems. My
special thanks to twenty4help Knowledge Service and to Roger "Rocky" Vetterberg
for their support and help, and for being good friends during the porting
process.
Since the release of 1.3.2 though, Monitorix has almost full support for
FreeBSD. My special thanks to Pavlin Vatev who generously offered his support
during all of the process.
With the release 2.0.0 Monitorix suffered a complete rewrite, including new
features and graphs, cleaned up all the code, updated and enhanced a number of
aspects in some graphs, and fixed a lot of bugs. The most important change was
that it no longer required 'crond' to work, instead Monitorix became a complete
standalone Perl daemon being started and stopped like any other system service.
Since the release 2.2.0 Monitorix includes support for OpenBSD systems. My
special thanks to Devio.us team for giving me a free shell account where to put
hands to work.
Since the release 2.6.0 Monitorix includes support for NetBSD systems.
IMPORTANT NOTE
===============================================================================
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.
Please, see the monitorix.conf(5) and monitorix(8) man pages.
REQUIREMENTS
===============================================================================
Monitorix requires some others packages to be installed that your GNU/Linux
distribution may or may not have:
- A CGI capable Web server (Apache, Nginx, lighttpd, etc.)
- Perl
- Perl-CGI
- Perl-MailTools
- Perl-MIME-Lite
- Perl-libwww
- Perl-DBI
- Perl-XML-Simple
- RRDtool and its Perl bindings (perl-rrdtool or rrdtool-perl)
You can download RRDtool from different places:
http://pkgs.repoforge.org/rrdtool/
http://oss.oetiker.ch/rrdtool/
INSTALLATION
===============================================================================
The file tree for the Monitorix application is:
File Recommended location Description
-------------------------------------------------------------------------------
monitorix /usr/bin/ main program (daemon)
monitorix.cgi $BASE_DIR/cgi-bin/ CGI (viewer)
monitorix.conf /etc/ configuration file
Changes /usr/share/doc/ changes log file
COPYING /usr/share/doc/ license
logo_bot.png $BASE_DIR bottom logo
logo_top.png $BASE_DIR top logo
monitorixico.png $BASE_DIR favicon
monitorix-alert.sh /usr/share/doc/ alert example script
monitorix-apache.conf /etc/httpd/conf.d/ apache configuration
monitorix.init /etc/init.d/ redhat init script
monitorix-deb.init /etc/init.d/ debian init script
monitorix.logrotate /etc/logrotate.d/ logrotate script
monitorix.spec /usr/share/doc/ RPM spec file
monitorix.sysconfig /etc/sysconfig/ pre-run config file
monitorix.lighttpd /etc/lighttpd/ lighttpd configuration
README /usr/share/doc/ documentation
README.FreeBSD /usr/share/doc/ documentation
README.nginx /usr/share/doc/ documentation
README.OpenBSD /usr/share/doc/ documentation
README.NetBSD /usr/share/doc/ documentation
man/man5/monitorix.conf.5 /usr/share/man/man5/ monitorix.conf manpage
man/man8/monitorix.8 /usr/share/man/man8/ monitorix manpage
reports/*.html $BASE_LIB/reports/ monthly reports i18n
reports/send_reports $BASE_LIB/reports/ script to send reports
Once succesfully installed, please take a look into the configuration file to
setup the options according your system and enable or disable graphs.
Finally start Monitorix using the system init script:
# service monitorix start
or with:
# /etc/init.d/monitorix start
At this point, Monitorix will start gathering the system information based on
the configuration setup in 'monitorix.conf' file, and after some minutes, you
should be able to see the results from your favorite browser pointing at:
http://localhost/monitorix/
(don't forget to (re)start your webserver)
AUTHORS
===============================================================================
Monitorix is written and actively maintained by Jordi Sanfeliu.
Many people further contributed by reporting problems, suggesting various
improvements, sharing ideas or submitting actual code. Since the list might be
incomplete, please see the 'Changes' file for a detailed description of all the
contributions.
My special thanks to all of them!
CONTACT
===============================================================================
In case of help, bugs, ideas or suggestions please contact using any of the
following ways:
- IRC at freenode: #monitorix
- Mailing List: https://lists.sourceforge.net/lists/listinfo/monitorix-general
- Direct Email: Jordi Sanfeliu <jordi@fibranet.cat>
DONATIONS
===============================================================================
If you or your company make regular use of this software, please consider
making a donation to the author to support open source effort.
Many thanks for any donation!
LICENSE AND COPYRIGHT
===============================================================================
Monitorix is distributed under the terms of the GNU General Public License.
See the included file "COPYING".
Copyright (C) 2005-2012 Jordi Sanfeliu.
http://www.monitorix.org

18
README.FreeBSD Normal file
View File

@ -0,0 +1,18 @@
Notes to read after installation of Monitorix 2.4+ in FreeBSD systems
===============================================================================
Please take some time adjusting the options in the monitorix.conf file.
See the monitorix.conf(5) man page for a detailed help of each configuration
option.
Make sure that the default ipfw(8) rule numbers defined in the monitorix.conf
file doesn't conflict with any other rule number in your firewall:
- $PORT_RULE = "24000";
- $NGINX_RULE = "24100";
This is the list of things that still need attention:
- [PCLAN] - PC LAN Internet activity is not supported yet. Help needed!
- [SERV] - Some services may not work.
- [HPTEMP] - HP Temperatures may not work because of the lack of HP software.
- [NFSS] - NFS server is not supported yet.
- [NFSC] - NFS client is not supported yet.

19
README.NetBSD Normal file
View File

@ -0,0 +1,19 @@
Notes to read after installation of Monitorix 2.6+ in NetBSD systems
===============================================================================
Please take some time adjusting the options in the monitorix.conf file.
See the monitorix.conf(5) man page for a detailed help of each configuration
option.
This is the list of things that still need attention:
- IP filter not supported yet, hence some network activity graphs won't work.
- File usage in 'VFS usage' graph doesn't work.
- [PROC] - Per processor kernel usage graph is not available because the
command 'sysctl kern.cp_time2' doesn't work yet.
- [PORT] - Network port activity not supported yet.
- [PCLAN] - PC LAN Internet activity is not supported yet. Help needed!
- [SERV] - Some services may not work.
- [HPTEMP] - HP Temperatures may not work because of the lack of HP software.
- [NFSS] - NFS server is not supported yet.
- [NFSC] - NFS client is not supported yet.
- [INT] - Device interrupt activity not supported yet.

20
README.OpenBSD Normal file
View File

@ -0,0 +1,20 @@
Notes to read after installation of Monitorix 2.4+ in FreeBSD systems
===============================================================================
Please take some time adjusting the options in the monitorix.conf file.
See the monitorix.conf(5) man page for a detailed help of each configuration
option.
Make sure that the default ipfw(8) rule numbers defined in the monitorix.conf
file doesn't conflict with any other rule number in your firewall:
- $PORT_RULE = "24000";
- $NGINX_RULE = "24100";
This is the list of things that still need attention:
- [PROC] - Per processor kernel usage graph is not available because the
command 'sysctl kern.cp_time2' doesn't work yet.
- [PCLAN] - PC LAN Internet activity is not supported yet. Help needed!
- [SERV] - Some services may not work.
- [HPTEMP] - HP Temperatures may not work because of the lack of HP software.
- [NFSS] - NFS server is not supported yet.
- [NFSC] - NFS client is not supported yet.

31
README.nginx Normal file
View File

@ -0,0 +1,31 @@
NOTES FOR THOSE WHO WANT TO MONITOR 'nginx' WEB SERVER
===============================================================================
Since the 1.3.0 version and thanks to Aleksandr Miroshnychenko
(al.miroshnychenko AT gmail.com) it is possible to enable the monitorization
of the Nginx web server (http://nginx.net/).
Here are the steps:
1) Edit the 'monitorix.conf' file to enable the 'nginx' monitorization and set
the correct network port where Nginx is listening on:
our %GRAPH_ENABLE = (
[...]
"nginx" => "Y",
[...]
our $NGINX_PORT = "80";
2) Make sure 'nginx' is compiled with the flag:
--with-http_stub_status_module
3) Edit the 'nginx.conf' file and add or uncomment in the server section the
following:
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
4) Restart Nginx and Monitorix.

29
docs/monitorix-alert.sh Executable file
View File

@ -0,0 +1,29 @@
#!/bin/sh
#
# Example script used to execute an alert action.
#
# - in CPU alerts the current value is the last 15min load average
# - in FS alerts the current value is the root filesystem usage (%)
#
if [ $# != 3 ] ; then
echo "$0: Wrong number of parameters."
exit 1
fi
ALERT_TIMEINTVL=$1
ALERT_THRESHOLD=$2
current_value=$3
(
cat << EOF
Message from hostname '$HOSTNAME'
This system is reaching/exceeding the defined $ALERT_THRESHOLD threshold during the last $ALERT_TIMEINTVL seconds.
The current value is: $current_value
Please take proper actions to correct this situation.
EOF
) | mail -s "WARNING: Monitorix alert!" root

View File

@ -0,0 +1,32 @@
#
# Monitorix is a lightweight system monitoring tool
#
Alias /monitorix /usr/share/monitorix
ScriptAlias /monitorix-cgi /usr/share/monitorix/cgi-bin
<Directory /usr/share/monitorix/cgi-bin/>
DirectoryIndex monitorix.cgi
Options ExecCGI
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
# Apache rules to restrict access to Monitorix:
# Don't forget to add <username> in .htpasswd with the 'htpasswd' command.
#
#<Directory "/usr/share/monitorix">
# Options Indexes Includes FollowSymLinks
# Order Deny,Allow
# Deny from All
# Allow from 127.0.0.1
# AllowOverride None
# AuthUserFile /etc/httpd/conf/.htpasswd
# AuthGroupFile /dev/null
# AuthName "Monitorix: Restricted access, sorry."
# AuthType Basic
# Require user <username>
# Satisfy Any
#</Directory>

88
docs/monitorix-deb.init Executable file
View File

@ -0,0 +1,88 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: monitorix
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Monitorix daemon
### END INIT INFO
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Monitorix"
NAME="monitorix"
CONF="/etc/monitorix.conf"
DAEMON="/usr/bin/$NAME"
PIDFILE="/var/run/$NAME.pid"
LOCKFILE="/var/lock/$NAME"
SCRIPTNAME="/etc/init.d/$NAME"
DAEMON_ARGS="-c $CONF -p $PIDFILE"
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 5
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
lock_monitorix() {
if [ -x /usr/bin/lockfile-create ]; then
lockfile-create $LOCKFILE
lockfile-touch $LOCKFILE &
LOCKTOUCHPID="$!"
fi
}
unlock_monitorix() {
if [ -x /usr/bin/lockfile-create ] ; then
kill $LOCKTOUCHPID
lockfile-remove $LOCKFILE
fi
}
case $1 in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC $NAME"
lock_monitorix
start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --startas $DAEMON -- -p $PIDFILE $DAEMON_ARGS
status=$?
unlock_monitorix
log_end_msg $status
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC $NAME"
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
log_end_msg $?
rm -f $PIDFILE
;;
restart|force-reload)
$0 stop && sleep 2 && $0 start
;;
try-restart)
if $0 status >/dev/null; then
$0 restart
else
exit 0
fi
;;
reload)
exit 3
;;
status)
status_of_proc $DAEMON "$DESC"
;;
*)
echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
exit 2
;;
esac

View File

@ -0,0 +1,4 @@
$HTTP["host"] =~ "your\.monitorix\.vhost$" {
server.document-root = "/var/www/localhost/htdocs/monitorix"
alias.url = ( "/cgi-bin" => "/var/www/localhost/cgi-bin/" )
}

87
docs/monitorix.init Executable file
View File

@ -0,0 +1,87 @@
#!/bin/bash
#
# /etc/rc.d/init.d/monitorix
#
# Starts the Monitorix daemon
#
# chkconfig: 2345 99 10
# description: Monitorix is a lightweight system monitoring tool
# processname: monitorix
# config: /etc/monitorix.conf
# pidfile: /var/run/monitorix.pid
### BEGIN INIT INFO
# Provides: monitorix
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start up the Monitorix daemon
# Description: Monitorix is a free, open source, lightweight system
# monitoring tool designed to monitor as many services and
# system resources as possible.
### END INIT INFO
# Source function library
. /etc/init.d/functions
if [ -f /etc/sysconfig/monitorix -a $UID -eq 0 ]; then
. /etc/sysconfig/monitorix
fi
RETVAL=0
PROG="monitorix"
DAEMON="/usr/bin/monitorix"
PIDFILE="/var/run/monitorix.pid"
CONF="/etc/monitorix.conf"
start() {
if [ ! -f /var/lock/subsys/$PROG ] ; then
echo -n $"Starting $PROG: "
daemon $DAEMON -c $CONF -p $PIDFILE $OPTIONS && success || failure
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
touch /var/lock/subsys/$PROG
echo
fi
fi
}
stop() {
echo -n $"Stopping $PROG: "
killproc $PROG
RETVAL=$?
rm -f /var/lock/subsys/$PROG
rm -f $PIDFILE
echo
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
if [ -f /var/lock/subsys/$PROG ] ; then
restart
fi
;;
status)
status $PROG
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
exit $RETVAL

7
docs/monitorix.logrotate Normal file
View File

@ -0,0 +1,7 @@
/var/log/monitorix {
nocompress
missingok
postrotate
/bin/kill -HUP `cat /var/run/monitorix.pid 2>/dev/null` 2> /dev/null || true
endscript
}

96
docs/monitorix.spec Normal file
View File

@ -0,0 +1,96 @@
# rpm spec for Monitorix
#
Summary: Monitorix is a system monitoring tool
Name: monitorix
Version: 2.6.0
Release: 1%{?dist}
License: GPL
Group: Applications/System
URL: http://www.monitorix.org
Packager: Jordi Sanfeliu <jordi@fibranet.cat>
Source: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildArch: noarch
Requires: rrdtool
Requires: perl
Requires: perl-libwww-perl
Requires: perl-MailTools
Requires: perl-MIME-Lite
Requires: perl-DBI
Requires: perl-XML-Simple
%description
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 under production UNIX/Linux servers, but due to its
simplicity and small size may also be used on embedded devices as well.
%prep
%setup
%build
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_initrddir}
install -m 0755 docs/monitorix.init %{buildroot}%{_initrddir}/monitorix
mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d
install -m 0644 docs/monitorix-apache.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/monitorix.conf
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
install -m 0644 docs/monitorix.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/monitorix
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
install -m 0644 docs/monitorix.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/monitorix
mkdir -p %{buildroot}%{_sysconfdir}
install -m 0644 monitorix.conf %{buildroot}%{_sysconfdir}/monitorix.conf
mkdir -p %{buildroot}%{_bindir}
install -m 0755 monitorix %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/monitorix
install -m 0644 logo_top.png %{buildroot}%{_datadir}/monitorix
install -m 0644 logo_bot.png %{buildroot}%{_datadir}/monitorix
install -m 0644 monitorixico.png %{buildroot}%{_datadir}/monitorix
mkdir -p %{buildroot}%{_datadir}/monitorix/imgs
mkdir -p %{buildroot}%{_datadir}/monitorix/cgi-bin
install -m 0755 monitorix.cgi %{buildroot}%{_datadir}/monitorix/cgi-bin
mkdir -p %{buildroot}%{_localstatedir}/lib/monitorix/reports
install -m 0644 reports/*.html %{buildroot}%{_localstatedir}/lib/monitorix/reports
install -m 0755 reports/send_reports %{buildroot}%{_localstatedir}/lib/monitorix/reports
mkdir -p %{buildroot}%{_localstatedir}/lib/monitorix/usage
mkdir -p %{buildroot}%{_mandir}/man5
mkdir -p %{buildroot}%{_mandir}/man8
install -m 0644 man/man5/monitorix.conf.5 %{buildroot}%{_mandir}/man5
install -m 0644 man/man8/monitorix.8 %{buildroot}%{_mandir}/man8
%clean
rm -rf %{buildroot}
%post
/sbin/chkconfig --add monitorix
%files
%defattr(-, root, root)
%{_initrddir}/monitorix
%config(noreplace) %{_sysconfdir}/httpd/conf.d/monitorix.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/monitorix
%config(noreplace) %{_sysconfdir}/sysconfig/monitorix
%config(noreplace) %{_sysconfdir}/monitorix.conf
%{_bindir}/monitorix
%{_datadir}/monitorix/logo_top.png
%{_datadir}/monitorix/logo_bot.png
%{_datadir}/monitorix/monitorixico.png
%{_datadir}/monitorix/cgi-bin/monitorix.cgi
%attr(777,apache,apache) %{_datadir}/monitorix/imgs
%attr(755,root,root) %{_localstatedir}/lib/monitorix/usage
%config(noreplace) %{_localstatedir}/lib/monitorix/reports/*.html
%{_localstatedir}/lib/monitorix/reports/send_reports
%doc %{_mandir}/man5/monitorix.conf.5.gz
%doc %{_mandir}/man8/monitorix.8.gz
%doc Changes COPYING README README.nginx README.FreeBSD README.OpenBSD README.NetBSD docs/monitorix-alert.sh docs/monitorix-lighttpd.conf
%changelog
* Thu Sep 01 2005 Jordi Sanfeliu <jordi@fibranet.cat>
- Release 0.7.8.
- First public release.
- All changes are described in the Changes file.

3
docs/monitorix.sysconfig Normal file
View File

@ -0,0 +1,3 @@
# Here you can specify your Monitorix command line options.
#
#OPTIONS=""

BIN
logo_bot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
logo_top.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

1768
man/man5/monitorix.conf.5 Normal file

File diff suppressed because it is too large Load Diff

57
man/man8/monitorix.8 Normal file
View File

@ -0,0 +1,57 @@
.\" Monitorix manpage.
.\" Copyright (C) 2005-2012 by Jordi Sanfeliu <jordi@fibranet.cat>
.\"
.\" This is the man page for the monitorix collector daemon.
.\"
.TH monitorix 8 "Sep 2012" 2.6.0 "Monitorix collector daemon"
.SH NAME
monitorix
.SH SYNOPSIS
\fBmonitorix\fR \fB-c configfile\fR [\fB-p pidfile\fR] [\fB-d none | graph[,graph] | all\fR] [\fB-v\fR]
.SH DESCRIPTION
This Perl daemon starts the main Monitorix process, which gathers statistics about the system it is running on and stores this information in a set of RRD files.
.SH OPTIONS
.TP
\fB\-c configfile\fR
The default location of the configuration file varies depending on the operating system:
.P
.RS
Linux: \fI/etc/monitorix.conf\fP
.br
FreeBSD: \fI/usr/local/etc/monitorix.conf\fP
.P
.RE
.TP
\fB\-p pidfile\fR
Stores the daemon's process ID into the specified file.
.TP
\fB\-d none | graph[,graph] | all\fR
Logs more information about what \fBmonitorix\fP is doing internally. The keys reflect if the data collected must be displayed on each case. If \fBall\fP is defined, the data collected of all enabled graphs will be shown. If \fBnone\fP is defined no data collected will be shown. Finally it is also possible to define a comma-separated list of graph names from which show their data collected.
.br
For a reference of all graph names check the option \fB@GRAPH_NAME\fP in the \fImonitorix.conf\fP configuration file.
.TP
\fB\-v\fR
Displays version information.
.SH SIGNALS
On receipt of a SIGHUP, \fBmonitorix\fP will close and reopen its log file. This is useful in scripts which rotate and age log files.
.P
Note that the configuration file is not re-read. I plan to change this in future versions.
.SH FILES
The following is the set of the special files created on every startup:
.TP 41
\fB$BASE_DIR/cgi-bin/monitorix.conf.path\fP
stores the path of \fIconfigfile\fP.
.TP 41
\fB$BASE_DIR/cgi-bin/monitorix.hplog\fP
stores the output of \fIhplog\fP.
.TP 41
\fB$BASE_DIR/index.html\fP
HTML main page.
.SH AUTHOR
Monitorix is written by Jordi Sanfeliu <jordi@fibranet.cat>
.SH COPYRIGHT
Copyright \(co 2005-2012 Jordi Sanfeliu
.br
Licensed under the GNU General Public License v2 (GPL).
.SH "SEE ALSO"
.BR monitorix.conf (5)

7005
monitorix Executable file

File diff suppressed because it is too large Load Diff

13765
monitorix.cgi Executable file

File diff suppressed because it is too large Load Diff

1022
monitorix.conf Normal file

File diff suppressed because it is too large Load Diff

BIN
monitorixico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

74
reports/ca.html Normal file
View File

@ -0,0 +1,74 @@
<html lang="ca" dir="ltr">
<head>
<title>Monitorix: Informe de tràfic d'Internet</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="ca">
</head>
<body bgcolor="#ffffff">
<table cellspacing="0" cellpadding="0" width="600" border="0">
<tr>
<td colspan="2">
<img alt="Monitorix" src="cid:image_01" border="0">
<br>
<hr>
<p>
<p>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="490">
<p>
<font face="Verdana, sans-serif" size="-1">
Estimat usuari,
<p>
Tot seguit us presentem les dades de l'informe mensual corresponent al tràfic d'Internet produït pel vostre ordinador:
</td>
</tr>
<tr>
<td>
<br>
<img src="cid:image_02" align="center" border="0">
</td>
</tr>
<tr>
<td>
<center>
<font face="Verdana, sans-serif" size="2">
<b>
trafic mensual d'Internet
</b>
</font>
</center>
<br>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="590">
<pre>
<iframe style='background-color: #eeeeee;' src="cid:text_01" width="90%" height="550px" frameborder="0"></iframe>
</pre>
<font face="Verdana, sans-serif" size="-1">
Aprofitem l'avinentesa per agraïr-vos la vostra confiança.
<br>
</font>
<br>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td valign="top" align="left">
<font face="Verdana, sans-serif" size="-1">
Atentament,
<br>
El vostre nom aquí
<br>
<a href="MAILTO:you@example.com">you@example.com</a><br>
<a href="http://www.example.com">http://www.example.com</a>
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

74
reports/de.html Normal file
View File

@ -0,0 +1,74 @@
<html lang="de" dir="ltr">
<head>
<title>Monitorix: Internet-Datendurchsatz Bericht</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="de">
</head>
<body bgcolor="#ffffff">
<table cellspacing="0" cellpadding="0" width="600" border="0">
<tr>
<td colspan="2">
<img alt="Monitorix" src="cid:image_01" border="0">
<br>
<hr>
<p>
<p>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="490">
<p>
<font face="Verdana, sans-serif" size="-1">
Sehr geehrter Benutzer,
<p>
Die Grafiken zeigen Ihnen den Internetdatendurchsatz ihres Computers im letzten Monat:
</td>
</tr>
<tr>
<td>
<br>
<img src="cid:image_02" align="center" border="0">
</td>
</tr>
<tr>
<td>
<center>
<font face="Verdana, sans-serif" size="2">
<b>
Monatlicher Internet Datendurchsatz
</b>
</font>
</center>
<br>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="590">
<pre>
<iframe style='background-color: #eeeeee;' src="cid:text_01" width="90%" height="550px" frameborder="0"></iframe>
</pre>
<font face="Verdana, sans-serif" size="-1">
Vielen Dank für Ihre Aufmerksamkeit.
<br>
</font>
<br>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td valign="top" align="left">
<font face="Verdana, sans-serif" size="-1">
mit freundlichen Grüßen,
<br>
Ihr name hier
<br>
<a href="MAILTO:you@example.com">you@example.com</a><br>
<a href="http://www.example.com">http://www.example.com</a>
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

74
reports/en.html Normal file
View File

@ -0,0 +1,74 @@
<html lang="en" dir="ltr">
<head>
<title>Monitorix: Internet Traffic Report</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="en">
</head>
<body bgcolor="#ffffff">
<table cellspacing="0" cellpadding="0" width="600" border="0">
<tr>
<td colspan="2">
<img alt="Monitorix" src="cid:image_01" border="0">
<br>
<hr>
<p>
<p>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="490">
<p>
<font face="Verdana, sans-serif" size="-1">
Dear user,
<p>
The graph presented below shows the Internet traffic generated by your computer during the last month:
</td>
</tr>
<tr>
<td>
<br>
<img src="cid:image_02" align="center" border="0">
</td>
</tr>
<tr>
<td>
<center>
<font face="Verdana, sans-serif" size="2">
<b>
Internet monthly traffic
</b>
</font>
</center>
<br>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="590">
<pre>
<iframe style='background-color: #eeeeee;' src="cid:text_01" width="90%" height="550px" frameborder="0"></iframe>
</pre>
<font face="Verdana, sans-serif" size="-1">
Thank you for your confidence.
<br>
</font>
<br>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td valign="top" align="left">
<font face="Verdana, sans-serif" size="-1">
Sincerely,
<br>
Your name here
<br>
<a href="MAILTO:you@example.com">you@example.com</a><br>
<a href="http://www.example.com">http://www.example.com</a>
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

74
reports/it.html Normal file
View File

@ -0,0 +1,74 @@
<html lang="it" dir="ltr">
<head>
<title>Monitorix: Report del Traffico Internet</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="it">
</head>
<body bgcolor="#ffffff">
<table cellspacing="0" cellpadding="0" width="600" border="0">
<tr>
<td colspan="2">
<img alt="Monitorix" src="cid:image_01" border="0">
<br>
<hr>
<p>
<p>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="490">
<p>
<font face="Verdana, sans-serif" size="-1">
Gentile utente,
<p>
Il grafico seguente mostra il traffico internet generato dal tuo computer durante l'ultimo mese:
</td>
</tr>
<tr>
<td>
<br>
<img src="cid:image_02" align="center" border="0">
</td>
</tr>
<tr>
<td>
<center>
<font face="Verdana, sans-serif" size="2">
<b>
Traffico mensile internet
</b>
</font>
</center>
<br>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="590">
<pre>
<iframe style='background-color: #eeeeee;' src="cid:text_01" width="90%" height="550px" frameborder="0"></iframe>
</pre>
<font face="Verdana, sans-serif" size="-1">
Ti ringraziamo per averci scelto!
<br>
</font>
<br>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td valign="top" align="left">
<font face="Verdana, sans-serif" size="-1">
Cordiali Saluti,
<br>
qui il tuo nome
<br>
<a href="MAILTO:you@example.com">you@example.com</a><br>
<a href="http://www.example.com">http://www.example.com</a>
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

74
reports/pl.html Normal file
View File

@ -0,0 +1,74 @@
<html lang="pl" dir="ltr">
<head>
<title>Monitorix: Raport użycia Internetu</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="en">
</head>
<body bgcolor="#ffffff">
<table cellspacing="0" cellpadding="0" width="600" border="0">
<tr>
<td colspan="2">
<img alt="Monitorix" src="cid:image_01" border="0">
<br>
<hr>
<p>
<p>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="490">
<p>
<font face="Verdana, sans-serif" size="-1">
Drogi użytkowniku,
<p>
Wykres zamieszczony poniżej pokazuje użycie łącza internetowego wygenerowane przez Twój komputer w ciągu ostatniego miesiąca:
</td>
</tr>
<tr>
<td>
<br>
<img src="cid:image_02" align="center" border="0">
</td>
</tr>
<tr>
<td>
<center>
<font face="Verdana, sans-serif" size="2">
<b>
Miesięczny ruch Internetowy
</b>
</font>
</center>
<br>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="left" width="590">
<pre>
<iframe style='background-color: #eeeeee;' src="cid:text_01" width="90%" height="550px" frameborder="0"></iframe>
</pre>
<font face="Verdana, sans-serif" size="-1">
Dziękujemy za zaufanie.
<br>
</font>
<br>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td valign="top" align="left">
<font face="Verdana, sans-serif" size="-1">
Z poważaniem,
<br>
Tutaj Twoja nazwa
<br>
<a href="MAILTO:ty@domena.com">ty@domena.com</a><br>
<a href="http://www.domena.com">http://www.domena.com</a>
</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

165
reports/send_reports Executable file
View File

@ -0,0 +1,165 @@
#!/usr/bin/perl
#
# Monitorix - Sends Monitorix monthly reports.
#
# Copyright (C) 2005-2012 by Jordi Sanfeliu <jordi@fibranet.cat>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
require 5.006;
no strict "vars";
no warnings "once";
#use warnings;
use LWP::UserAgent;
use Getopt::Long;
use MIME::Lite;
use constant SMTP_HOST => "localhost";
use constant FROM => "noreply\@example.com";
use constant PREFIX => "http://127.0.0.1";
use constant SUBJECT => "Monitorix: monthly traffic report";
# ========================================================================
# ====== Probably you don't need to touch anything below this line ======
# ========================================================================
my $url;
my $ua;
my (undef, undef, undef, undef, $prev_month, $prev_year) = localtime(time - 3600);
sub adjust($) {
my $bytes = (shift);
my $adjust = 0;
my $b = " ";
if($bytes > 0 && $bytes < 1048576) {
$adjust = $bytes/1024;
$b = "KB";
}
if($bytes > 1048576 && $bytes < 1073741824) {
$adjust = $bytes/1024/1024;
$b = "MB";
}
if($bytes > 1073741824 && $bytes < 1000000000000) {
$adjust = $bytes/1024/1024/1024;
$b = "GB";
}
return sprintf("%3u%s", $adjust, $b);
}
GetOptions(
"host=s" => \$opt_host,
"config=s" => \$opt_config,
);
if(!$opt_host || !$opt_config) {
die("send_reports -h|--host <host> -c|--config <config_file>\n\n");
}
if(!stat($opt_config)) {
die("can't open file $opt_config.\n");
}
# load configuration file
require $opt_config;
# get the traffic counters
# -----------------------------------------------------------------------------
my @traffic = ();
my $tot_in = 0;
my $tot_out = 0;
my $tot = 0;
open(IN, $USAGE_DIR . $opt_host);
push(@traffic, "DAY INPUT OUTPUT TOTAL\n");
push(@traffic, "---------------------------------------------------------------\n");
while(<IN>) {
my ($day, $in, $out) = split(' ', $_);
chomp($day);
chomp($in);
chomp($day);
$tot_in += $in;
$tot_out += $out;
$tot = $in + $out;
push(@traffic, sprintf("%3u %12u %s %12u %s %15u %s\n", $day, $in, adjust($in), $out, adjust($out), $tot, adjust($tot)));
}
close(IN);
push(@traffic, "---------------------------------------------------------------\n");
$tot = $tot_in + $tot_out;
push(@traffic, sprintf("%16u %s %12u %s %15u %s\n", $tot_in, adjust($tot_in), $tot_out, adjust($tot_out), $tot, adjust($tot)));
# get the recipient's email address
# -----------------------------------------------------------------------------
my %index;
@index{@PC_LIST} = (0 .. $#PC_LIST);
my $i = $index{$opt_host};
my $to_addr = $PC_LIST[$i];
$to_addr = $PC_DEFAULT_MAIL unless $PC_REPORT_MAIL[$i];
# get the Monitorix logo
# -----------------------------------------------------------------------------
$url = PREFIX . $BASE_URL . "/logo_bot.png";
$ua = LWP::UserAgent->new(timeout => 30);
my $logo = $ua->request(HTTP::Request->new('GET', $url));
# get the monthly graph
# -----------------------------------------------------------------------------
$url = PREFIX . $BASE_CGI . "/monitorix.cgi?mode=pc.$i&graph=all&when=month&color=$THEME_COLOR&silent=imagetagbig";
$ua = LWP::UserAgent->new(timeout => 30);
$ua->request(HTTP::Request->new('GET', $url));
$url = PREFIX . $BASE_URL . "/" . $IMGS_DIR . "pc" . $i . ".month.png";
my $graph = $ua->request(HTTP::Request->new('GET', $url));
# create the multipart container, add attachments and send the message
# -----------------------------------------------------------------------------
$msg = new MIME::Lite(
From => FROM,
To => $to_addr,
Subject => SUBJECT . " - $opt_host",
Type => "multipart/related",
Organization => "Monitorix",
);
$msg->attach(
Type => 'text/html',
Path => $PC_REPORT_LANG . '.html',
);
$msg->attach(
Type => 'image/png',
Id => 'image_01',
Data => $logo->content,
);
$msg->attach(
Type => 'image/png',
Id => 'image_02',
Data => $graph->content,
);
$msg->attach(
Type => 'text/plain',
Id => 'text_01',
Data => join("", @traffic),
);
$msg->send('smtp', SMTP_HOST, Timeout => 60);
# rename $opt_host file to avoid reusing
# -----------------------------------------------------------------------------
my $newname = sprintf("%s.%02u-%u", $USAGE_DIR . $opt_host, $prev_month + 1, $prev_year + 1900);
rename($USAGE_DIR . $opt_host, $newname);