Bộ công cụ net-snmp chạy từ máy collector. Ví dụ dùng 192.0.2.1, community $COMM, user SNMPv3 nms01 với mật khẩu lấy từ biến môi trường. Cấu hình SNMPv3 trên thiết bị xem SNMPv3 authPriv; đưa vào Prometheus xem snmp_exporter.
Lệnh cơ bản
| Mục đích | Lệnh |
|---|---|
| Lấy một OID (v2c) | snmpget -v2c -c "$COMM" 192.0.2.1 1.3.6.1.2.1.1.5.0 |
| Lấy OID kế tiếp | snmpgetnext -v2c -c "$COMM" 192.0.2.1 sysName |
| Walk một nhánh | snmpwalk -v2c -c "$COMM" 192.0.2.1 IF-MIB::ifDescr |
| Walk nhanh bằng GETBULK | snmpbulkwalk -v2c -c "$COMM" -Cr25 192.0.2.1 IF-MIB::ifHCInOctets |
| Hiển thị dạng bảng | snmptable -v2c -c "$COMM" 192.0.2.1 IF-MIB::ifTable |
| Dịch tên sang OID số | snmptranslate -On IF-MIB::ifDescr |
| Dịch OID số sang tên | snmptranslate 1.3.6.1.2.1.2.2.1.2 |
| Mô tả một object trong MIB | snmptranslate -Td IF-MIB::ifOperStatus |
| Đổi timeout/retry | snmpget -t 2 -r 1 ... |
SNMPv3
export SNMP_AUTH='***' SNMP_PRIV='***' # lấy từ secret store, không gõ thẳng vào lệnh
snmpwalk -v3 -l authPriv -u nms01 -a SHA -A "$SNMP_AUTH" -x AES -X "$SNMP_PRIV" 192.0.2.1 systemTuỳ chọn hiển thị
| Mục đích | Cờ |
|---|---|
| In OID dạng số | -On |
| Chỉ tên object ngắn | -Os |
| Chỉ giá trị, bỏ type | -Oqv |
Một dòng oid value, dễ parse |
-Oq |
| Nạp mọi MIB đã cài | -m ALL |
| Thêm thư mục MIB riêng | -M +/path/to/mibs |
| Walk bị báo OID không tăng (agent lỗi) | -Cc |
OID hay dùng
| Object | OID | Ghi chú |
|---|---|---|
| sysDescr | 1.3.6.1.2.1.1.1.0 |
Hãng, model, phiên bản OS |
| sysUpTime | 1.3.6.1.2.1.1.3.0 |
Đơn vị 1/100 giây |
| sysName | 1.3.6.1.2.1.1.5.0 |
Hostname |
| ifDescr | 1.3.6.1.2.1.2.2.1.2 |
Tên interface theo ifIndex |
| ifOperStatus / ifAdminStatus | 1.3.6.1.2.1.2.2.1.8 / .7 |
1 up, 2 down |
| ifInErrors / ifOutErrors | 1.3.6.1.2.1.2.2.1.14 / .20 |
Counter 32-bit |
| ifName | 1.3.6.1.2.1.31.1.1.1.1 |
Tên ngắn, ổn định hơn ifDescr |
| ifHCInOctets / ifHCOutOctets | 1.3.6.1.2.1.31.1.1.1.6 / .10 |
Counter 64-bit, dùng thay ifInOctets |
| ifHighSpeed | 1.3.6.1.2.1.31.1.1.1.15 |
Mbps |
| ifAlias | 1.3.6.1.2.1.31.1.1.1.18 |
Description cấu hình trên interface |
| bgpPeerState | 1.3.6.1.2.1.15.3.1.2 |
6 = established (BGP4-MIB, một số hãng dùng MIB riêng) |
Tính băng thông: lấy ifHCInOctets hai lần cách nhau t giây, bps = (v2 - v1) * 8 / t. ifIndex có thể đổi sau reload, nên map theo ifName thay vì hard-code index.
SNMPv2c gửi community dạng rõ qua UDP 161. Chỉ dùng cho lab hoặc mạng quản trị đã giới hạn bằng ACL, môi trường thật nên dùng v3.