Syslog/iX for HP 3000 MPE
http://www.bixby.org/mark/syslogix.html
A true syslog() and syslogd for MPE
Last updated September 18, 1999 @ 0406 UTC
What's New
-
September 17, 1999
-
Migrated from cccd.edu to bixby.org.
-
March 17, 1998
-
Minor web page documentation changes.
-
March 12, 1998
-
Fixed a bug in the INSTALL script where it was unconditionally using /TELESUP/PRVXL/MOVER
to extract the archive. Now INSTALL will first try to use /tmp/mover55,
and if that doesn't exist as an executable, then /TELESUP/PRVXL/MOVER will
be used.
Welcome
This is the official home page for the HP
3000 MPE port of syslog() and syslogd. Check here for the latest news,
implemented functionality, known bugs, to-do list, etc. Status reports
about major milestones will also be posted to the HP3000-L
mailing list and its associated gatewayed newsgroup comp.sys.hp.mpe.
I did this port because it is the foundation for other important packages
such as BIND and sendmail.
Please send your comments, questions, and bug reports directly to me,
Mark
Bixby.
Or just post them to HP3000-L.
The platform I used to do this port is an HP 3000 957RX running MPE/iX
6.0 and using the GNU
gcc C compiler.
I would like to extend my sincere thanks to HP CSY for providing me
with the resources and encouragement to do this port.
The combined porting wisdom from all of my ports can be found in my
MPE/iX
Porting Guide.
HP began shipping an official supported Syslog/iX bundled with MPE FOS
as of 6.0. HP will properly disavow any knowledge of the unsupported
freeware version of Syslog/iX that you're reading about on this page.
System Requirements
What is syslog and why should I care?
Syslog is the standard event logging subsystem for Unix and consists of
a server daemon, a client function library, and a client command line utility.
You can log to files, terminal devices, logged on users, or even forward
to other syslog systems. Syslog can accept data from the local system via
an AF_UNIX socket or from any system on the network via an AF_INET UDP
socket on port 514. It's pretty cool.
Log messages are prioritized by a combination of facility and urgency
level. The various facilities are listed below:
| Facility name |
Description |
| kern |
kernel messages |
| user |
random user-level messages |
| mail |
mail subsystem |
| daemon |
system daemons |
| auth |
security/authorization messages |
| syslog |
internally generated syslogd messages |
| lpr |
line printer subsystem, including HP JetDirect interfaces |
| news |
Usenet news subsystem |
| uucp |
Unix-Unix Copy Program subsystem |
| cron |
clock daemon |
| local0 |
reserved for local use |
| local1 |
reserved for local use |
| local2 |
reserved for local use |
| local3 |
reserved for local use |
| local4 |
reserved for local use |
| local5 |
reserved for local use |
| local6 |
reserved for local use |
| local7 |
reserved for local use |
The various urgency levels are listed below (note: this is an ordered
list; when you specify a level in syslog.conf, you are selecting that level
and all levels above it):
| Level name |
Description |
| emerg |
system is unusable |
| alert |
action must be taken immediately |
| crit |
critical conditions |
| err |
error conditions |
| warning |
warning conditions |
| notice |
normal but significant conditions |
| info |
informational |
| debug |
debugging messages |
The configuration file syslog.conf consists of a selector (one or more
priority specifiers of the format facility.level) and an action.
Action syntax supported on MPE:
| Action |
Description |
| * |
:TELL @.@ |
| @.account |
:TELL @.account |
| @some.host.name |
forwards via UDP to another syslogd running on some.host.name |
| /some/file/name |
appends the message to /some/file/name |
| everything else |
assumed to be a userspec as in :TELL userspec |
Many major Internet packages such as the BIND
DNS server, the sendmail
mail transport, and the INN Usenet server all log to syslog.
Many hardware devices like routers and HP JetDirect interfaces can be
configured to log useful data to syslog.
How to Obtain Syslog/iX
-
Download Syslog using either FTP.ARPA.SYS or some other client
-
Extract the installation script
-
Edit the installation script
-
Run the installation script
Download Syslog using FTP.ARPA.SYS from your HP 3000 (the preferred method).....
:HELLO MANAGER.SYS
:XEQ FTP.ARPA.SYS
open ftp.bixby.org
anonymous
your@email.address
bytestream
cd /pub/mpe
get mover55.prvxl.telesup /tmp/mover55;code=nmprg;rec=128;disc=4096000
get syslog.mover.Z /tmp/syslog.mover.Z
exit
.....Or download using some other generic web or ftp client (the alternate
method)
Download the following files (make sure that you use "binary mode" or whatever
client feature that is 8-bit clean):
Upload those files to your HP 3000 in an 8-bit clean bytestream manner
to:
-
/tmp/mover55b
-
/tmp/syslog.mover.Z
Convert mover into something that is executable:
:HELLO MANAGER.SYS
:FILE MOVER55=/tmp/mover55;CODE=NMPRG;DISC=4096000
:XEQ FROMBYTE.HPBIN.SYS '-b /tmp/mover55b *MOVER55'
Then extract the installation script (after both download methods)
:CHDIR /tmp
:XEQ UNCOMPRE.HPBIN.SYS '/tmp/syslog.mover.Z'
:XEQ /tmp/mover55 '-xw /tmp/syslog.mover'
-------------------------------------------------------------------------
MOVER/iX (A.00.02) MPE iX - HP3000 System Support Tool
MON, AUG 7, 1995, 8:20 AM Copyright Hewlett Packard Co. 1995
MOVER/iX is designed for use by Hewlett Packard Support personnel only.
HP SHALL NOT BE LIABLE FOR DAMAGES RESULTING FROM MISUSE OR UNAUTHORIZED
USE OF THIS PROGRAM. THIS PROGRAM REMAINS THE PROPERTY OF HP.
-------------------------------------------------------------------------
Unloading truck '/tmp/syslog.mover':
FCODE SIZE EOF LIMIT ACCESS FILENAME
Creating directory(ies) in path: 'INSTALL'
0 1B 4645 2147483647 -rwxr-xr-x INSTALL
Extract? [Y] | N | Q: Y
Creating directory(ies) in path: 'JSYSLOGD'
0 79B 3 3 -rwxr-xr-x JSYSLOGD
Extract? [Y] | N | Q: Q
Edit the installation script
Examine the accounting structure creation commands and modify if necessary
(adding additional capabilities, choosing a non-system volume set, etc).
:XEQ VI.HPBIN.SYS /tmp/INSTALL
Run the installation script
The SYSLOG accounting structure will be created and then all files will
be extracted from the archive.
:XEQ SH.HPBIN.SYS /tmp/INSTALL
Distribution Highlights
-
README
-
what you're reading now
-
INSTALL
-
the one-time installation script you ran above
-
JSYSLOGD
-
the :STREAM job used to run SYSLOGD
-
SYSLOGD
-
the syslog server program
-
libsyslog.a
-
object code library expected by syslog()-using packages like BIND and sendmail
-
logger
-
client test command line program for generating syslog() calls
-
logger.1
-
man page for logger
-
syslog.3
-
man page for syslog() (not customized for MPE)
-
syslog.conf
-
configuration file for SYSLOGD
-
syslog.h
-
header include file expected by syslog()-using packages like BIND and sendmail
-
syslog.pid
-
Run-time process identifier (PID) of syslogd. For use with the kill(1)
command.
-
syslogd.8
-
man page for SYSLOGD (not customized for MPE)
How to Compile Syslog
-
make
How to Run Syslog
-
Add a 'syslog 514/udp' entry to the file SERVICES.NET.SYS (you can also
refer to this file as /etc/services, which is a symbolic link (i.e. alias)
to /SYS/NET/SERVICES).
-
Examine syslog.conf and customize for your own environment.
-
:STREAM JSYSLOGD.PUB.SYSLOG
-
Stop Syslog either by :ABORTJOB or kill `cat /SYSLOG/PUB/syslog.pid`
How to Test Syslog
-
:XEQ /SYSLOG/PUB/logger '-p lpr.info testing 1 2 3' (this
will tell syslogd to print 'testing 1 2 3' on your system console)
MPE/iX Implementation Considerations
There some minor functionality issues to be aware of when comparing Syslog
for Unix (Syslog/UX) to Syslog/iX:
-
Syslog/UX must be run as root to bind to UDP ports 514. Syslog/iX must
call GETPRIVMODE() to bind to UDP port 514, and thus requires PM capability
on SYSLOGD.
-
Syslog/iX does not attempt to open /dev/console as a file. Rather, GENMSG()
or PRINTOP() calls are used instead. SYSLOGD requires PM capability for
GENMSG().
-
Syslog/iX does not support reading logging data from a named pipe (/dev/log)
like Syslog/UX does. If you just gotta have this functionality, let me
know.
-
Syslog/iX reads from the AF_UNIX socket /dev/log.un. I don't know of any
MPE tool that lists active AF_UNIX socket names for debugging purposes.
-
Syslog/iX recognizes the following destinations in syslog.conf:
-
* - all logged on users - implemented as :TELL @.@
-
@.account - all users logged on to account "account" - implemented as :TELL
@.account (this would be illegal syntax for Syslog/UX)
-
@some.host.name - forwards the message via UDP to another syslog host
-
/some/file/name - writes the message to a file (NOTE: "tty" device files
have NOT been tested)
-
everything else - assumed to be a logged on userid - implemented as :TELL
userid
Known Bugs Under Investigation
To-Do List
Change History
-
March 6, 1998
-
Repackaged the distribution using my new standard installer script.
-
Improved web page documentation.
-
October 3, 1997
-
Updated the Syslog/iX home page link to the gcc compiler to point to the
Interex Freeware tape. Added the System Requirements section.
-
May 28, 1997
-
Maximum syslogd MPE console buffer size increased to 512 bytes to not truncate
hourly BIND statistics messages that only an ISP would care about.
-
May 23, 1997
-
Enhanced disk log file integrity to better survive system crashes.
-
Disk log files now attached to XM at open time.
-
Buffers flushed and EOF written after every write.
-
Internal writev() substitute renamed to syslog_writev().
-
PID file changed to /SYSLOG/PUB/syslog.pid.
-
Syslog is no longer a suspect in my recent system crashes. All of those
crashes have now been explained, with causes other than syslog.
-
I consider this to be the production release of syslog, suitable for inclusion
into and use with other packages.
-
May 20, 1997
-
May 19, 1997
-
Loaner system arrives, porting resumes.
Mark Bixby