You can also have a look here - came in co-incidentely (or was it you?
;-)): 
https://unix.stackexchange.com/questions/439286/how-to-set-and-use-constants-in-rsyslog-rainerscript/

Rainer

2018-04-24 12:56 GMT+02:00 Rainer Gerhards <[email protected]>:
> Looking at your script, I wonder why you make it so complicated. You
> replace the local variable via sed anyway. Why not simply replacing
> the name inside the action target?
>
> Rainer
>
> 2018-04-24 10:47 GMT+02:00 putcha narayana <[email protected]>:
>> Hello Rainer,
>>
>>
>> I shared an example of the mechanism i planned to employ. I understand that
>> my mechanism cannot be achieved with the current rsyslogd. There is no hard
>> and fast rule to only use the mechanism i shared.
>>
>>
>> I will be happy to employ an alternate working mechanism. Now that my end
>> goal is clear, please share some example for the alternate methods, i will
>> employ them.
>>
>>
>> Appreciate your help.
>>
>>
>> Thanks and Regards
>>
>> Lak.
>>
>>
>> ________________________________
>> From: Rainer Gerhards <[email protected]>
>> Sent: Tuesday, April 24, 2018 8:43 AM
>> To: putcha narayana
>> Cc: rsyslog-users; David Lang
>>
>> Subject: Re: [rsyslog] Urgent, need help with correct usage of local
>> variables in an action
>>
>> Well, there are ways to do this, just not like you want ;-)
>>
>> Environment variables and files is the way to go.
>>
>> Rainer
>>
>> Sent from phone, thus brief.
>>
>> putcha narayana <[email protected]> schrieb am Di., 24. Apr. 2018,
>> 10:32:
>>
>> I believe it will be a good useful feature to allow users to define
>> local/global variables so that update in individual conf file or one place
>> update of global variables will enable configuring the external server IP
>> and Port.
>>
>>
>> I plan to use a static IP in the .66-MgmtMsgsLogging.conf.
>>
>> When IP and Port are updated then using the script i will replace them.
>>
>> When enable option is given then the comment in front of action will be
>> removed.
>>
>> To disable add the # back.
>>
>>
>> #action(type="omfwd" Target="10.10.10.10" Port="0" Protocol="udp"
>> Template="ForwardFormat")
>> #action(type="omfwd" Target="11.11.11.11" Port="0" Protocol="udp"
>> Template="ForwardFormat")
>>
>>
>> Thanks and Regards
>>
>> Lak.
>>
>>
>>
>>
>>
>> ________________________________
>> From: Rainer Gerhards <[email protected]>
>> Sent: Tuesday, April 24, 2018 8:23 AM
>> To: rsyslog-users
>> Cc: David Lang; putcha narayana
>> Subject: Re: [rsyslog] Urgent, need help with correct usage of local
>> variables in an action
>>
>> Of you insist on using local variables, the answer is: no, this does not
>> work.
>>
>> Rainer
>>
>> Sent from phone, thus brief.
>>
>> putcha narayana via rsyslog <[email protected]> schrieb am Di., 24.
>> Apr. 2018, 10:08:
>>
>> Hi,
>>
>>
>> I am not requesting for script to update the config file. I have already
>> implemented that. I have attached the shell script and a sample config file.
>>
>>
>> I am seeking help w.r.t the config file with a provision to use local
>> variables so that they can be updated/configurable by user.
>>
>>
>> Thanks and Regards
>>
>> Lak.
>>
>>
>> ________________________________
>> From: David Lang <[email protected]>
>> Sent: Tuesday, April 24, 2018 6:59 AM
>> To: putcha narayana
>> Cc: David Lang; putcha narayana via rsyslog
>> Subject: Re: [rsyslog] Urgent, need help with correct usage of local
>> variables in an action
>>
>> This cannot be done inside rsyslog, you would need to use some external
>> software
>> (puppet, chef, salt, ansible, or even just sed) to change the config file
>> and
>> then start/restart rsyslog
>>
>>   On Tue, 24 Apr 2018, putcha narayana wrote:
>>
>>> Date: Tue, 24 Apr 2018 06:47:03 +0000
>>> From: putcha narayana <[email protected]>
>>> To: David Lang <[email protected]>,
>>>     putcha narayana via rsyslog <[email protected]>
>>> Subject: Re: [rsyslog] Urgent,
>>>     need help with correct usage of local variables in an action
>>>
>>> Hi,
>>>
>>>
>>> In our design we have a GUI where operator can configure the IP and Port
>>> of the remote syslog server. Operator can enable or disable streaming to the
>>> configured IP and Port using a flag.
>>>
>>>
>>> In the backend we will consume the configuration made by the operator and
>>> prepare the required configuration file to stream logs to the configured
>>> remote syslog server (Identified by IP and Port).
>>>
>>>
>>> 1) In the design i chose, I plan to have initial config files prefixed
>>> with '.' so that those config files will not be read by rsyslogd.
>>>
>>> Example config file is enclosed below.
>>>
>>> 2) When operator configures the IP, Port, then a script will be invoked in
>>> the background which will update the initial set of lines that define the
>>> local variables. Say set $.IPADDRESS1 = ""; will be updated as set
>>> $.IPADDRESS1 = "10.10.100.200";
>>>
>>> 3) Config file updated will be saved without the '.' prefix. restarting
>>> rsyslod will/should apply the configuration (i.e., stream logs to remote
>>> syslog server 10.10.100.200.
>>>
>>>
>>> Example config file with 2 remote syslog servers for illustration purpose:
>>>
>>> set $.IPADDRESS1 = "";
>>> set $.IPADDRESS2 = "";
>>> set $.PORTNUMBER1 = "";
>>> set $.PORTNUMBER2 = "";
>>>
>>> if ($syslogseverity-text == 'info')
>>> then
>>> {
>>> action(type="omfwd" Target="$.IPADDRESS1" Port="$.PORTNUMBER1"
>>> Protocol="udp" Template="ForwardFormat")
>>> action(type="omfwd" Target="$.IPADDRESS2" Port="$.PORTNUMBER2"
>>> Protocol="udp" Template="ForwardFormat")
>>> stop
>>> }
>>>
>>>
>>> Please guide me if the same can be achieved using alternate mechanisms.
>>>
>>>
>>> thanks and regards
>>>
>>> Lak.
>>>
>>>
>>>
>>> ________________________________
>>> From: David Lang <[email protected]>
>>> Sent: Tuesday, April 24, 2018 5:36 AM
>>> To: putcha narayana via rsyslog
>>> Cc: Rainer Gerhards; putcha narayana
>>> Subject: Re: [rsyslog] Urgent, need help with correct usage of local
>>> variables in an action
>>>
>>> target and port cannot be variables, variables can only be used where they
>>> are
>>> explicitly allowed (almost entirely in templates)
>>>
>>> let's back up a bit and ask what you are trying to do rather than why this
>>> specific approach doesn't work.
>>>
>> _______________________________________________
>> 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.

Reply via email to