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 "public"
- # 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 "rack 1, room 3, serverrroom"
- syscontact "Svenn"
- # 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 << EOF > /etc/snmp/snmpd.conf
- # This file will create a read-only community called "MYSNMP"
- # and restricts access to address 10.10.10.1
- rocommunity MYSNMP 10.10.10.1
- syslocation "Bern, Switzerland"
- syscontact "John Doe"
- agentAddress udp:161
- agentuser root
- dontLogTCPWrappersConnects yes
- realStorageUnits 0
- EOF
重启 SNMP 服务,设置开机自动启动
XML/HTML代码
- systemctl restart snmpd && 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 "" any noauth exact systemview none none
- view all included .1 80
- access MyROGroup "" any noauth prefix all none none
- access MyRWGroup "" any noauth prefix all all all
- dontLogTCPWrappersConnects yes
- syslocation "rack 1, room 3, serverrroom"
- syscontact "Svenn"
以上设置同样适用于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 "extend proxmox /usr/bin/sudo /usr/local/bin/proxmox" >> /etc/snmp/snmpd.conf
设置完成后,记得重启 snmpd
XML/HTML代码
- systemctl restart snmpd
通过以上操作,在LibreNMS中添加Proxmox VE服务器,在程序设置中打开Proxmox就可以看到虚拟机的信息了。
ESXI配置并开启SNMP服务
修改配置文件 /etc/vmware/snmp.xml
XML/HTML代码
- <?xml version="1.0"?>
- <config><snmpSettings><enable>true</enable><port>161</port><EnvEventSource>indications</EnvEventSource><loglevel>warning</loglevel><communities>public</communities><targets/><largestorage>true</largestorage><engineid>00000063000000a100000000</engineid></snmpSettings></config>
只需要修改下划线部分和上面一致就可以。
然后在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服务即可。
XML/HTML代码
- git clone https://github.com/librenms/docker.git
- cd docker/examples/compose
- docker-compose up -d
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配置中的这个参数。