저는 Android 13을 사용하고 있으며 내 앱이 아닌 앱을 사용하여 수만 줄이 포함된 csv 로그 파일을 생성하고 있습니다. 저는 가능한 가장 간단하고 효율적인 방법으로 이러한 로그 항목을 중앙 로그 서버로 보내려고 합니다.
내 현재 솔루션은 csv 파일을 한 줄씩 읽고 지정된 소스 포트가 있는 항목을 로그 서버로 보내는 netcat으로 라인을 파이프하는 termux의 bash 스크립트입니다.
문제는 netcat이 초당 약 10개의 패킷(RFC 5426에서와 같이 패킷당 하나의 로그 메시지)을 실행하여 매우 느리다는 것입니다. 이는 행이 10,000개인 로그 파일을 네트워크를 통해 전송하는 데 15분 이상 걸릴 수 있음을 의미합니다. 비슷한 네트워크 조건에서 rsyslog의 한계를 테스트해 본 결과 초당 5,000~15,000개의 패킷(수십만 줄의 로그 파일)을 처리할 수 있습니다.
분명히 이것은 최적의 솔루션은 아닙니다. 제가 가진 또 다른 아이디어는 네트워크 공유를 사용하고 전체 csv 로그 파일을 로그 서버에 액세스할 수 있는 폴더에 넣는 것이었습니다. 그런 다음 로그 서버에 rsyslog를 사용하여 파일을 처리하는 스크립트가 있습니다. 이는 성능이 더 뛰어나지만 설정이 더 복잡하고 추가 장치, 스크립트에 의존하며 네트워크에 상당히 불필요한 통신 채널을 생성합니다.
루트가 아닌 안드로이드가 원격 syslog 서버에 로그 파일을 보내는 가장 좋은(간단하고 성능이 뛰어난) 솔루션은 무엇입니까?