Linux SNMP自启动实现方法 (linux snmp自启动)

SNMP是管理网络设备的一种标准协议,它通过管理信息库(MIB)来获取设备的状态信息,并可以通过简单网络管理协议(SNMP)将这些信息传递给监控系统。在Linux系统中,SNMP代理程序是需要启动的,以便监控系统可以获取相关信息。本文将介绍Linux SNMP自启动的实现方法。

SNMP代理程序

在Linux系统中,SNMP代理程序一般是使用Net-SNMP软件包提供的。通过如下命令可以安装Net-SNMP软件包:

“`

sudo apt-get install snmpd

“`

安装完成后,SNMP代理程序会默认启动,可以通过如下命令确认是否启动:

“`

sudo service snmpd status

“`

如果SNMP代理程序没有启动,可以使用如下命令启动:

“`

sudo service snmpd start

“`

SNMP代理程序的配置文件位于/etc/snmp/snmpd.conf。在该文件中可以配置SNMP代理程序的行为、安全策略等内容。需要注意的是,修改配置文件后需要重启SNMP代理程序才能生效。

自启动脚本

为了实现Linux SNMP代理程序的自启动,我们需要编写一个自启动脚本并将其保存在/etc/init.d/目录下。下面是一个示例脚本:

“`

#!/bin/sh

### BEGIN INIT INFO

# Provides: snmpd

# Required-Start: $local_fs $network $syslog

# Required-Stop: $local_fs $network $syslog

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: SNMP daemon

# Description: SNMP (Simple Network Management Protocol) daemon

### END INIT INFO

PATH=/in:/usr/in:/bin:/usr/bin

NAME=snmpd

DAEMON=/usr/in/$NAME

DESC=”SNMP daemon”

test -x $DAEMON || exit 0

set -e

case “$1” in

start)

echo -n “Starting $DESC: $NAME”

start-stop-daemon –start –quiet –exec $DAEMON

echo “.”

;;

stop)

echo -n “Stopping $DESC: $NAME”

start-stop-daemon –stop –quiet –exec $DAEMON

echo “.”

;;

reload)

echo -n “Reloading $DESC configuration…”

start-stop-daemon –stop –signal HUP –quiet –exec $DAEMON

echo “done.”

;;

restart)

echo -n “Restarting $DESC: $NAME”

$0 stop

sleep 1

$0 start

echo “.”

;;

*)

echo “Usage: $0 {start|stop|restart|reload}” >&2

exit 1

;;

esac

exit 0

“`

上述脚本实现了SNMP代理程序的启动、停止、重新加载等操作,并可以自动适配不同的启动方式。需要特别注意的是,脚本中的控制信息需要符合Linux系统的标准,例如提供了服务的名称、启动方式等信息。

将脚本保存在/etc/init.d/目录下,并设置为可执行:

“`

sudo chmod +x /etc/init.d/snmpd

“`

更新启动脚本:

“`

sudo update-rc.d snmpd defaults

“`

至此,Linux SNMP代理程序的自启动已经实现了。每次系统启动时,系统都会自动启动SNMP代理程序,并且保证其符合系统标准。

结语

本文介绍了Linux SNMP自启动的实现方法,包括SNMP代理程序和自启动脚本的配置。这个方法不仅适用于SNMP代理程序,也适用于其他类似的服务程序。需要提醒的是,由于每个Linux系统的差异较大,所以配置过程可能存在一定的变化。

相关问题拓展阅读:

红旗linux系统中安装snmp需要安装哪几个文件

现在还有人用红旗吗?很多都没支持了,以下介绍下在Linux下安装snmp:

下载源码:

选择一个SNMP版本,比如5.7.1,下载地址如下:

解压文件:tar xzvf net-snmp-5.7.1.tar.gz

进入文件夹进行配置安装:cd net-snmp-5.7.1

net-snmp-5.7.1目录下的configure是可执行文件,如果想指定程序包的安装路径,那么首先建立相应的文件夹来存放安装信息,可以写成./configure –-prefix=/指定的路径名。参数–prefix用来告诉系统安装信息存放的路径,如果没有指定路径,直接执行./configure,那么程序包都会安装在系统默认的目录下,通常为:/usr/local下

执行命令”./configure –prefix=/usr/local/snmp –with-mib-modules=’ucd-snmp/diskio ip-mib/ipv4InterfaceTable'”,注意,以上的–with-mib-modules=ucd-snmp/diskio选项,可以让服务器支持磁盘I/O监控

4.回车出现下面问题,可以直接回车而不用回答,系统会采用默认信息,其中日志文件默认安装在/var/log/snmpd.log.数据存贮目录默认存放在/var/net-snmp下

    1)default version of-snmp-version(3): 

)System Contact Information (@@no.where)(配置该设备的联系信息枝羡):

    3)System Location (Unknown)(该系统设备的地理位置):

    4)Location to write logfile (日志文件位置):

    5)Location to Write persistent(数据存储目录):

5.执行编译和安装:make  &&  make install

6.配置snmpd.conf

使用”ls”命令查看/usr/local/snmp目录下是否存在etc目录,如果不存在etc目录,就创建一个

查看结果显示不存在etc目录,在/usr/local/snmp目录下创建一个etc目录,创建etc目录命令”mkdir /usr/local/snmp/etc”

6.找到SNMP源码目录(net-snmp-5.7.1)下EXAMPLE.conf文件

 复制EXAMPLE.conf文件到到好散/usr/local/snmp/etc目录,并重命名为snmpd.conf:”cp EXAMPLE.conf /usr/local/snmp/etc/snmpd.conf”

7.使用vi编辑器打开snmpd.conf文件:”vi /usr/local/snmp/etc/snmpd.conf”,编辑snmpd.conf文件中的内容

8.找到【AGENT BEHAVIOUR】,允许网络访问

9.修改如下:添加”agentAddress udp:161″配置项

10. 找到【ACTIVE MONITORING】选择协议

11. 找到【ACCESS CONTROL】设置权限

12. 找到【rocommunity public default -V systemonly】,把 -V systemonly去掉,这是设置访问权限的,去掉后能访问全部

13.保存snmpd.conf后退出

14.启动:

由于友搭氏我们刚才修改SNMP的snmpd.conf文件,所以在启动snmp服务之前,先使用命令”ps aux | grep snmp | grep -v grep |awk ‘{print $2}’| xargs kill”关闭snmp的相关服务

15.使用”netstat -an |grep 161″查看snmp的服务是否启动

16.启动snmp服务:”/usr/local/snmp/in/snmpd -c /usr/local/snmp/etc/snmpd.conf”

17.测试:

获取本机的系统名字,使用命令:”snmpget -v 2c -c public localhost sysName.0″或者”snmpget -v 2c -c public 本机的ip地址 sysName.0″或者”snmpget -v 2c -c public 本机的ip地址 .1.3.6.1.2.1.1.5.0″进行测试

执行以下的几个命令都可以获取到本机的系统名字:

    snmpget -v 2c -c public localhost sysName.0

    snmpget -v 2c -c public 127.0.0.1 sysName.0

    snmpget -v 2c -c public 192.168.1.229 sysName.0

    snmpget -v 2c -c public localhost .1.3.6.1.2.1.1.5.0

    snmpget -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.1.5.0

    snmpget -v 2c -c public 192.168.1.229 .1.3.6.1.2.1.1.5.0

能够正常返回系统的名字就说明SNMP安装配置成功了。也可以使用命令”snmpget –version”查看当前的安装版本号来验证是否安装成功,如果安装成功,则显示当前的安装版本号

18.完成snmpd的配置并且SNMP测试通过之后,要确保Linux的iptables防火墙对外开放了udp 161端口的访问权限,可以使用”iptables –L –n”查看当前iptables规则

19.用”iptables -I INPUT -p udp –dport 161 -j ACCEPT”命令添加UDP 161端口到iptables防火墙中,然后执行”iptables save”命令保存防火墙的更改

20.在window系统下使用Snmputil.exe工具测试对Linux下的SNMP访问,测试Linux的UDP 161端口是否对外开

21.”snmputil get 192.168.1.229 public .1.3.6.1.2.1.1.5.0″命令返回192.168.1.229这台Linux服务器的名字,可以看到,Linux服务器的名称已经正常返回输出到命令行窗口了。

关于linux snmp自启动的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux SNMP自启动实现方法 (linux snmp自启动)