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...)


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:

Perl Modules:

Server Scribe Component Dependancies:

A01,A02 and A03 are commonly on the same server.

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

  1. Install Server Scribe Code
    1. 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.
    2. Link the Server Scribe library into the perl include path by typing {proeton-base}/bin/install -perl.
  2. Configure the Apache Webserver
    1. Compile Apache with mod_cgi, mod_expires and mod_headers:
           ./configure --enable-module=cgi\
                       --enable-module=expires\
                       --enable-module=headers
      
    2. 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>
      
    3. 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 proeton
      
      If you do this, your web path will be: http://yoursite/cgi-bin/proeton/
    4. 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.

  3. Configure the SQL Server
    1. In MySQL create a new database named proeton.
    2. Load the table definitions from doc/TABLES.MySQL into the proeton database.
    3. Create an interface user and password (remember what they are!)
  4. Configure Server Scribe
    1. 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!).

  1. 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.

  2. 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.

  3. 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.

  4. pprofile

    This will send a configuration update to the server, with your system's latest profile. It is used for configuration management.