1
jatesun 2016-03-07 11:09:09 +08:00
考虑用开源的不?开源的话 elk 不错的,收集,分析,存储,查看,报表啥的功能都有
|
2
mhycy 2016-03-07 11:27:26 +08:00
采到是啥就发啥,注意 TCP 的拥塞问题, UDP 的丢包问题。在某些状态下二者都不靠谱,每次新建连接的开销务必考虑,缓存队列务必考虑超时问题。
原则是:不给应用服务器增加负担. 至于处理系统,原始数据先记录,分析处理开另一个任务处理。 用处理时间换日志完整性. |
3
lecher 2016-03-07 11:48:02 +08:00 via Android
如果日志分析的实时性要求不高,同步文件异步处理。这样可以避免日志的峰值。新增文件提醒上, Linux 有 inotify 这个事件可以监听,文件的增删改都可以监听到。但最好把分析入库的处理另外开定时任务处理,没必要实时监控。
如果一定要实时处理日志,用 socket 通信要在客户端和服务端都做好异常处理重发重连的检测,这个部署调试的成本会比文件同步的大。 |
5
slixurd 2016-03-07 13:20:03 +08:00
TCP 的拥塞问题是个大问题,我们就试过用 Log4J 的 AsyncSocketAppender 发 socket 到其他机器的 logstash 结果把本机搞挂了没法接受 HTTP 请求。
|
6
SparkMan 2016-03-07 18:31:54 +08:00
为什么用 XML ,浪费带宽不说还麻烦,直接序列化啊,采集的数据可以先存到磁盘上,然后再从磁盘上分析后入库。
|