Ubuntu의 PHP 데몬에 SNMP 트랩 패킷 전달

Ubuntu의 PHP 데몬에 SNMP 트랩 패킷 전달

들어오는 SNMP 트랩을 수집하는 Ubuntu 서버가 있습니다. 현재 이러한 트랩은 PHP 스크립트를 사용하여 처리되고 기록됩니다.

문서/etc/snmp/snmptrapd.conf

traphandle default /home/svr/00-VHOSTS/nagios/scripts/snmpTrap.php

이 스크립트는 비교적 길며 많은 데이터베이스 작업을 포함합니다. 일반적으로 서버는 하루에 수천 개의 트랩을 수신하므로 이 스크립트는 과도한 CPU 시간을 소비합니다. 제가 이해한 바에 따르면 이는 트랩이 수신될 때마다 PHP 스크립트의 시작 비용이 높기 때문입니다.

나는 이 스크립트를 다시 작성해 달라는 요청을 받았으며 이 스크립트를 데몬으로 실행하는 것을 고려하고 있습니다. 우분투 데몬을 생성할 수 있습니다. 제 질문은 snmptrapd.conf파일을 사용하여 이 데몬에 트랩 핸들러를 어떻게 전달할 수 있느냐는 것입니다.

미리 감사드립니다.

답변1

귀하의 질문으로 인해 실제로 혼란스럽기는 하지만 snmptrapd 서비스를 처리하기 위해 더 이상 PHP 스크립트를 사용해서는 안 된다고 생각합니다.

문서(/etc/snmp/snmptrapd.conf) 이불SNMP 트랩이 서비스는 원하는 모든 실행 수준(3, 4, 5)에서 활성화할 수 있으며 MySQL에 트랩을 기록하도록 구성할 수 있으므로 별도의 데몬을 만들 필요가 없습니다.

반면에, PHP 인터프리터를 초기화하고 SNMP, MySQL 및 기타 확장을 로드하여 트랩을 처리하는 것보다 작은 쉘 스크립트가 더 효율적일 수 있습니다. 여기 하나 있어요간단한 예, 데이터베이스 처리를 추가해야 하지만(내완료).

그렇긴 하지만, 여전히 PHP를 사용하여 솔루션을 구현하고 싶다면 사용 가능한 솔루션을 살펴봐야 할 것입니다.PHP용 SNMP 확장

관련 정보