Summary
How can I use a remote admin tool (puppet or chef) combined with a sync tool (e.g. rsync) and scheduler (cron) to send log files from several servers to a central server?
Context
Our sysadmins have (rightly) tightened up developer access to production servers. One consequence: developers in particular will no longer have easy access to log files when supporting customer problems.
Goal: Send Files to Common Log Server
I'd like to set up automatic copying of logs to a central "log server". Developers/support would have read access to the 'log server' filesystem when supporting problems.
Here's an example of our filesystem structure. One directory per customer. Within this, one directory per application. Each application has different sub-directory structure and log file names.
Server A
d:/
Instances/
CustomerFoo
App 101/
logs
server.log
access.log
App 201/
logs
stdout.log
jdbc.log
timing.log
CustomerBar/
App 101/
....
App 301/
logs/
monitor.log
These would go to a central server with a structure like this. (Customer name is unique within the enterprise so we will not have any collision)
LogServer
d:/
logfiles/
CustomerFoo
App 101/
logs/
App 201/
logs/
...
CustomerBar/
App 101/
....
App 301/
logs/
Desired outcome
- I'd like a combination of a remote admin tool (puppet or chef) combined with a sync tool (rsync) and scheduler (cron) to do periodic syncing
- Easy remote administration for multiple boxes. i.e. edit the 'config file' in one place and push it out to all the servers.
Environment
- Windows Server 2008
- Windows shop. However open to installing cygwin.
- I personally am familiar with rsync and cron, but neither puppet nor chef. fwiw.
Thanks in advance!