我使用的是 Android 13,并使用一个应用程序(不是我的应用程序)来生成包含数万行的 csv 日志文件。我试图以最简单、最高效的方式将这些日志条目发送到我的中央日志服务器。
我当前的解决方案是 termux 中的 bash 脚本,它逐行读取 csv 文件,并将该行通过管道传输到 netcat,netcat 将具有指定源端口的条目发送到日志服务器。
问题是 netcat 非常慢,每秒运行大约 10 个数据包(如 RFC 5426 中,每个数据包一条日志消息)。这意味着 10,000 行可能需要 15 分钟以上才能通过网络发送一个日志文件。我已经在类似的网络条件下测试了 rsyslog 的限制,它每秒可以处理 5,000 到 15,000 个数据包(日志文件有数十万行)。
显然,这不是最优方案。我的另一个想法是使用网络共享并将整个 csv 日志文件放入日志服务器可以访问的文件夹中。然后让日志服务器有一个脚本来使用 rsyslog 处理该文件。这性能更高,但设置更复杂,并且依赖于额外的设备、脚本,并在我的网络中创建相当不必要的通信通道。
对于非 root android 将日志文件发送到远程系统日志服务器的最佳(简单且高性能)解决方案是什么?