|
Current version is 3.0.0, released January 17th 2002
Version 4.0 is pending completion, anticipated beta-release October 2004
INTRODUCTION
Server Scribe is a system built over time as a method for managing a large group of servers, along with monitoring their health and utilization. It includes more than just monitoring often found with other SNMP tools. There is also an activity logger, for recording issues with each server, and a calendar for managing and announcing on-call lists, maintenance and other events.
There are other tools which are similar to Server Scribe. The strengths of Server Scribe are:
- Complete Management
- Rather than just being a monitoring system, it is oriented to being the source for managing a group of servers. Maintenance logs, Configuration and Audit Management, Downtime Planning and more can be handled through Server Scribe, in addition to Monitoring.
- Open Source
- You have the sourcecode available to change to suite your environment.
- Object Oriented Modular Design
- Lending itself to easy expansion or changes
- Scalable
- Using a SQL Server back-end provides for open-ended scalability.
- Lightweight
- The elements which reside on each server are designed to be as lightweight as possible. To this means the client simply generates reports using standard OS programs and forwards them unaltered to the server for processing. Furthermore the client is an autonomous combination of a bourne shell script and a socket interface program--so you can run it in a hardened environment.
- Secure
- The protocol spoken is a push oriented protocol, instead of a pull oriented protocol commonly found with other systems. The reason for this is entirely based on security, simplicity and making the client as lightweight as possible. In the future there may be additional SNMP support, but it would be supplemental.
Licensing
Server Scribe is Copyright by Brandon Gillespie, and is free to use following the terms of the GNU Public License. All code in Server Scribe falls under the GPL, with the exception of the socket utility, which has its own copyright.
Support
As with any open-source package, support is fairly limited and left up to the individual user. However, depending upon availability you can contract from Protos, LLC for support and services.
Snapshots
What does it look like? Here are some snaps... (these are out of date! They are for 2.5.0, I need to get them updated...)
- Monitor Summary view [54kb GIF]
- Health Report view [107kb GIF]
- Configuration/Profile view [73kb GIF]
- Activity Log [42kb GIF]
- Calendar [67kb GIF]
DOWNLOAD
You can get the source by providing your name and email address. This is not for any marketing purpose, but is purely for tracking the size of the user base and being able to send notifications if there are problems. Your information will be kept privately, and will NOT be sold or distributed in any way shape or form. If you are returning for a new or additional download, please try to provide the same name and information as the original download.Downloads currently Disabled
Note the installation instructions, as there are additional libraries and packages needed for Server Scribe to function.
INSTALLATION
In the communal spirit of open-source and free software Server Scribe uses many assorted and varied existing tools and programs. Unfortunately, this means that a few other software packages and libraries must be installed before the Server Scribe server will function.
Supported Platforms
Currently only Solaris is supported. I have support for HP-UX, but it is not yet released.
Requirements
Because of the matrix of inter-dependancies, I have first listed out each external software component required, then listed which proeton components require them.
System Applications:
- S01 ANSI-C-Compiler on central server (currently gcc is known to work)
- S02 Perl 5.6.1 or better -- Core Implementation Language http://www.perl.org/
- S03 Apache 1.2 or better -- Web Server
- S04 MySQL 3.23 or better -- Database used http://www.mysql.com/
- S05 GD -- Graphics Library for web interface http://www.boutell.com/gd/
- S06 Expat -- XML Parser http://sourceforge.net/projects/expat/
- S07 Bourne Shell
- S08 sar
Perl Modules:
- P01 GD.pm http://stein.cshl.org/WWW/software/GD/
- P02 DBI (DataBase Interface) http://www.cpan.org/modules/by-module/DBI/
- P03 DBD Module for your DB http://www.cpan.org/modules/by-module/DBD/ Or: http://www.cpan.org/modules/by-module/Mysql/
- P04 Time::HiRes (High resolution timing) http://www.cpan.org/modules/by-module/Time/
- P05 XML::Parser and XML::Parser-EasyTree http://www.cpan.org/modules/by-module/XML/
Server Scribe Component Dependancies:
A01,A02 and A03 are commonly on the same server.
- A01 Database Server: S04
- A02 Server Scribe Report Server (webapi): S01,S02,P02,P03
- A03 Server Scribe Web Admin/View (web): S02,S03,S05,P01,P02,P03
- A04 Server Scribe Health Client: S07,S08
- A05 Server Scribe PMonitor: S02,S06,P04,P05
Installing
The Server Scribe Source base should look similar to:
-rw-r--r-- 1 brandon brandon 399 May 1 10:56 README drwxr-xr-x 2 brandon brandon 512 May 1 10:17 api/ drwxr-xr-x 2 brandon brandon 512 May 1 10:27 bin/ drwxr-xr-x 2 brandon brandon 512 May 1 10:17 cgi/ drwxr-xr-x 3 brandon brandon 512 May 1 10:35 doc/ drwxr-xr-x 3 brandon brandon 512 May 1 10:18 lib/ drwxr-xr-x 3 brandon brandon 512 May 1 10:19 src/ drwxr-xr-x 2 brandon brandon 512 May 1 10:19 tmp/Building Component Bundles
Each component is setup to be rolled into a portable bundle, from the server source. This is done using the bin/build script. Running the script without arguments will list available component options. Commonly, you will run -pserver (which includes both the webapi and web admin interfaces), -pclient (which includes the client bits, such as health and profile posting) and -pmonitor (which includes the PMonitor program).
The Server Components
- Install Server Scribe Code
- Roll the server code using ./bin/build -pserver. This will place a tarball in your /tmp/ directory. Unroll this tarball into your desired location for Server Scribe. Preferred location is /usr/local.
- Link the Server Scribe library into the perl include path by typing {proeton-base}/bin/install -perl.
- Configure the Apache Webserver
- Compile Apache with mod_cgi, mod_expires and mod_headers:
./configure --enable-module=cgi\ --enable-module=expires\ --enable-module=headers- Define a server instance and document base for proeton web admin, such as the virtual host 'proeton'. You can copy the HTML files from $PROETON_BASE/doc to this directory. Inside of it create a directory named 'graphs'. Apache configuration:
<Directory FULL_PATH_TO_PROETON_BASE/graphs/> ExpiresActive On ExpiresByType image/png "modification" Header set Pragma no-cache Header set Cache-Control no-cache </Directory>- Install the cgi code into the Apache cgi directory. A convenient way of doing this is to simply symlink to the proeton server's base/cgi directory:
cd APACHE_BASE/cgi-bin ln -s /usr/local/proeton/cgi proetonIf you do this, your web path will be: http://yoursite/cgi-bin/proeton/- Define a server instance and document base for the proeton web API. Traditionally this is on the same host as the web admin, but on port 10080.
For reference, a sample Apache HTTP configuration is available. This is not a complete configuration, and should be appended to an existing apache configuration file.
- Configure the SQL Server
- In MySQL create a new database named proeton.
- Load the table definitions from doc/TABLES.MySQL into the proeton database.
- Create an interface user and password (remember what they are!)
- Configure Server Scribe
- Update lib/proeton.conf (default is proeton.conf.sample) with all of the appropriate paths for its base directory, the webserver directories, the cgi directories, the database usernames and passwords.
The Client Components
To install a client go to the Server Scribe Source Base and run the bin/build script, selecting the various client modules you wish to roll. This will create a tarball in your /tmp/ directory, which you can copy to the remote/client host and unroll (usually into /usr/local). For some of these clients you must edit lib/proeton.sh with the proper Server Scribe Server name (verify it is resolvable or in /etc/hosts!).
pmonitor
pmonitor is a Web and Process monitor, which sends events back to the Server Scribe system. These events can be configured to send pages and notification. You must configure pmonitor with lib/pmonitorHTTP.conf and lib/pmonitorProc.conf. pmonitor is written in perl, and you must have perl installed on the client host it is being run on. You also must run bin/install -perl after installing perl.
pboot
This will install a simple script which you can put into your system init directories. It will send events when the init level is engaged (such as during a system boot). You must run bin/install -pboot to fully install this, after it is unrolled.
phealth
This will send a health report back to the central server every five minutes. You must run bin/install -phealth for this to work.
pprofile
This will send a configuration update to the server, with your system's latest profile. It is used for configuration management.