Nhận SNMP Python

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

đầu ra. ['27', '27', '25', '27', '27', '27', '24', '27', '25', '18', '4', '27', '

Tập lệnh đầu tiên [pysnmp] trả về NoSuchInstance. Tập lệnh thứ hai [netsnmp] trả về danh sách các cổng nhưng không có mac và vlan. Có gì sai?

SNMP, viết tắt của Simple Network Management Protocol, là công cụ cần thiết cho SDN và là lựa chọn tốt nhất để điều khiển thiết bị trong phần mềm. Ngoài ra, truy cập trong ứng dụng là mục đích chính của SNMP. Không còn nghi ngờ gì nữa, tất cả các hệ thống giám sát đều sử dụng SNMP để giám sát và kiểm soát các máy chủ và thiết bị mạng. Có sức mạnh to lớn này đến từ SNMP trong một tập lệnh sẽ thật tuyệt vời. Do đó, chúng ta sẽ thảo luận về việc sử dụng SNMP bằng ngôn ngữ lập trình Python trong hướng dẫn này

Nhưng trước khi bắt đầu, chúng ta hãy thảo luận về SNMP

Hiểu về SNMP

SNMP, còn được gọi là Giao thức quản lý mạng đơn giản, là một cách tiêu chuẩn để giao tiếp giữa máy chủ quản lý và thiết bị từ xa, tác nhân. Mục tiêu của SNMP là để người quản lý hiểu [hoặc thậm chí thay đổi] dữ liệu về tác nhân. Đối với Instance, người quản lý có thể kiểm tra giao diện nào đang hoạt động và giao diện nào đang hoạt động hoặc thay đổi tên máy chủ của thiết bị từ xa

Tập lệnh của chúng tôi kích hoạt chương trình Python trên trạm quản lý để điều khiển thiết bị từ xa thực thi tác nhân SNMP

Tác nhân SNMP chuẩn bị hầu hết các chi tiết mà người quản lý có thể đọc hoặc thay đổi trong một bảng đặc biệt, MIB. MIB là một cấu trúc dạng cây, trong đó một số sẽ biểu thị từng nút trong cây. Ví dụ, 1. 3. 6. 1. 2. 1. 1 biểu thị mô tả của hệ thống. Nếu một số người trong chúng ta thắc mắc chuỗi số này đến từ đâu, thì đây là toàn bộ cấu trúc cây. Mỗi số liên kết với một tên. Do đó, chúng ta có thể dịch điều đó thành một iso giải thích hơn. tổ chức. dod. Internet. mgmt. mib-2. hệ thống. sysDescr

Bây giờ, chúng ta hãy thảo luận về việc sử dụng SNMP trong ngôn ngữ lập trình Python với sự trợ giúp của mô-đun Python PySNMP

Hiểu mô-đun PySNMP

PySNMP là một mô-đun mã nguồn mở dành cho Python. Không giống như telnet hoặc HTTP, Python không triển khai SNMP. Xét cho cùng, chỉ các kỹ sư hệ thống và mạng sẽ yêu cầu một nhà phát triển Python tại nhà máy. PySNMP thực hiện rất tốt việc khắc phục tình trạng thiếu Python bản địa. Nói chung, mô-đun PySNMP cho phép chúng tôi sử dụng bất kỳ phiên bản SNMP nào, với tư cách là tác nhân hoặc người quản lý. Tạo một tác nhân ngụ ý rằng chúng tôi đang xây dựng một ứng dụng hoặc một thiết bị. Tuy nhiên, chúng tôi sẽ chỉ thảo luận về việc sử dụng PySNMP trong việc quản lý thiết bị từ xa

Hơn nữa, chúng ta sẽ hiểu các chức năng khác nhau của PySNMP trong Python. Mục tiêu chính của hướng dẫn này là tạo một chương trình python nhanh có thể giúp chúng ta thực hiện mọi việc dễ dàng. Trong chương trình, chúng tôi sẽ có tất cả các hoạt động của SNMP mà chúng tôi yêu cầu

Vì vậy, chúng ta hãy bắt đầu

Chuẩn bị môi trường

Trước hết, chúng ta phải cài đặt mô-đun PySNMP. Chúng ta có thể sử dụng trình cài đặt pip để cài đặt mô-đun cần thiết với sự trợ giúp của lệnh sau

cú pháp

Mô-đun sẽ được cài đặt trong hệ thống dưới dạng phiên bản Python và pip

Xác minh cài đặt

Để kiểm tra xem module đã được cài đặt đúng vào hệ thống hay chưa, chúng ta có thể thử import module và thực hiện chương trình

Khi quá trình cài đặt hoàn tất, hãy tạo một tệp Python mới và nhập cú pháp sau vào đó

Thí dụ

Bây giờ, lưu tệp và chạy tệp bằng lệnh sau trong dấu nhắc lệnh

cú pháp

Nếu chương trình chạy mà không gây ra bất kỳ lỗi nhập nào, thì mô-đun đã được cài đặt đúng cách. Nếu không, bạn nên cài đặt lại mô-đun và tham khảo tài liệu chính thức của nó

Hiểu thao tác SNMP Get của Python

Hoạt động Nhận của SNMP cho phép chúng tôi truy xuất giá trị của một đối tượng riêng lẻ trong MIB. Chúng ta cũng có thể sử dụng nó để lấy danh sách các đối tượng riêng lẻ. Chúng ta có thể bắt đầu viết hàm get[] như hình bên dưới

Thí dụ

Giải trình

Từ đoạn mã trên, chúng ta có thể quan sát việc tận dụng API cấp cao của PySNMP. Chúng tôi đã xác định một chức năng đơn giản là get[], trước tiên yêu cầu một mục tiêu [IP hoặc tên thiết bị từ xa]. Sau đó, nó cần danh sách ID đối tượng [oids] mà chúng ta cần lấy và sau đó, một bộ thông tin đăng nhập để xác thực phiên. Chúng tôi cũng có thể chỉ định một cổng UDP riêng biệt nếu cần và sử dụng công cụ SNMP phổ biến hoặc ngữ cảnh tùy chỉnh. Chúng tôi có thể yêu cầu sử dụng cùng một công cụ cho tất cả các hoạt động trên cùng một thiết bị, giúp tiết kiệm tài nguyên. Tuy nhiên, điều này không bắt buộc đối với một đoạn mã đơn giản để chúng ta có thể bỏ qua cả công cụ cũng như ngữ cảnh

Hàm tạo trình xử lý cho phiên SNMP và tìm nạp thông tin chi tiết từ nó. Để thực hiện được điều đó phụ thuộc vào 2 phương thức chúng ta phải tạo. build_object_types và tìm nạp

Xây dựng các loại đối tượng

Như chúng ta đã thảo luận trước đó, có nhiều sức mạnh hơn có nghĩa là phức tạp hơn. Vì vậy, hlapi. hàm getCmd[] yêu cầu một số hlapi đặc biệt. Các đối tượng ObjectType chứ không phải là một danh sách chuỗi OID đơn giản. Do đó, hàm constructor_object_type tạo theo nhu cầu của PySNMP. Chúng ta có thể chỉ cần sao chép và dán nó vào mã nếu chúng ta không có thời gian. Tuy nhiên, đây phải là một chức năng rất đơn giản;

Thí dụ

Giải trình

Đoạn mã trên trả về một danh sách có thể được mở rộng bằng cách thêm * vào trước, như chúng ta đã làm trong phương thức get[]

Đang tìm nạp dữ liệu

Hàm tìm nạp [] là một kiệt tác của Hướng dẫn Python SMP. Nói chung, chúng tôi đã viết nó để có thể tái sử dụng nó cho các chức năng khác dựa trên PySNMP, chẳng hạn như get-bulk. Nó chỉ đơn giản lặp lại trên trình xử lý nhiều lần theo biến đếm. Nếu có bất kỳ lỗi nào được nêu ra, quá trình sẽ bị dừng và thông báo RuntimeError sẽ được trả về. Trong bất kỳ trường hợp nào khác, nó lưu trữ dữ liệu trong danh sách từ điển

Thí dụ

Giải trình

Trong đoạn mã trên, chúng ta đã định nghĩa hàm get_bulk_auto[] và chỉ định biến đếm bằng get[] và trả về hàm get_bulk[]

Làm cách nào để lấy dữ liệu từ SNMP bằng Python?

Sử dụng Python SNMP Nhận hàng loạt & Tự động nhận hàng loạt .
yêu tinh = get_bulk_auto[
'10. 0. 0. 1',
['1. 3. 6. 1. 2. 1. 2. 2. 1. 2', '1. 3. 6. 1. 2. 1. 31. 1. 1. 1. 18'],
hlapi. Dữ liệu cộng đồng ['JAVATPOINT'],
'1. 3. 6. 1. 2. 1. 2. 1. 0']
cho tôi trong ele
cho x, y trong tôi. mặt hàng[]
in["{0} = {1}". định dạng [x, y]]

PySNMP là gì?

PySNMP là việc triển khai công cụ SNMP thuần Python, đa nền tảng . Nó có công cụ SNMP đầy đủ chức năng có khả năng hoạt động trong vai trò Tác nhân/Người quản lý/Người ủy quyền, nói các phiên bản giao thức SNMP v1/v2c/v3 qua IPv4/IPv6 và các phương tiện truyền tải mạng khác. Mặc dù tên của nó, SNMP không thực sự là một giao thức đơn giản.

Cái bẫy SNMP là gì?

Bẫy SNMP là gì? . Không giống như các loại PDU khác, với bẫy SNMP, một tác nhân có thể gửi một tin nhắn không được yêu cầu đến người quản lý để thông báo về một sự kiện quan trọng. a type of SNMP protocol data unit [PDU]. Unlike other PDU types, with an SNMP trap, an agent can send an unrequested message to the manager to notify about an important event.

SNMP và MIB là gì?

Tất cả các trao đổi tin nhắn giữa trạm quản lý và các đại lý của nó diễn ra bằng Giao thức quản lý mạng đơn giản [SNMP] . MIB tại trạm quản lý chứa thông tin quản lý mạng được trích xuất từ ​​MIB của tất cả các thực thể được quản lý trong mạng.

Chủ Đề