知识卡片

syslog转发的TCP与UDP取舍

专业/工作 · 1219.l

内容

把日志从服务器转发到远端时,UDP和TCP各有支持者:UDP不需要确认握手,理论上能在服务器彻底崩溃前送出”最后一口气”的日志;TCP则能加密传输(TLS依赖TCP)并保证日志条目不丢失。多数情况下更该选TCP:一是”最后一口气”这种边缘场景的实际价值有限,该优先解决真正常遇到的问题,而不是为小概率的极端情况设计整套方案;二是日志丢失本身就是不可接受的代价,尤其在使用SaaS日志服务时,加密传输几乎是必需项。发散:这和[[StatsD为何选择UDP作为传输协议]]形成有趣的对照——同样是”要不要用UDP换取更低开销/更好的极端情况表现”,指标数据允许偶尔丢一个点问题不大,日志数据一旦丢失往往意味着永久丢失排障线索,取舍的关键在于数据丢失的实际代价有多大。

参考来源

《监控运维实践 原则与策略-2021》第8章《服务器监控》