<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="Proxmox VE安装SNMP服务并添加到LibreNMS系统监控">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2025-04-08 14:29<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
Proxmox VE安装SNMP服务并添加到LibreNMS系统监控


在将Proxmox VE添加到LibreNMS监控系统时候，需要在Proxmox VE安装并启动SNMP服务，然后在LibreNMS上配置LibreNMS-Agent即可。


第一步：Proxmox VE服务器安裝 SNMP 套件


安裝 SNMP 服务套件




XML/HTML代码


    apt -y install snmpd







SNMP 配置文件备份




XML/HTML代码


    mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak







新增 SNMP 配置  vim /etc/snmp/snmpd.conf


XML/HTML代码


    # this create a  SNMPv1/SNMPv2c community named &quot;public&quot;

    # and restricts access to LAN adresses 192.168.0.0/16 (last two 0's are ranges)

    rocommunity public 192.168.0.0/16

    # setup info

    syslocation  &quot;rack 1, room 3, serverrroom&quot;

    syscontact  &quot;Svenn&quot;

    # open up

    agentAddress  udp:161

    # run as

    agentuser  root

    # dont log connection from UDP:

    dontLogTCPWrappersConnects yes

    # fix for disks larger then 2TB

    realStorageUnits 0

    disk / 10%





或者直接命令修改（推荐）


XML/HTML代码


    cat &lt;&lt; EOF &gt; /etc/snmp/snmpd.conf

     

    # This file will create a read-only community called &quot;MYSNMP&quot;

    # and restricts access to address 10.10.10.1

    rocommunity MYSNMP 10.10.10.1

    syslocation &quot;Bern, Switzerland&quot;

    syscontact  &quot;John Doe&quot;

    agentAddress  udp:161

    agentuser  root

    dontLogTCPWrappersConnects yes

    realStorageUnits 0

     

    EOF





重启 SNMP 服务，设置开机自动启动


XML/HTML代码


    systemctl restart snmpd &amp;&amp; systemctl enable snmpd





snmp高级设置（一般无需设置）


XML/HTML代码


    com2sec notConfigUser  default       public

    com2sec local localhost public

    com2sec my1network1 172.16.1.58/32 01

    com2sec my2network2 172.16.2.10/32 02

    com2sec my3network2 172.16.0.248/32 03

    group MyRWGroup v1 local

    group MyRWGroup v2c local

    group MyROGroup v1 my1network1

    group MyROGroup v2c my1network1

    group MyROGroup v1 my2network2

    group MyROGroup v2c my2network2

    group MyROGroup v1 my3network2

    group MyROGroup v2c my3network2

    view    systemview    included   .1.3.6.1.2.1.1

    view    systemview    included   .1.3.6.1.2.1.2

    view    systemview    included   .1.3.6.1.2.1.25.1.1

    access  notConfigGroup &quot;&quot;      any       noauth    exact  systemview none none

    view all    included  .1                               80

    access MyROGroup &quot;&quot; any noauth prefix all none none

    access MyRWGroup &quot;&quot; any noauth prefix all all all

    dontLogTCPWrappersConnects yes

    syslocation  &quot;rack 1, room 3, serverrroom&quot;

    syscontact  &quot;Svenn&quot;





以上设置同样适用于Debian/Ubuntu等Linux系统。


第二步：LibreNMS服务器安裝LibreNMS-Agent


在 LibreNMS 服务上修改config.php新增一行 




XML/HTML代码


    vim /opt/librenms/config.php







配置文件如下：




XML/HTML代码


    $config['enable_proxmox'] = 1;







然后在Proxmox VE服务器操作，从官网下载 PVE 专用组件


XML/HTML代码


    wget https://raw.githubusercontent.com/librenms/librenms-agent/master/agent-local/proxmox -O /usr/local/bin/proxmox





设置此组件可执行权限


XML/HTML代码


    chmod +x /usr/local/bin/proxmox





编辑 vim /etc/sudoers 设置和官方不一样。因为 /etc/passwd 里面设置的用户名是 Debian-snmp，而不是官网文件的 snmp，所以要依下面的设置，让 Debian-snmp 可以不用密码 sudo 跑 /usr/local/bin/proxmox。


XML/HTML代码


    Debian-snmp     ALL=(ALL) NOPASSWD: /usr/local/bin/proxmox





在 vim /etc/snmp/snmpd.conf 要加一行 extend 描述，官网没有加上 sudo 执行，会造成权限错误而无法执行。


XML/HTML代码


    extend proxmox  /usr/bin/sudo /usr/local/bin/proxmox 





命令：


XML/HTML代码


    echo &quot;extend proxmox  /usr/bin/sudo /usr/local/bin/proxmox&quot; &gt;&gt; /etc/snmp/snmpd.conf





设置完成后，记得重启 snmpd


XML/HTML代码


    systemctl restart snmpd





通过以上操作，在LibreNMS中添加Proxmox VE服务器，在程序设置中打开Proxmox就可以看到虚拟机的信息了。


参考


ESXI配置并开启SNMP服务


修改配置文件 /etc/vmware/snmp.xml




XML/HTML代码


    &lt;?xml version=&quot;1.0&quot;?&gt;  

    &lt;config&gt;&lt;snmpSettings&gt;&lt;enable&gt;true&lt;/enable&gt;&lt;port&gt;161&lt;/port&gt;&lt;EnvEventSource&gt;indications&lt;/EnvEventSource&gt;&lt;loglevel&gt;warning&lt;/loglevel&gt;&lt;communities&gt;public&lt;/communities&gt;&lt;targets/&gt;&lt;largestorage&gt;true&lt;/largestorage&gt;&lt;engineid&gt;00000063000000a100000000&lt;/engineid&gt;&lt;/snmpSettings&gt;&lt;/config&gt;  







只需要修改下划线部分和上面一致就可以。


然后在Esxi的管理--服务--snmpd启动


或者使用以下命令直接启动




XML/HTML代码


    esxcli system snmp set -c A123456   #设置community,将SNMP的community设置为A123456

    esxcli system snmp set --enable true #开启snmp服务







以上操作需要开启Esxi的SSH服务和ESXi Shell服务即可。


LibreNMS安装教程（官方）  Debian12手动安装  Ubuntu手动安装  Rocky Linux 8 手动安装


LibreNMS Docker image（官方）




XML/HTML代码


    git clone https://github.com/librenms/docker.git

    cd docker/examples/compose

    docker-compose up -d




注意：.env 里面是数据库信息，compose.yml为配置信息，可以根据自己实际情况修改。




Docker快速安装（官方）


下载源码


XML/HTML代码


    mkdir librenms

    cd librenms

    wget https://github.com/librenms/docker/archive/refs/heads/master.zip

    unzip master.zip

    cd docker-master/examples/compose





设置数据库信息 .env 修改 compose.yml


拉取并启动容器


XML/HTML代码


    sudo docker compose -f compose.yml up -d





网页管理：http://IP:8000


注意：如果手动安装，例如Debian12按照官方教程会出现php工作不正常，那是因为php的sock路径不对，apt默认安装后路径是  /run/php/php-fpm.sock 如果不出现正常安装网页，则需要修改php和nginx配置中的这个参数。


</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
