ubuntu 20.04 snmp安装配置

一、SNMP MANAGER 安装

1. 命令行安装

1.1 安装对应软件包

sudo apt-get update
sudo apt-get install snmp

1.2 配置

修改 /etc/snmp/snmp.conf

# 注释掉
#mibs :

二、SNMP AGENT 安装

1. 命令行安装

1.1 查看系统自带的snmpd版本

# 先更新
sudo apt-get update

# 查看系统自带的snmpd版本
sudo apt list a snmpd

正在列表... 完成
snmpd/focal-updates,focal-security,now 5.8+dfsg-2ubuntu2.2 amd64 [已安装]
snmpd/focal-updates,focal-security 5.8+dfsg-2ubuntu2.2 i386

1.2 安装对应的软件包

# snmp agent
sudo apt install snmpd libsnmp-dev

# 用来下载更新本地mib库的软件
sudo apt install snmp-mibs-downloader

如果/usr/share/snmp/mibs为空,则需要手动下载mib库sudo download-mibs

1.3 配置

修改 /etc/snmp/snmpd.conf

# 默认启用sub-agent
master  agentx
# 如果采用agentX添加自定义mib库,可根据需要,配置sub-agent
agentxSocket tcp:localhost:705
agentxTimeout 5000
agentxRetries 0

# Listen for connections from the local system only
#agentAddress  udp:127.0.0.1:161
# Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161

# 注释掉下边两行
#view   systemonly  included   .1.3.6.1.2.1.1
#view   systemonly  included   .1.3.6.1.2.1.25.1
# 新添加
view   systemonly  included   .1.3.6.1

# disk checks
# solve : dskUsed = No Such Instance currently exists at this OID
disk / 10000
load [1MAX=12.0] [5MAX=12.0] [15MAX=12.0]load 12 14 14

# 创建v3用户 username:bigdata, password:11111111
createUser bigdata MD5 11111111 DES
rwuser bigdata priv

# 如果采用动态加载方式添加自定义mib库,可以通过如下语句实现
#dlmod cluster_env /home/snmplib/libclusterenv.so

设置完之后,想修改密码,发现不好使,应该是 /var/lib/snmp/snmpd.conf 有缓存,可以尝试把这个文件中对应的内容删掉。

1.4 重启服务

sudo service snmpd restart

1.5 查看状态

sudo service snmpd status

说明:当加载自己的agent库时,使用snmp_log打印的信息可以通过这个命令查看

1.6 测试

# 查看系统信息
snmpget -u bigdata -l authPriv -a MD5 -x DES -A 11111111 -X 11111111 localhost 1.3.6.1.2.1.1.1.0
# 结果如下:
SNMPv2-MIB::sysDescr.0 = STRING: Linux slaver1 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64

2. 下载安装包,自己编译 (安装之后不好使!!)

2.1 安装编译依赖

# 安装基本的编译环境
sudo apt-get install gcc make build-essential

# 安装snmp需要的库
sudo apt-get install libperl-dev

三、修改 SNMP AGENT 用户和用户组 (非必须!)

以动态加载.so来实现自定义agent时,遇到如下问题:

如果程序中用到的像jps或netstat -p这样的命令,发现获取不到正确的数据。通过调用 ps -ef | grep snmp发现,snmpd程序是由Debian-snmp用户启动的,该用户不具有相关权限。

修改/etc/systemd/system/multi-user.target.wants/snmpd.service, 将snmpd启动的用户和用户组改为root

ExecStart=/usr/sbin/snmpd -LOw -u root -g root -I -smux,mteTrigger,mteTriggerConf -f -p /run/snmpd.pid

调用 sudo systemctl daemon-reload 命令,使修改生效

调用 sudo service snmpd restart 命令,重启snmpd服务

验证如下:

root@master:~# ps -ef | grep snmp
root     3580320       1  1 15:07 ?        00:00:00 /usr/sbin/snmpd -LOw -u root -g root -I -smux mteTrigger mteTriggerConf -f -p /run/snmpd.pid
root     3580347 3579656  0 15:07 pts/0    00:00:00 grep --color=auto snmp

你可能感兴趣的:(ubuntu 20.04 snmp安装配置)