Hi,
I'm considering using rsyslog to replace the custom logging system of a
distributed program, and I had some questions about how to do this, and whether
my tentative design is reasonable. Assume all machines are running a recent
rsyslog (>= 5.6) on Linux.
We use logging for system monitoring and performance, not for security.
I plan to use the rsyslog time stamps to calculate the time through our
system.
The program runs on several clusters, and consists of numerous
services/processes. For concreteness, let's just look at one cluster,
and give each machine on it a name like cluster_01, cluster_02, etc.
I'd like to designate two machines in each cluster as being the log
servers; two to provide some redundancy for failures. Let cluster_01
and cluster_02 be the logging servers. There are about 20 machines
per cluster, so two logging servers will collect for about 18 machines,
each of which is running about 6 (six) services that we log events from.
The services get 50 - 100 requests/second, all have 1Gbps Ethernet links
into the same switch and disks that are fast enough to easily deal with
the write bandwidth needed.
I'd like the log messages from each service on each machine to go to a
log files something like this
cluster_01:/var/log/cluster_03
--cluster_04
.
.
.
--cluster_nn
cluster_01:/var/log/cluster_03/service1/log
--service5/log
--service7/log
First question, does this make sense? Both as an explanation of what I'm
trying to do, and as a reasonable logging architecture?
Second question. What should my rsyslog.conf look like on each machine?
On the logging servers, I'd like all messages not from the server machine
to be stored in the log file with path determined from hostname, service name,
and pid, say. I may need more info later to assure that I can trace the path
of messages more easily, but this should be sufficient for starters. I'd
prefer that the conf files do not hardcode the names of the other machines
on themselves. On the cluster machines running the services, I'd like the
conf files to all be exactly the same, so they may refer to the logging
servers by name but not themselves. I has been very slow going for me trying
to figure out the syntax to do all of this. I looked at the example conf files,
and I was able to use expression based filters to get some of the way there
but I think everything I described should be doable with rsyslog.
Third, are there any subtle issues I should be thinking about here. For
example, since I'd like to use the log messages to calculate the performance
of the services, do I need to introduce some extra time stamps in the message
flow or are the rsyslog generated timestamps enough?
-- Brian
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com