记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

Proxmox VE安装SNMP服务并添加到LibreNMS系统监控

Proxmox VE安装SNMP服务并添加到LibreNMS系统监控
在将Proxmox VE添加到LibreNMS监控系统时候,需要在Proxmox VE安装并启动SNMP服务,然后在LibreNMS上配置LibreNMS-Agent即可。
第一步:Proxmox VE服务器安裝 SNMP 套件
安裝 SNMP 服务套件
XML/HTML代码
  1. apt -y install snmpd
SNMP 配置文件备份
XML/HTML代码
  1. mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
新增 SNMP 配置  vim /etc/snmp/snmpd.conf
XML/HTML代码
  1. # this create a  SNMPv1/SNMPv2c community named "public"
  2. # and restricts access to LAN adresses 192.168.0.0/16 (last two 0's are ranges)
  3. rocommunity public 192.168.0.0/16
  4. # setup info
  5. syslocation  "rack 1, room 3, serverrroom"
  6. syscontact  "Svenn"
  7. # open up
  8. agentAddress  udp:161
  9. # run as
  10. agentuser  root
  11. # dont log connection from UDP:
  12. dontLogTCPWrappersConnects yes
  13. # fix for disks larger then 2TB
  14. realStorageUnits 0
  15. disk / 10%
或者直接命令修改(推荐)
XML/HTML代码
  1. cat << EOF > /etc/snmp/snmpd.conf
  2.  
  3. # This file will create a read-only community called "MYSNMP"
  4. # and restricts access to address 10.10.10.1
  5. rocommunity MYSNMP 10.10.10.1
  6. syslocation "Bern, Switzerland"
  7. syscontact  "John Doe"
  8. agentAddress  udp:161
  9. agentuser  root
  10. dontLogTCPWrappersConnects yes
  11. realStorageUnits 0
  12.  
  13. EOF
重启 SNMP 服务,设置开机自动启动
XML/HTML代码
  1. systemctl restart snmpd && systemctl enable snmpd
snmp高级设置(一般无需设置)
XML/HTML代码
  1. com2sec notConfigUser  default       public
  2. com2sec local localhost public
  3. com2sec my1network1 172.16.1.58/32 01
  4. com2sec my2network2 172.16.2.10/32 02
  5. com2sec my3network2 172.16.0.248/32 03
  6. group MyRWGroup v1 local
  7. group MyRWGroup v2c local
  8. group MyROGroup v1 my1network1
  9. group MyROGroup v2c my1network1
  10. group MyROGroup v1 my2network2
  11. group MyROGroup v2c my2network2
  12. group MyROGroup v1 my3network2
  13. group MyROGroup v2c my3network2
  14. view    systemview    included   .1.3.6.1.2.1.1
  15. view    systemview    included   .1.3.6.1.2.1.2
  16. view    systemview    included   .1.3.6.1.2.1.25.1.1
  17. access  notConfigGroup ""      any       noauth    exact  systemview none none
  18. view all    included  .1                               80
  19. access MyROGroup "" any noauth prefix all none none
  20. access MyRWGroup "" any noauth prefix all all all
  21. dontLogTCPWrappersConnects yes
  22. syslocation  "rack 1, room 3, serverrroom"
  23. syscontact  "Svenn"
以上设置同样适用于Debian/Ubuntu等Linux系统。
第二步:LibreNMS服务器安裝LibreNMS-Agent
在 LibreNMS 服务上修改config.php新增一行 
XML/HTML代码
  1. vim /opt/librenms/config.php
配置文件如下:
XML/HTML代码
  1. $config['enable_proxmox'] = 1;
然后在Proxmox VE服务器操作,从官网下载 PVE 专用组件
XML/HTML代码
  1. wget https://raw.githubusercontent.com/librenms/librenms-agent/master/agent-local/proxmox -O /usr/local/bin/proxmox
设置此组件可执行权限
XML/HTML代码
  1. chmod +x /usr/local/bin/proxmox
编辑 vim /etc/sudoers 设置和官方不一样。因为 /etc/passwd 里面设置的用户名是 Debian-snmp,而不是官网文件的 snmp,所以要依下面的设置,让 Debian-snmp 可以不用密码 sudo 跑 /usr/local/bin/proxmox。
XML/HTML代码
  1. Debian-snmp     ALL=(ALL) NOPASSWD: /usr/local/bin/proxmox
在 vim /etc/snmp/snmpd.conf 要加一行 extend 描述,官网没有加上 sudo 执行,会造成权限错误而无法执行。
XML/HTML代码
  1. extend proxmox  /usr/bin/sudo /usr/local/bin/proxmox 
命令:
XML/HTML代码
  1. echo "extend proxmox  /usr/bin/sudo /usr/local/bin/proxmox" >> /etc/snmp/snmpd.conf
设置完成后,记得重启 snmpd
XML/HTML代码
  1. systemctl restart snmpd
通过以上操作,在LibreNMS中添加Proxmox VE服务器,在程序设置中打开Proxmox就可以看到虚拟机的信息了。
参考
ESXI配置并开启SNMP服务
修改配置文件 /etc/vmware/snmp.xml
XML/HTML代码
  1. <?xml version="1.0"?>  
  2. <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代码
  1. esxcli system snmp set -c A123456   #设置community,将SNMP的community设置为A123456
  2. esxcli system snmp set --enable true #开启snmp服务
以上操作需要开启Esxi的SSH服务和ESXi Shell服务即可。
LibreNMS安装教程(官方)  Debian12手动安装  Ubuntu手动安装  Rocky Linux 8 手动安装
LibreNMS Docker image(官方)
XML/HTML代码
  1. git clone https://github.com/librenms/docker.git
  2. cd docker/examples/compose
  3. docker-compose up -d
注意:.env 里面是数据库信息,compose.yml为配置信息,可以根据自己实际情况修改。
Docker快速安装(官方)
下载源码
XML/HTML代码
  1. mkdir librenms
  2. cd librenms
  3. wget https://github.com/librenms/docker/archive/refs/heads/master.zip
  4. unzip master.zip
  5. cd docker-master/examples/compose
设置数据库信息 .env 修改 compose.yml
拉取并启动容器
XML/HTML代码
  1. sudo docker compose -f compose.yml up -d
网页管理:http://IP:8000
注意:如果手动安装,例如Debian12按照官方教程会出现php工作不正常,那是因为php的sock路径不对,apt默认安装后路径是  /run/php/php-fpm.sock 如果不出现正常安装网页,则需要修改php和nginx配置中的这个参数。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):