2009-09-08 29 views
8

Tôi đang cố gắng tạo trang web PHP gửi thông tin qua SNMP. Tôi đã đọc tất cả về SNMP, nhưng tôi vẫn còn một chút không biết gì về nơi để bắt đầu.Tạo trang web PHP gửi thông tin SNMP đến ứng dụng quản lý mạng

Tôi tin rằng tôi cần tạo MIB với tất cả các OID mà trang web của tôi sẽ sử dụng để gửi thông tin. Điều này có đúng không? Làm thế nào và ở đâu tôi có thể xác định các biến (OID)? Ai đó có thể chỉ cho tôi đi đúng hướng?

Tôi đang sử dụng FreeBSD trên máy chủ.

Xin cảm ơn trước.

+0

Bạn đang cố gắng để quá trình PHP của bạn lắng nghe các yêu cầu nhận đối tượng SNMP hay bạn đang cố gắng gửi nó ra các bẫy SNMP? – derobert

+0

Thực ra tôi đang cố đặt giá trị và gửi bẫy. Ví dụ, tôi muốn lấy thời gian thực hiện của trang được yêu cầu và đặt nó trong một SNMP OID và gửi bẫy. Sau đó, ứng dụng quản lý mạng sẽ nhận được bẫy và lưu ý rằng yêu cầu trang đã được thực hiện và mất n giây để tải. – rogeriopvl

Trả lời

4

Điều bạn đang cố gắng thực hiện là gửi "bẫy SNMP". Bạn không cần phải xác định một MIB nhất thiết. Một MIB chỉ dịch một tên "bán thân thiện với con người" thành một OID, chẳng hạn như SNMPv2-MIB :: sysContact.0 thành .1.3.6.1.2.1.1.4.0. Đối với một ứng dụng riêng, bạn về mặt lý thuyết có thể sử dụng bất kỳ OID nào bạn muốn, giống như bạn về mặt lý thuyết có thể sử dụng bất kỳ địa chỉ IP nào bạn muốn cho một mạng riêng không được kết nối với người khác. Tôi không chắc liệu có một nhánh OID "riêng" được ưu tiên hay không. Có một số thông tin tốt để bạn bắt đầu tại http://www.paessler.com/support/kb/questions/49/. Có vẻ như PHP không hỗ trợ trực tiếp việc gửi bẫy SNMP, nhưng bạn có thể gọi lệnh "snmptrap".

+0

Câu trả lời của bạn đã cho tôi thông tin giá trị để đi đúng hướng. Cảm ơn. – rogeriopvl

0

Điều tôi biết là SNMP là giao thức trong đó máy chủ gửi yêu cầu giá trị của một OID cụ thể đến thiết bị và sau đó nhận được phản hồi.

Tôi không chắc chắn bạn có thể có một trang web php trả lời cho các gói này.

Thông tin duy nhất tôi đã tìm thấy là PHP có một lớp SNMP client PHP SNMP

Và wikipedia cung cấp cho bạn thông tin chi tiết về SNMP link text

Nhưng tôi vẫn chắc chắn rằng một trang web có thể không hoạt động như một máy chủ SNMP.

+0

PHP có các chức năng socket, vì vậy nó có thể được sử dụng để nghe các yêu cầu SNMP bằng cách tạo một ổ cắm UDP với socket_create. – derobert

+0

Tôi biết rằng PHP có chức năng socket ... nhưng một "trang web" như được hỏi trong câu hỏi không thể tạo ra một vòng lặp chờ đợi để nhận gói UDP .. Nếu câu hỏi là về một chương trình php chạy trong một hộp .. ok! –

1

Có một vài vấn đề:

  • Để có được nhận diện cấp cao nhất của riêng bạn Tôi nghĩ rằng bạn thực sự phải yêu cầu nó ở đâu đó tuy nhiên có một loạt thí nghiệm mà bạn có thể (và có lẽ trả tiền?) sử dụng để kiểm tra. (đây không phải là vấn đề về php, đây là vấn đề/tính năng của snmp)

  • Theo như tôi biết giao thức giả định quy trình nghe trên cổng hoàn toàn khác với cổng http và cũng không sử dụng TCP nhưng UDP. Chỉ cần tạo một trang php theo cách thông thường sẽ không hoạt động.

Một giải pháp có thể là sử dụng mô-đun snmp trong apache (hoặc bất kỳ máy chủ web nào bạn đang sử dụng) cho phép bạn lập trình logic phản hồi trong php. Cảm giác của tôi là hầu hết các công cụ php snmp mà bạn gặp phải trên web không phải về phần đại lý mà là về phần người quản lý.

+0

Có, tôi đã sử dụng mô đun snmp trên Apache. Tôi chỉ cần có thể viết một giá trị OID mỗi khi một trang được yêu cầu. Nhưng đối với điều này tôi tin rằng tôi phải tạo ra "cấu trúc" trong MIB. – rogeriopvl

Các vấn đề liên quan