Alex, excuse me for using this thread for posting my question. But my question is also on the same topic.
I have configured rsyslogd (v8.2102.0) to forward syslogs to two remote servers, one using TCP protocol and second one using UDP. Besides forwarding, I also have a rule to log to a local file. Here are the relevant sections from my rsyslog.conf. I can post the full file if needed. $MainMsgQueueTimeoutEnqueue 0 local4.* action(type="omfwd" target="10.240.219.64" action.resumeRetryCount="10" protocol="tcp" port="36456" template="Syslogs_ForwardFormat") local4.* action(type="omfwd" target="10.16.39.124" protocol="udp" port="36456" template="Syslogs_ForwardFormat") *.* /var/log/syslogs After the TCP connection is established and messages are getting forwarded, say someone pulls out the ethernet cable at the remote syslog collector 1 that is using tcp protocol. Some number of syslogs from this point are still forwarded to the server 2 using udp protocol and written to the local file as well. However if the TCP connection to the first server does not recover then after some time, we do not see any syslogs in the local file or at the second syslog server. I straced rsyslogd and all I see is the recvmsg() calls on the /dev/log socket. How do we tell rsyslog to drop the TCP connection if the other end is no longer receiving the syslogs. Perhaps it can drop the connection and retry after say X minutes. I tried using resumeRetryCount as documented at https://www.rsyslog.com/doc/configuration/actions.html, but that is not helping in my situation. Perhaps I'm missing some other "action" setting? Appreciate if you can give me a pointer to a sample configuration or point me to relevant documentation. Thank you. On Mon, Feb 5, 2024 at 11:11 AM David Lang via rsyslog < rsyslog@lists.adiscon.com> wrote: > you have a queue of 1024 for rabbitmq, if there are more messages than > that > pending, other processing will stop until the queue can accept more > messages. > Setup a larger queue (potentially a disk assisted queue) to handle longer > outages. > > you may also want to consider configuring the queue to throw away messages > if it > gets too full. > > David Lang > > On Mon, 5 Feb 2024, Alex via rsyslog wrote: > > > I have rsyslog (8.2310.0) in docker container from latest alpine image > as a > > syslog collector with forwarding to logstash.local and rabbitmq.local > > > > Rsyslog stops working when rabbitmq is unavailable and work fine when > > rabbitmq server is up > > > > How to configure rsyslog to work when the destination is unavailable ? > > > > > > module(load="omrabbitmq") > > module(load="imptcp" threads="3") > > input(type="imptcp" port="514" ruleset="syslogCollector") > > > > template( > > name="json_syslog" > > type="list" > > option.json="on" > > ) { > > constant(value="{") > > constant(value="\"@timestamp\":\"") > > property(name="timereported" dateFormat="rfc3339") > > constant(value="\",\"type\":\"syslog_json") > > constant(value="\",\"tag\":\"") > > property(name="syslogtag" format="json") > > constant(value="\",\"relayhost\":\"") property(name="fromhost") > > constant(value="\",\"relayip\":\"") property(name="fromhost-ip") > > constant(value="\",\"logsource\":\"") property(name="source") > > constant(value="\",\"hostname\":\"") property(name="hostname" > > caseconversion="lower") > > constant(value="\",\"program\":\"") property(name="programname") > > constant(value="\",\"source\":\"") property(name="app-name" > > caseConversion="lower" onEmpty="null") > > constant(value="\",\"priority\":\"") property(name="pri") > > constant(value="\",\"severity\":\"") > > property(name="syslogseverity" caseConversion="upper") > > constant(value="\",\"facility\":\"") > property(name="syslogfacility") > > constant(value="\",\"severity_label\":\"") > > property(name="syslogseverity-text") > > constant(value="\",\"facility_label\":\"") > > property(name="syslogfacility-text") > > constant(value="\",\"message\":\"") property(name="msg" > format="json") > > constant(value="\",\"end_msg\":\"") > > constant(value="\"}\n") > > } > > > > ruleset( > > name="syslogCollector" > > ) { > > @@elk.local:5000;json_syslog > > call send2mqtt > > } > > > > ruleset ( > > name="send2mqtt" > > > > queue.type="LinkedList" > > queue.size="1024" > > queue.dequeueBatchSize="512" > > queue.filename="q_mqtt" > > queue.saveonshutdown="off" > > queue.highwatermark="450" > > queue.lowwatermark="50" > > > > ) { > > action( > > type="omrabbitmq" > > host="rabbitmq.local" > > verify_peer="off" > > verify_hostname="off" > > virtual_host="/" > > user="xxx" > > password="xxx" > > exchange="syslog" > > routing_key="messages" > > body_template="json_syslog" > > > > action.resumeRetryCount="0" > > action.reportSuspension="on" > > action.reportSuspensionContinuation="on" > > action.resumeInterval="10" > > ) > > } > > _______________________________________________ > > rsyslog mailing list > > https://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 > https://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 https://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.