Hi everybody

 

I think maybe I should be a bit more specifik in my question regarding flow-control and pipes.

 

For testing I am reading logs from a file and feeding them into syslog-ng through a pipe named “from_collect_10_45_1_41_to_syslog.pipe”.

Syslog-ng then pipes these logs to a script called archiver.pl through a pipe called “from_syslog_to_archivar.pipe”.

Archiver.pl simply write the logs to files, and at the same time pipes the logs back to syslog-ng through a pipe called “from_archivar_to_syslog.pipe”.

Last syslog-ng now write these logs to files.

 

The idea is that the logs going TO  archivar.pl are flow-controlled, and the logs going FROM archivar.pl are not. I should think that the flowcontrol would

work in the sence that all logs would arrive to archiver.pl, regardless of a possible loss of logs after they leave archiver.pl . but this seems not to be the case.

There is an substantial loss of logs arriving to archive.pl regardless of the flowcontrol.

 

If, on the other hand, i have a script reading from “from_archivar_to_syslog.pipe” instead of syslog-ng, it all works.

 

 

############# OPTIONS ##########################################################################################

 

options {

        long_hostnames(off);

        keep_hostname(yes);

        use_dns(no);

        flush_timeout(0);

        flush_lines(1);

        sync(0);

};

 

############## SOURCES #########################################################################################

 

 

source collect_10_45_1_41 {

       pipe("/opt/logging/logs/data/pipes/from_collect_10_45_1_41_to_syslog.pipe"  log_iw_size(2) log_fetch_limit(1) );

};

 

source archivar {

       pipe("/opt/logging/logs/data/pipes/from_archivar_to_syslog.pipe" log_iw_size(2) log_fetch_limit(1)   );

};

 

 

############# DESTINATIONS #####################################################################################

 

 

destination archivar {

        pipe("/opt/logging/logs/data/pipes/from_syslog_to_archivar.pipe" log_fifo_size(3)

        template("$FULLHOST/$YEAR/$MONTH/$DAY<CSIS>$DATE $FULLHOST $MESSAGE\n ")  );

};

 

destination messages {

       file("/opt/logging/logs/data/pipes/messages" log_fifo_size(3)

       template("$MESSAGE\n")  );

};

 

############# LOGS ############################################################################################

 

log {

      source(collect_10_45_1_41);

      destination(archivar);

      flags(flow-control, final);

};

 

log {

      source(archivar);

      destination(messages);

};

 

I really hope someone can help, since I have tried allmost anything with no result.

 

 

Kind Regards 

Steen Thomsen

softwaredeveloper