我有一个简单地logging到文件的应用程序。 我打算在云上部署这个应用程序。 如果我在AmazonEC2实例(多个)上部署它,我想要监视每个实例的日志。 某些以结构化方式显示日志,并在发生严重事件时发出警报的日志。
有任何想法吗 ?
ps:如果这是一个重复的问题,请随时在这里链接这个问题
我正在使用syslog-ng,你可以在你的本地机器上configurationsyslog-ng来从目标文件中读取数据(或者你可以把你的应用程序logging到系统日志中),然后把它发送到所有日志要么合并成一个,要么分成不同的文件,甚至是一个目录结构。
在客户端
source yourservice { file("/var/log/xxx.log" follow_freq(1) flags(no-parse)); }; destination yourcollector { tcp("xx.xx.xx.xx" port(65140)); }; log { source(yourservice); destination(yourcollector); };
然后在收集器服务器上
source yourservice { tcp(port(65140) keep-alive(yes)); }; destination yourservice_dir { file("/var/log/yourservice/$YEAR/$MONTH/yourlog-$YEAR-$MONTH-$DAY" create_dirs(yes) template("$MESSAGE\n") template_escape(no));}; log { source(yourservice); destination(yourservice_dir); };
您可以更改目标上的参数以添加或删除variables,以将其分成一个或多个日志