포트 514의 UDP에서 syslog를 읽으려고합니다. 저는 IdUDPServer를 설치하고 DefaultPort를 514로 설정하고 1024로 BuffeSize를 설정합니다. 이 syslog는 Cisco 방화벽 5505에 의해 생성됩니다.ping을 보내는 중입니다. 내 방화벽이 명령처럼. Ping 192.168.1.100 -t kiwi (syslog 메시지를 모니터링하는 소프트웨어)를 실행하면 각 핑에 대해 2 개의 메시지가 표시됩니다.델파이에서 Cisco 방화벽의 syslog 메시지를 완전히받는 방법?
퍼센트 ASA-6-302021 : faddr 192.168.1.4/1 gaddr에 대한 분해 ICMP 연결 192.168.1.100/0 LADDR 192.168.1.100/0 % ASA-6-302020 : faddr에 192.168.1.4을위한 내장 인바운드 ICMP 연결/1 gaddr 192.168.1.100/0 laddr 192.168.1.100/0
내 Listener에서 각 핑에 대해 하나의 메시지 만 얻습니다. like % ASA-6-302020 : faddr 192.168.1.4/1 gaddr에 대한 인바운드 ICMP 연결 내장 192.168.1.100/0 laddr 192.168.1.100/0
왜 내가 첫 번째 메시지를 가져올 수 없는지 모르겠다. 내 청취자의 메시지. 는 내가 무엇을해야 IdUDPServer
procedure TMyTestOnSyslog.Listener514UDPRead(
AThread: TIdUDPListenerThread; AData: TBytes; ABinding: TIdSocketHandle);
var S:string;
i:Integer;
begin
S:='';
for i := 0 to High(AData) do
S:=S+chr(Adata[i]);
...
end;
의 OnRead 이벤트에이 같은 내 코드를 작성? : D
난 내 코드로 해결하고 테스트 해보십시오. 내 목록에 302021 오류 메시지가 표시되지만이 시간에는 302020이 없습니다! 나는이 두 메시지가 IdUDPServer가 둘 다 읽을 수 없기 때문에 같은 시간에 왔기 때문에 나는 생각한다. 하지만 어떻게 해야할지 모르겠다. – Loghman
대신 'TIdSysLogServer'를 사용해보십시오. 기본적으로 포트 514에서 수신 대기하는 특수 구성 요소입니다. 새 메시지가 수신 될 때마다 OnSysLog 이벤트를 트리거합니다. 시스코 방화벽을 설정하여 응용 프로그램이 실행중인 시스템의 IP 주소로 SysLog 메시지를 전달할 수 있습니다. – LightBulb
문제는 TIdSysLogServer 자체가 TIdUDPServer에서 상속된다는 것입니다. 필자는 TIdSysLogServer를 테스트하여 동일한 결과를 얻었습니다. : – Loghman