# Syslog-ng > /dev/tty logging

## Bender007

Hi

siehe https://forums.gentoo.org/viewtopic-p-4293599.html#4293599

ich habe ein Problem und zwar wollte ich meine Logs also sshd log proftpd.auth etc. auf die /dev/tty loggen. Ich habe es schon mit der

```
tail -f /var/log/proftpd.auth &
```

 methode versucht habe aber festgestellt das nach einer gewissen Laufzeit meine habe Prozessliste mit tail pids überfüllt ist.

Gibt es eine Möglichkeit das auf genau diese weise zu lösen?

Alternativ kann man auch Syslog-ng benutzen das Problem ist aber das ich aus dem proftpd logs habe die nicht über syslog aufgezeichnet werden sondern über die Extend logs Methode laufen.

Ist es möglich diese proftpd logs trotzdem über syslog laufen zu lassen? Allerdings bin ich nicht besonders gut mit dem syslog-ng dienst vertraut und habe festgestellt das das auch nicht besonders komfortable zu konfigurieren ist. Kurz gesagt ich habe keinn blassen schimmer wie das über syslog läuft. Ich habe auch schon ein paar Lösungen ausprobiert allerdings ohne erfolg.

Aber eigentlich würde es schon reichen das mit einem script auf die /dev/tty zu legen.

Hat einer ne Idee wie man das am einfachsten realisieren kann? Oder mir vielleicht einer verklickert wie genau das mit dem Syslog-ng deamon läuft.

Ziel ist es wie schon erwähnt sshd log auf z.B. /dev/tty10, proftpd.auth auf /dev/tty9 und proftpd.access auf /dev/tty8 zu legen

```

# $Header: /var/cvsroot/gentoo-x86/app-admin/syslog-ng/files/syslog-ng.conf.gentoo,v 1.7 2007/08/02 04:52:18 mr_bones_ Exp $

#

# Syslog-ng default configuration file for Gentoo Linux

# contributed by Michael Sterrett

options {

        chain_hostnames(off);

        sync(0);

        # The default action of syslog-ng 1.6.0 is to log a STATS line

        # to the file every 10 minutes.  That's pretty ugly after a while.

        # Change it to every 12 hours so you get a nice daily update of

        # how many messages syslog-ng missed (0).

        stats(43200);

};

source src {

    unix-stream("/dev/log" max-connections(256));

    internal();

    file("/proc/kmsg");

};

destination messages { file("/var/log/messages"); };

# By default messages are logged to tty12...

destination console_all { file("/dev/tty12"); };

# ...if you intend to use /dev/console for programs like xconsole

# you can comment out the destination line above that references /dev/tty12

# and uncomment the line below.

#destination console_all { file("/dev/console"); };

log { source(src); destination(messages); };

log { source(src); destination(console_all); };

destination sshd { file("/var/log/sshd.log"perm(0640)group(adm)); };

filter f_sshd {match("^sshd.*"); };

log { source(src); filter(f_sshd); destination(sshd); };

```

Danke BenderLast edited by Bender007 on Thu Sep 27, 2007 8:36 pm; edited 1 time in total

----------

## Bender007

Ok Also ssh und openvpn logged korrekt auf /dev/tty.

Wie kann ich aber eine externe logdatei mit syslog-ng verarbeiten und auf dev/tty legen?

----------

## think4urs11

in eine pipe loggen und die von syslog-ng auslesen lassen

und nur so nebenbei - bitte Forenregel 17 beachten

----------

## Bender007

Hey Think4UrS11,

sorry wegen dem Crosspost kommt nicht mehr vor.

Wegen deinem Post, in eine pipe loggen und auslesen lassen. Mh großes Fragezeichen hab mal gesucht aber nichts über Pipes gefunden bzw. wie ich eine externe logdatei in die pipe einlesen kann. Habe leider mit Syslog-ng keine große Erfahrung gesammelt. Hast du eventuell n Anhaltspunkt für mich oder kannst du mir sagen wie die syntax aussehen muss. Also brauch ich auch eine destination, filter oder log anweisung??

Danke Bender

----------

## think4urs11

1. mit mkfifo eine pipe anlegen (/var/log/inputpipe oder ähnlich)

2. in syslog-ng.conf:

source s_pipe  { pipe("/var/log/inputpipe"); };

destination ftp_logs     { file("/var/log/piped-proftpd.log"); };

log log { source(s_pipe); destination(ftp_logs); };

3. um nun ein beliebiges File 'reinzupipen'

a) cat filename >/var/log/inputpipe

b) while read line; do echo $line >/var/log/inputpipe; done <filename

c) while read line; do logger $line; done <filename

a ist bei großen Dateien deutlich schneller aber syslog-ng kommt nicht hinterher; als ich diese Variante zuletzt getestet hatte gingen diverse Zeilen verloren, für Logfiles ist sowas natürlich tötlich!

Sofern also Proftp oder was auch immer du gesysloggt haben möchtest nicht direkt in eine Pipe loggen kann, kannst du z.B. via cron regelmäßig das normale Logfile so in Syslog pipen. (Natürlich immer nur die Zeilen nehmen die seit dem letzten cronlauf dazukamen....)

Nachteil: syslog-ng erwartet den Input in einem bestimmten Format, daher führt b höchstwahrscheinlich zu interessanten Ergebnissen. c hingegen kannst du  passend via Parameter vorbestücken, leider aber nicht alle interessanten Felder die syslog so bietet...  'optimal' wäre aber eine exakt zusammengebaute Logline.

Via b) habe ich im Büro unseren AS400 Syslog beigebracht, das können die nämlich nicht 'native'. Jetzt schicken die via ftp regelmäßig ihre Logs (schon passend für syslog zusammengebaut, macht dort ein Script eines Kollegen) und dieses File wird dann einfach in unseren zentralen Syslogserver gepumpt. (Der wiederum in eine MySQL-DB schreibt).  Genaue Konfig müßte ich im Büro morgen nachsehen.

siehe auch z.B.

https://forums.gentoo.org/viewtopic-p-3931457.html#3931457

https://forums.gentoo.org/viewtopic-t-473463.html

----------

## Bender007

Danke für den post... Mal schauen aber wegen 2 log Dateien ist das echt n Aufwand  :Very Happy: ..

Kann man denn 2 Logdateien (proftpd.access und proftpd.auth) in eine pipe loggen?

Gibt es denn keine andere Möglichkeit eine log Datei auf /dev/tty zu legen?

Die sache ist das ich bei Proftpd die Extended logs benutze damit ich nachvollziehen kann wann bzw. was ein User auf dem FTP Server so getrieben hat. Die Standard logs in der /var/log/messages zeigt mir leider nicht genauere Informationen an.

Danke für deine Hilfe

----------

## psyqil

 *Bender007 wrote:*   

> Gibt es denn keine andere Möglichkeit eine log Datei auf /dev/tty zu legen?

 Doch: http://kavlon.org/index.php/inittab

----------

## tamiko

Kannst du auch einfach mal ein

```

source ftp_extlog  { file("/var/log/proftpd.auth"); };

destination ftp_logs { file("/dev/ttyx"); };

log ftp { source(ftp_extlog); destination(ftp_logs); };

```

ausprobieren? Wenigstens sagt mir die man-page von syslog-ng, dass dies gehen sollte.

Ich würde trotzdem ersteinmal nachschauen in wie weit man in der Konfigurationsdatei von proftp einstellen kann, was alles an syslog geschickt wird.

/edit:

@ psyqil:

 :Very Happy:  An init habe ich gar nicht gedacht.

Der Init-Prozess ist ja für genau solche Spielchen da.Last edited by tamiko on Thu Sep 27, 2007 11:29 pm; edited 1 time in total

----------

## Bender007

Hi 

Danke psyqil für den Tip werde ich alternativ mal versuchen.

Habe es erst einmal mit syslog probiert mit folgendem Code:

```

source s_pipe { pipe("/var/log/proftpdpipe.write"); };

destination ftp_write { file("/dev/tty9"); };

log { source(s_pipe); destination(ftp_write); };

source t_pipe { pipe("/var/log/proftpdpipe.auth"); };

destination ftp_auth { file("/dev/tty8"); };

log { source(t_pipe); destination(ftp_auth); };

```

Hoffe der Code ist korrekt so.. auf jedenfall funktioniert es  :Very Happy: 

Danke Bender

----------

## Bender007

Hey Tamiko,

danke für den Tip ist natürlich einfacher als das mit den Pipes zu lösen..

werde ich morgen bzw heute  :Very Happy:  mal ausprobieren

Vielen Dank!!

----------

## Bender007

Hey Tamiko

hab deinen Code mal ausprobiert hat leider nicht geklappt  :Sad: 

wäre schön gewesen weil mit den pipes speichert er ja die Datei nicht sondern schickt sie nur auf /dev/tty

source ftp_extlog  { file("/var/log/proftpd.auth"); };

destination ftp_logs { file("/dev/ttyx"); };

log ftp { source(ftp_extlog); destination(ftp_logs); };

er hat mir auch einen Fehler ausgegeben als ich den syslog-ng neustarten wollte.

habe aus der letzten Zeile das ftp entfernt und dann hat er den Dienst gestartet. Aber leider funktioniert das logging nicht  :Sad: 

```

log { source(ftp_extlog); destination(ftp_logs); };

```

Danke Bender

----------

