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
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 '\\--------')"
# 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); };