Esta es una de las muchisimas maneras que hay para configurar el syslogd, y no signfica que una sea mejor que otra. La mejor, es la que se adapta de la forma más adecuada a los requerimientos que tenemos y a los recursos que disponemos.
Estos son los ingredientes para la mezcla:
1 zFS
1 GDG
1 STC
1 Archivo de configuración
La preparación es la siguiente:
Tomamos el archivo de configuración y lo colocamos (en preferencia) en /etc. Supongamos, como suele convenirse, que este archivo se llama syslog.conf (como el ejemplo que encuentra en /usr/lpp/tcpip/samples).
En mi caso, decidí que algunos logs se separaban, como ser ftp, telnet, inetd, pero que no se guardarían, sino que al momento del archivado se borran. Luego, todo el log entero, va a ir a parar una vez por día (o cuando el filesystem llega al 75%) a un GDG.
Por qué separar algunos logs si después los borramos? Para una lectura más fácil cuando hay algun error, o cuando queremos implementar/cambiar algun componente, como por ejemplo el FTP.
Si no quiero guardar todo el log, puedo solamente archivar en una generación del GDG algunas partes? Si, se puede. Unicamente tenemos que estar seguros que la información se encuentra disponible.
Puedo guardar los logs en archivos dentro de USS? Si, pero no hay que olvidarse evaluar el crecimiento de la información, el purgado. Si, se puede hacer con cron). Aunque estas opciones son posibles, tienen origen en el uso de systemas *nix. Si realmente queremos hacer las cosas centralizadas del lado mainframe, usemos un GDG que sea manejado por el sistema.
Para el resto de las preguntas, se recomienda se recomienda enfáticamente la lectura de /usr/lpp/tcpip/samples/syslog.conf, ya que cuenta con ejemplos de parametrización que se adapten mejor a nuestras necesidades.
zFS: Una vez que lo creamos y lo montamos, no hay que olvidarse agregarlo en la BPXPRMxx que corresponda.
//CHKPOINT EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
DELETE +
(dsn) +
CLUSTER
SET MAXCC = 0
DEFINE CLUSTER( +
NAME(dsn) +
LINEAR +
MEGABYTES(500 50) +
SHAREOPTIONS(2) ) +
DATA(NAME(dsn.DATA) )
LISTCAT
ENT(dsn) ALL
/*
"SETOMVS SYNTAXCHECK=(xx)" Donde xx es el sufijo del miembro de la parmlib que modificamos.
Ejemplo STC:
//SYSLOGD PROC
//*
//SYSLOGD EXEC
PGM=BPXBATCH,REGION=4096K,TIME=1440,
// PARM='PGM /usr/sbin/syslogd -c -i -D
0755 -F 0644'
//*
//STDIN DD
PATH='/etc/syslog.conf'
//STDOUT DD
PATH='/tmp/syslogd.stdout',
//
PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
//
PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP)
//STDERR DD
PATH='/tmp/syslogd.stderr',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
//
PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP)
//CEEDUMP DD
SYSOUT=*,DCB=(RECFM=FB,LRECL=132,BLKSIZE=132)
// PEND
//*
Ejemplo Syslog.conf
ArchiveThreshold 75
ArchiveCheckInterval 30
ArchiveTimeOfDay 00:01
#
BeginArchiveParms
DSNPrefix # GDG
EndArchiveParms
#
*.crit
/dev/console
*.alert /dev/console
*.err
/var/log/error.log -X
auth.*
/var/log/auth.log -X
local1.debug
/var/log/telnet.debug -X
daemon.debug
/var/log/server.debug -X
#####################################################################
*.FTPD*.*.*
/var/log/ftpd -X
#####################################################################
*.INETD*.*.*
/var/log/inetd -X
#####################################################################
*.SYSLOGD*.*.none;*.INETD*.*.none /var/log/daemon -X
#####################################################################
*.*;local1.none;daemon.none;auth.none /var/log/garbagecan.log -X
#####################################################################
*.* /var/log/syslog -N SYSLOGD(+1)
La
STC de syslog debe tener permisos para escribir en el GDG, caso
contrario en los logs del syslogd encontramos :
FSUM1263
File system /SYSTEM/var/log archive failed on allocation,- file /var/log/syslog
- destination "GDG"(+1) - error code,FFFF9700, info code 0000
Y
en el output de la STC (si tenemos ACF2)vemos :
CF99913 ACF2
VIOLATION-08,06,SYSLOGD,,GDG
SUM1259 SYSLOGD ARCHIVE FAILED FOR 1 FILES
No hay comentarios.:
Publicar un comentario