armbian系统安装和卸载snmp服务(SNMPV2操作版本)

2023-12-10 02:44

本文主要是介绍armbian系统安装和卸载snmp服务(SNMPV2操作版本),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 说明
  • 基知
  • 干净卸载snmp服务并清除配置文件
  • 安装SNMP
  • SNMPV2远程连接配置
  • 基本设备信息查询
  • 问题
    • Errors were encountered while processing: snmpd
    • Cannot adopt OID……

在这里插入图片描述

说明

  • 由于各位小伙伴,可能在安装过程中出现意外或者其他情况,本文先说明卸载步骤,然后再介绍安装步骤

基知

  • SNMP (Simple Network Management Protocol) 是一种网络管理协议,用于监控和管理网络设备
  • MIB 文件定义了 SNMP 管理信息的结构和属性。
  • armbian上设备SNMP管理的相关软件介绍
    • snmp 是用于在客户端上进行SNMP操作的工具包
    • snmpd SNMP代理服务,用于在服务器上提供SNMP功能(SNMP 的守护进程,负责接收 SNMP 请求并提供相关的网络管理功能
    • snmp-mibs-downloader 是用于下载和安装 SNMP MIB (Management Information Base) 文件的工具。

干净卸载snmp服务并清除配置文件

  1. 停止snmpd服务:

    sudo systemctl stop snmpd
    
  2. 卸载 snmp、snmpd、snmp-mibs-downloader 软件包:

    sudo apt remove --purge snmpd snmp-mibs-downloader
    
  3. 清理残留文件:

    sudo apt autoremove卸载 snmp、snmpd、snmp-mibs-downloader 软件包
    

安装SNMP

  • Armbian 操作系统上安装 SNMP(Simple Network Management Protocol)步骤:
  1. 更新软件包列表:

    sudo apt update
    
  2. 安装 SNMP 相关的软件包:SNMP 客户端工具(snmp)、SNMP 代理服务(snmpd)和 SNMP MIB 文件下载器(snmp-mibs-downloader):

    sudo apt install snmp snmpd snmp-mibs-downloader
    
  3. 安装完毕后,SNMP服务将自动启动。

    sudo systemctl status snmpd
    
  4. 配置 SNMP 代理服务:默认情况下,SNMP 代理服务已经自动配置好。配置文件位于 /etc/snmp/snmpd.conf

    sudo vim /etc/snmp/snmpd.conf
    

SNMPV2远程连接配置

  • 修改SNMP配置文件以允许接受使远程主机使用public社区字符串,连接并具有整个MIB的读写权限:
  1. 打开SNMP配置文件:

    sudo vim /etc/snmp/snmpd.conf
    
  2. 修改agentaddress 127.0.0.1,[::1]或者#agentAddress udp:161,udp6:[::1]:161,最终将其修改为agentAddress udp:161,udp6:[::1]:161

    agentAddress udp:161,udp6:[::1]:161
    #rocommunity public localhost
    
  3. 把public社区字符串的权限从只读(“rocommunity”)改为读写(“rwcommunity”),找到以下两行:

    rocommunity  public default -V systemonly
    rocommunity6 public default -V systemonly
    
  4. 将这两行修改为:

    rwcommunity public
    rwcommunity6 public default -V systemonly
    
  5. 保存并关闭文件。

  6. 重启SNMP服务以使配置更改生效:

    sudo systemctl restart snmpd
    

  • 以下是我的设备修改后的配置文件内容,小伙伴们可以参考一下:
###########################################################################
#
# snmpd.conf
# An example configuration file for configuring the Net-SNMP agent ('snmpd')
# See snmpd.conf(5) man page for details
#
###########################################################################
# SECTION: System Information Setup
## syslocation: The [typically physical] location of the system.
#   Note that setting this value here means that when trying to
#   perform an snmp SET operation to the sysLocation.0 variable will make
#   the agent return the "notWritable" error code.  IE, including
#   this token in the snmpd.conf file will disable write access to
#   the variable.
#   arguments:  location_string
sysLocation    Sitting on the Dock of the Bay
sysContact     Me <me@example.org># sysservices: The proper value for the sysServices object.
#   arguments:  sysservices_number
sysServices    72###########################################################################
# SECTION: Agent Operating Mode
#
#   This section defines how the agent will operate when it
#   is running.# master: Should the agent operate as a master agent or not.
#   Currently, the only supported master agent type for this token
#   is "agentx".
#   
#   arguments: (on|yes|agentx|all|off|no)master  agentx# agentaddress: The IP address and port number that the agent will listen on.
#   By default the agent listens to any and all traffic from any
#   interface on the default SNMP port (161).  This allows you to
#   specify which address, interface, transport type and port(s) that you
#   want the agent to listen on.  Multiple definitions of this token
#   are concatenated together (using ':'s).
#   arguments: [transport:]port[@interface/address],...# agentaddress  127.0.0.1,[::1]
agentAddress udp:161,udp6:[::1]:161###########################################################################
# SECTION: Access Control Setup
#
#   This section defines who is allowed to talk to your running
#   snmp agent.# Views 
#   arguments viewname included [oid]#  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1# rocommunity: a SNMPv1/SNMPv2c read-only access community name
#   arguments:  community [default|hostname|network/bits] [oid | -V view]# Read-only access to everyone to the systemonly view
#rocommunity  public default -V systemonly
#rocommunity6 public default -V systemonly
#rwcommunity public default -V systemonly
rwcommunity public 
rwcommunity6 public default -V systemonly# SNMPv3 doesn't use communities, but users with (optionally) an
# authentication and encryption string. This user needs to be created
# with what they can view with rouser/rwuser lines in this file.
#
# createUser username (MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224) authpassphrase [DES|AES] [privpassphrase]
# e.g.
# createuser authPrivUser SHA-512 myauthphrase AES myprivphrase
#
# This should be put into /var/lib/snmp/snmpd.conf 
#
# rouser: a SNMPv3 read-only access username
#    arguments: username [noauth|auth|priv [OID | -V VIEW [CONTEXT]]]
rouser authPrivUser authpriv -V systemonly
  • 同时可以看到,联系人和位置也是配置在这里的!!

基本设备信息查询

  • 在本机使用SNMP工具查询本机的基本信息:
  1. 安装SNMP工具:首先,确保已经安装了SNMP工具。可以使用以下命令在Linux系统上进行安装:
    sudo apt-get update
    sudo apt-get install snmp
    
  2. 查询系统基本信息:使用SNMP工具的snmpget命令来查询系统的基本信息。下面是一些常用的OID(对象标识符)和对应的基本信息查询命令示例:
  • 查询系统描述:

    snmpget -v 2c -c public localhost SNMPv2-MIB::sysDescr.0
    
  • 查询系统名称:

    snmpget -v 2c -c public localhost SNMPv2-MIB::sysName.0
    
  • 查询系统联系人:

    snmpget -v 2c -c public localhost SNMPv2-MIB::sysContact.0
    
  • 查询系统位置:

    snmpget -v 2c -c public localhost SNMPv2-MIB::sysLocation.0
    
  • 这些命令中的-v 2c表示使用SNMP版本2c,-c public表示使用默认的SNMP共同体字符串(通常为public)。localhost表示查询本地主机,也可以使用主机的IP地址进行查询。

    root@armbian:~# snmpget -v 2c -c public localhost SNMPv2-MIB::sysDescr.0
    SNMPv2-MIB::sysDescr.0 = STRING: Linux armbian 6.1.27-ophub #1 SMP Mon May  1 13:03:40 EDT 2023 aarch64
    root@armbian:~# snmpget -v 2c -c public localhost SNMPv2-MIB::sysName.0
    SNMPv2-MIB::sysName.0 = STRING: armbian
    root@armbian:~# snmpget -v 2c -c public localhost SNMPv2-MIB::sysContact.0
    SNMPv2-MIB::sysContact.0 = STRING: Me <me@example.org>
    root@armbian:~# snmpget -v 2c -c public localhost SNMPv2-MIB::sysLocation.0
    SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay
    
    • 系统的位置信息为"Sitting on the Dock of the Bay"。通常情况下,这个值是由系统管理员设置的,用于指示系统所在的位置。它可以是一个具体的地理位置,也可以是一个描述性的文本。在这种情况下,"Sitting on the Dock of the Bay"是一个象征性的值,代表系统的位置。

问题

Errors were encountered while processing: snmpd

  • 运行sudo apt install snmp snmpd snmp-mibs-downloader后出现的问题
    Processing triggers for man-db (2.9.4-2) ...
    Errors were encountered while processing:snmpd
    

可能的原因和解决方法:

  1. 系统依赖问题:snmpd软件包可能依赖于其他软件包或库,而这些依赖项可能缺失或版本不兼容。你可以尝试运行以下命令修复依赖关系:
    sudo apt --fix-broken install
    

然后再次运行安装SNMP服务的命令。

  1. 软件包损坏或下载问题:有时软件包可能下载不完整或损坏。你可以尝试清除已下载的软件包缓存,并重新运行安装命令:

    sudo apt update
    sudo apt clean
    sudo apt install snmp snmpd snmp-mibs-downloader
    
  2. 网络连接问题:检查网络连接,确保设备已连接互联网,并且可以访问软件仓库。

Cannot adopt OID……

  • 安装完成后可能遇到的问题
root@armbian:~# sudo systemctl status snmpd
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2023-12-09 08:26:55 CST; 1min 57s agoProcess: 116556 ExecStartPre=/bin/mkdir -p /var/run/agentx (code=exited, status=0/SUCCESS)Main PID: 116557 (snmpd)Tasks: 1 (limit: 4382)Memory: 4.9MCPU: 516msCGroup: /system.slice/snmpd.service└─116557 /usr/sbin/snmpd -LOw -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f -p /run/snmpd.pidDec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyShutdown ::= { netSnmpNotifications 2 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in NET-SNMP-AGENT-MIB: nsNotifyRestart ::= { netSnmpNotifications 3 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in UCD-SNMP-MIB: laErrMessage ::= { laEntry 101 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in UCD-SNMP-MIB: laErrorFlag ::= { laEntry 100 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in UCD-SNMP-MIB: laLoadFloat ::= { laEntry 6 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in UCD-SNMP-MIB: laLoadInt ::= { laEntry 5 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in UCD-SNMP-MIB: laConfig ::= { laEntry 4 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in UCD-SNMP-MIB: laLoad ::= { laEntry 3 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in UCD-SNMP-MIB: laNames ::= { laEntry 2 }
Dec 09 08:26:55 armbian snmpd[116557]: Cannot adopt OID in UCD-SNMP-MIB: laIndex ::= { laEntry 1 }

  • snmpd 服务已经处于活动状态(active (running)),没有明显的错误或问题。
  • 日志信息显示了一些警告消息,指出无法采用某些 OID。这些警告消息可能与缺少必要的 MIB(Management Information Base)文件有关。
  1. 安装 snmp-mibs-downloader 软件包:运行以下命令以安装 snmp-mibs-downloader 软件包:
    sudo apt install snmp-mibs-downloader
    
  2. 使用 snmp-mibs-downloader 下载 MIB 文件:运行以下命令以下载 MIB 文件:
    sudo download-mibs
    
  3. 重新启动 snmpd 服务:运行以下命令以重新启动 snmpd 服务:
    sudo systemctl restart snmpd
    
  • 完美解决
    root@armbian:~# sudo systemctl status snmpd
    ● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2023-12-09 08:33:27 CST; 16s agoProcess: 121820 ExecStartPre=/bin/mkdir -p /var/run/agentx (code=exited, status=0/SUCCESS)Main PID: 121821 (snmpd)Tasks: 1 (limit: 4382)Memory: 5.4MCPU: 201msCGroup: /system.slice/snmpd.service└─121821 /usr/sbin/snmpd -LOw -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f -p /run/snmpd.pidDec 09 08:33:27 armbian systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
    Dec 09 08:33:27 armbian systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
    

这篇关于armbian系统安装和卸载snmp服务(SNMPV2操作版本)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/475806

相关文章

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

如何将Python彻底卸载的三种方法

《如何将Python彻底卸载的三种方法》通常我们在一些软件的使用上有碰壁,第一反应就是卸载重装,所以有小伙伴就问我Python怎么卸载才能彻底卸载干净,今天这篇文章,小编就来教大家如何彻底卸载Pyth... 目录软件卸载①方法:②方法:③方法:清理相关文件夹软件卸载①方法:首先,在安装python时,下