In message
<d1d7356b80a8f64c89977a9b0c496118025...@msgexsil1115.ent.wfb.bank.co
rp>, ward.p.fonte...@wellsfargo.com writes:

> I currently have three applications logging to the same log server -
> though the logs are in different locations for each, and I have a
> working configuration for one of the environments that I'd like to
> implement across all of them. Can I simply start three instances of
> sec with the configuration files specific to each application
> instance or is there a more correct way of doing this?

Am I correct in assuming you have three instances of the same
application logging to a single log server and the output for each
application is placed in a different log file?

If so you can certainly run three instances of SEC and change the
input option so each SEC instance is watching one log file.

Depending on your rules however you may be able to use just one
instance of SEC with three input arguments (one for each of the three
log files). This may be easier if you use the --nojointbuf option to
SEC as well.

However there are two issues with logging multiple instances of a
program into a single SEC instance.

  1) lines from different program instances may trigger pair, threshold
     and other correlation rules by accident.

  2) conflicts in correlation descriptions or context names

Let's say you had a SingleWithThreshold rule set to trigger if more
that 4 "BADEVENT" lines were seen in the input in a minute.

Lets says that each of the three instances was emitting "BADEVENT"
lines at a rate of 2/minute. You would end up trigering your rule
despite each instance opetbrating acceptably. Now if your
SingleWithThreshold counted "<hostname> BADEVENT" lines[1] and each
instance ran on a separate host you would properly count 2
events/second for each of three different instances and you would not
trigger the rule.

 [1] you would use a regexp to extract the hostname (or other instance
     identifier) and put the hostname value in the description (desc)
     of the SingleWithThrehold rule.

Similarly you can create/delete/check contexts that are missing the
instance information and end up looking at a context that was
extablished by a different instance.

If all you use are single, ignore etc statements that have only one
pattern and don't live for a period of time and don't use contexts you
should be ok regardless of how you wrote your rules. If you used pair,
*window*, *threshold* etc rules or use contexts and you didn't used
unique instance identifying info, I would go with running three SEC
processes.

If you set up your rules to handle multiple event streams, you can get
the advantages in monitoring (only one process to check) and setup
that comes with running one SEC process. You may find that one SEC
process is more efficient as well (fewer context switches, reduced
memory use ...) but running multiple processes can increase your
throughput if you have thousands of events/sec as SEC isn't threaded
so running multiple processes allows parallel processing of the event
streams.

Hopefully the above is useful to you.

Have a good day.

--
                                -- rouilj
John Rouillard
===========================================================================
My employers don't acknowledge my existence much less my opinions.

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Simple-evcorr-users mailing list
Simple-evcorr-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/simple-evcorr-users

Reply via email to