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

相关文章

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck