42

Answer to Life, the Universe, and the IT

Redhat als Syslog-Server für AIX

| 0 comments

Redhat als Syslog-Server für AIX

Ja, man könnte auch eine AIX-LPAR als Syslog-Server nehmen, aber mal ganz ehrlich. Ein Linux-Hobel bzw. eine Linux-VM ist einfach billiger und bringt das selbe Ergebniss plus den Vorteil das der rsyslog bzw. syslog-ng schon im Repo enthalten sind ;-).
Ich nehm hier kein RedHat sondern ein Scientific Linux welches binärkompatibel zu RedHat ist, wen das genauer interessiert findet bei Wikipedia einen passenden Beitrag. Ich nutze es, da ich für den Server keinen SW-Support benötige und neben Solaris, AIX und RedHat keinen viertes OS wie z.B. Debian einsetzen möchte.

Konfiguration

Also, bei einem normalen Scientific Linux bzw. RedHat ist als syslog-Daemon bereits ein rsyslog dabei welcher bereits vollauf genügt.

rsyslog

Folgendes Konfigfile genügt bereits damit der rsyslog die Nachrichten aus dem Netzwerksegment 10.10.10.0/24 per tcp bzw. udp empfängt und sie unter /var/log mit dem Namen des Hosts ablegt.

# cat /etc/rsyslog.conf

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

# specify senders you permit to access
$AllowedSender TCP, 127.0.0.1, 10.10.10.0/24

#### GLOBAL DIRECTIVES ####

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf

# This one is the template to generate the log filename dynamically, depending on the client's Hostname.
$template FILENAME,"/var/log/%fromhost%.syslog.log"
*.* ?FILENAME

#### RULES ####

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog

# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

Man muss natürlich darauf achten dass unter /var/log genug Platz zur Verfügung steht und ein logrotate eingerichtet wird damit das Verzeichnis nicht voll läuft. Sinnvollerweise sollte man aber trotzdem den Füllstand überwachen.

logrotate einrichten

Die folgenden Zeilen unter /etc/logrotate.d/rsyslog.remotelogs gespeichert, rotieren und komprimieren die angefallenen Logfiles täglich und heben sie ein halbes Jahr auf.

# cat /etc/logrotate.d/rsyslog.remotelogs 

/var/log/*syslog.log
{
        rotate 180
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

AIX konfigurieren

Errordaemon nach syslog umleiten

Da AIX von Hause aus keinen syslog nutzt, muss man erst einmal die Fehler aus dem Errordaemon zum syslogd umleiten. Dafür legt man erst ein mal ein File an mit folgendem Inhalt und Namen.

$ cat errnotify

errnotify:
        en_pid = 0
        en_name = "syslog1"
        en_persistenceflg = 1
        en_label = ""
        en_crcid = 0
        en_class = ""
        en_type = ""
        en_alertflg = ""
        en_resource = ""
        en_rtype = ""
        en_rclass = ""
        en_symptom = ""
        en_err64 = ""
        en_dup = ""
        en_method = "errpt -l $1 | tail -1 | logger -t errpt -p daemon.notice"

Danach lädt man das File in die ODM

$ odmadd errnotify

und schon schickt der Errordaemon seine Meldungen auch an den syslogd.

Syslog-Server eintragen

Ist auch ganz einfach, folgende Zeile im AIX System sendet die Meldungen auch an den vorher eingerichteten RedHat Syslog-Server (IP 10.10.10.2).

$ cat /etc/syslog.conf |grep -v ^#

aso.notice /var/log/aso/aso.log rotate size 128k time 7d
aso.info /var/log/aso/aso_process.log rotate size 1024k
aso.debug /var/log/aso/aso_debug.log rotate size 8m compress
*.info /var/log/syslog rotate time 7d compress
*.info @10.10.10.2

Und schon hat man einen RedHat Syslog-Server welcher die Syslog Meldungen von den AIX-Systemen empfängt. Als nächstes könnte man z.B. ein logstash aufsetzen welches die Logs auswertet und entsprechend bei Events alarmiert, mal schauen …

Leave a Reply

Required fields are marked *.


This site uses Akismet to reduce spam. Learn how your comment data is processed.