====== Syslog ======
If the server does not act as a central syslog server, suppress the logging of messages
originating from remote servers:
chssys -s syslogd -a "-r"
You can have more system logs than the errlog (errpt), you can activate syslog daemon. Logs files are text fomat.
Add the following lines in /etc/syslog.conf
[aix-srv@root] /root# cat /etc/syslog.conf
*.emerg /var/log/syslog/emerg.log rotate size 100k files 4 compress
*.alert /var/log/syslog/alert.log rotate size 100k files 4 compress
*.crit /var/log/syslog/crit.log rotate size 100k files 4 compress
*.err /var/log/syslog/error.log rotate size 100k files 4 compress
*.warning /var/log/syslog/warning.log rotate size 100k files 4 compress
*.notice /var/log/syslog/notice.log rotate size 100k files 4 compress
*.info /var/log/syslog/info.log rotate size 100k files 4 compress
*.debug /var/log/syslog/debug.log rotate size 100k files 4 compress
To get only **login** informations (telnet, ssh, console...), add the following lines in /etc/ssh/sshd_config
SyslogFacility AUTH
LogLevel INFO
And add the following line in syslog.conf:
auth,authpriv.debug /var/log/syslog/auth.log rotate size 500k files 4 compress
Rotate based on time (1 week):
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages rotate time 1w files 5
Create empty files for log, they won't be automatically created:
[aix-srv@root] /root# mkdir -p /var/log/syslog
[aix-srv@root] /root# for file in $(cat /etc/syslog.conf | grep -v "^#" | awk '{print $2}')
do
touch $file
done
Uncomment the entry for syslogd in /etc/rc.tcpip, or use the following command; then restart syslod:
[aix-srv@root] /root# chrctcp -S -a syslogd
[aix-srv@root] /root# stopsrc -s syslogd; startsrc -s syslogd
[aix-srv@root] /root# lssrc -ls syslogd
Subsystem Group PID Status
syslogd ras 3997822 active
Syslogd Config aso.notice /var/log/aso/aso.log rotate size 128k time 7d
Syslogd Config aso.info /var/log/aso/aso_process.log rotate size 1024k
Syslogd Config aso.debug /var/log/aso/aso_debug.log rotate size 8m compress
Syslogd Config *.emerg /var/log/syslog/emerg.log rotate size 100k files 4 compr
Syslogd Config *.alert /var/log/syslog/alert.log rotate size 100k files 4 compr
....
[aix-srv@root] /root# logger -p daemon.err "test"
[aix-srv@root] /root# tail -5 /var/log/syslog/error.log
....
Mar 8 09:31:04 nim daemon:panic|emerg root: test
Other parameters available: redirect debug to a syslog server, redirect emerg to the console for all logged in users, redirect err to the root console:
[aix-srv@root] /root# cat /etc/syslog.conf
*.debug @syslogserver
*.emerg *
*.err root
AIX error report test:
[aix-srv@root] /root# errlogger "This is a test"
[aix-srv@root] /root# errpt
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
AA8AB241 0308094013 T O OPERATOR OPERATOR NOTIFICATION
If you want to prevent other server to connect to the local syslog, use the option "-r". Only the local server can send to another server syslog information.
Change the syslog entry in /etc/rc.tcpip:
start /usr/sbin/syslogd "$src_running" "-r"
To start syslog with option -r, use the following command:
[aix-srv@root] /root# startsrc -s syslogd -a "-r"
[aix-srv@root] /root# ps -ef | grep syslog
root 6029434 3277000 0 11:26:43 - 0:00 /usr/sbin/syslogd -r
[aix-srv@root] /root# lssrc -ls syslogd
Subsystem Group PID Status
syslogd ras 6029434 active
Syslogd Config aso.notice /var/log/aso/aso.log rotate size 128k time 7d
Syslogd Config aso.info /var/log/aso/aso_process.log rotate size 1024k
Syslogd Config *.emerg /var/log/syslog/emerg.log rotate size 100k files 4 compr
Syslogd Config *.alert /var/log/syslog/alert.log rotate size 100k files 4 compr
Syslogd Config *.crit /var/log/syslog/crit.log rotate size 100k files 4 compres
Syslogd Config *.err /var/log/syslog/error.log rotate size 100k files 4 compres
Syslogd Config *.warning /var/log/syslog/warning.log rotate size 100k files 4 c
Syslogd Config *.notice /var/log/syslog/notice.log rotate size 100k files 4 com
Syslogd Config *.info /var/log/syslog/info.log rotate size 100k files 4 compres
Syslogd Config *.debug /var/log/syslog/debug.log rotate size 100k files 4 compr
Syslogd Config mail.debug /var/log/syslog/mail.log rotate size 100k files 4 com
Syslogd Config auth.info /var/log/syslog/ssh.log rotate size 300k files 4 compr
==== Redirect errorlog in syslog ====
Create an ODM entry to run the "logger" command whenever an error is logged.
[aix-srv@root] /root# vi /tmp/syslog.add
errnotify:
en_name="syslog1"
en_persistenceflg = 1
en_method = "logger -p err Msg from Error Log: $(errpt -a -l $1 | grep -v 'ERROR_ID TIMESTAMP')"
Add the entry to ODM
[aix-srv@root] /root# odmadd /tmp/syslog.add
Add a syslog entry to forward “err” priority messages to syslog
[aix-srv@root] /root# vi /etc/syslog.conf
*.err @syslogserver
Refresh the syslog demon to pick up the new entry
[aix-srv@root] /root# refresh -s syslogd
For reducing length of line in the syslog output use instead
en_method = "logger -p err AIXErrptLog: $(errpt -a -l $1 | grep -v '\\--------')"
===== Syslog-ng =====
# cat /etc/syslog-ng/syslog-ng.conf
@version:3.2
@include "scl.conf"
# sample configuration file for syslog-ng on AIX
# users should customize to fit their needs
#
# log syslog-ng's own messages to /var/log/syslog-ng.log
source s_oracle_apexd {
file ("/oracle/diag/rdbms/apexd/apexd/trace/alert_apexd.log");
file ("/oradata/apexd/log/adump/syslog_sys_audit.txt");
};
source s_oracle_rmancat {
file ("/oracle/diag/rdbms/rmancat/rmancat/trace/alert_rmancat.log");
};
source s_root_audit {
file ("/audit/stream.out");
};
source s_oracle_msg {
file ("/var/log/messages");
file ("/var/log/syslog/warning.log");
file ("/var/log/syslog/ftp_logging.log");
file ("/var/log/syslog/auth.log");
};
source s_oracle_sys {
unix-dgram("/dev/log");
internal();
};
# tcp ("10.10.10.10" port(514));
destination d_oracle_apexd {
udp ("10.10.10.10" port(514) template("<$PRI> $DATE $HOST apexd $MSG\n"));
};
destination d_oracle_rmancat {
udp ("10.10.10.10" port(514) template("<$PRI> $DATE $HOST rmancat $MSG\n"));
};
destination d_root_audit {
udp("10.10.10.10" port(514));
};
source s_internal {
internal();
};
destination d_syslognglog {
file("/var/log/syslog-ng.log" owner("root") group("adm") perm(0640));
};
log {
source(s_internal);
destination(d_syslognglog);
};
# log everything to /var/log/messages
source s_local {
unix-dgram("/dev/log");
};
destination d_messages {
file("/var/log/messages" owner("root") group("adm") perm(0640));
};
log {
source(s_local);
destination(d_messages);
};
destination d_oracle_sys { udp("172.21.160.239" port(514)); };
# Remote logging
#
#source s_remote {
# tcp(ip(0.0.0.0) port(514));
# udp(ip(0.0.0.0) port(514));
#};
#
#destination d_separatedbyhosts {
# file("/var/log/syslog-ng/$HOST/messages" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));
#};
#
#log {
# source(s_remote);
# destination(d_separatedbyhosts);
#};
#
# Local filters examples
#
#filter f_secure { facility(authpriv); };
#filter f_mail { facility(mail); };
#filter f_cron { facility(cron); };
#filter f_emerg { level(emerg); };
#filter f_spooler { level(crit..emerg) and facility(uucp, news); };
#filter f_local7 { facility(local7); };
filter f_messages { level(warning..emerg); };
filter f_auth { facility(auth,authpriv); };
filter f_emergency { level(emerg); };
filter f_kernel { facility(kern); };
#
# Local destination examples
#
#destination d_secure { file("/var/log/secure"); };
#destination d_maillog { file("/var/log/maillog"); };
#destination d_cron { file("/var/log/cron"); };
#destination d_console { usertty("root"); };
#destination d_spooler { file("/var/log/spooler"); };
#destination d_bootlog { file("/var/log/boot.log"); };
#
# Local log examples - order DOES matter !
#
#log { source(s_local); filter(f_emerg); destination(d_console); };
#log { source(s_local); filter(f_secure); destination(d_secure); flags(final); };
#log { source(s_local); filter(f_maillog); destination(d_maillog); flags(final); };
#log { source(s_local); filter(f_cron); destination(d_cron); flags(final); };
#log { source(s_local); filter(f_spooler); destination(d_spooler); };
#log { source(s_local); filter(f_local7); destination(d_bootlog); };
#log { source(s_local); filter(f_messages); destination(d_messages); };
log { source(s_oracle_apexd); destination(d_oracle_apexd); };
log { source(s_oracle_rmancat); destination(d_oracle_rmancat); };
log { source(s_oracle_sys); filter(f_kernel); destination(d_oracle_sys); };
log { source(s_oracle_sys); filter(f_auth); destination(d_oracle_sys); };
log { source(s_oracle_sys); filter(f_emergency); destination(d_oracle_sys); };
log { source(s_oracle_sys); filter(f_messages); destination(d_oracle_sys); };
log {
source (s_oracle_msg);
destination (d_oracle_sys);
};
log {
source (s_root_audit);
destination (d_root_audit);
};