2016-05-31 4:12 GMT+02:00 Thomas Munn <[email protected]>: > I have a datafile: which contains: (hello.txt) > > hello hello hello > hello hello hello > > When I run my perl script on ‘cli’ I use: > > cat hello.txt | /usr/local/bin/hello2goodbye.pl > > Output is: > > goodbye goodbye goodbye > goodbye goodbye goodbye
I think this is where your problem is rooted. You need to tell rsyslog which properties to modify, and do so be emiting json as output. See https://github.com/rsyslog/rsyslog/blob/master/plugins/external/INTERFACE.md (scroll towards the end "External Message Modification Modules"). So the response should be {"msg":"goodbye goodbye goodbye"} {"msg":"goodbye goodbye goodbye"} I would also assume that rsyslog spits out error messages about invalid json. Do you capture rsyslog error messages? Most distros unfortunately throw them away by default, what of course is a very bad idea when trouble-shooting... Rainer > > I did run it on the “CLI” with the requrested modification to see if I would > get output on a file, which I do if I run via cli (same was as above) only > the output is redirected to the appropriate log file, in unmodified form. > > When I run via the rsyslog command: > > logger -f hello.txt > > I see no output. Perhaps I am testing wrong? Logger works fine until I put in > the config lines to invoke mmexternal, and then no logs for ANYTHING. I did > run debug mode, and noticed some stuff happening ,but nothing about anything > be passed to the skeleton progarm with the modification in it. Is LOGGER a > terrible way to test? > > Thomas > >> On May 30, 2016, at 8:00 PM, David Lang <[email protected]> wrote: >> >> On Sun, 29 May 2016, symgryph wrote: >> >>> I have been trying to get MMexternal to 'modify' incoming syslog messages >>> (using logger for now) to change a test string "hello" to "goodbye" as a >>> proof of concept. >>> >>> I am using rsyslog version rsyslog-8.18.0-1.el7.x86_64 on CentOS Linux >>> release 7.2.1511 (Core) >>> >>> The perl transformation program works fine when I feed in the file via >>> standard in, and outputs the expected output via standard out. >> >> what is it that you feed into it and what is the "expected output" that you >> get back? >> >> I would suggest modifying your perl program to write it's stdin to a file >> and make sure that what you get from rsyslog is what you think you are >> getting. >> >> David Lang >> _______________________________________________ >> rsyslog mailing list >> http://lists.adiscon.net/mailman/listinfo/rsyslog >> http://www.rsyslog.com/professional-services/ >> What's up with rsyslog? Follow https://twitter.com/rgerhards >> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of >> sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T >> LIKE THAT. > > _______________________________________________ > rsyslog mailing list > http://lists.adiscon.net/mailman/listinfo/rsyslog > http://www.rsyslog.com/professional-services/ > What's up with rsyslog? Follow https://twitter.com/rgerhards > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of > sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T > LIKE THAT. _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

