Linux程序设计例题的trap用法

Linux程序设计例题的trap用法,第1张

你的程序有两个问题,

1,

trap

'rm

-f

/tmp/my_tmp_file_$$'

INT

这里应该用

双引号

"

"

将rm命令括起来,用单引号,

$$

不会变成进程pid

2,

while

[

-f

/tmp/my_tmp_file__$$

]

你一直使用的是

/tmp/my_tmp_file_$$,

但是这里却用的是

file__$$

两个下划线,错了。

linux配置团体名和trap本文不讲解snmp理论知识,只讲解在linux下环境的配置。(方便服务器SNMP测试)

以rhel8为例:

1.NetSnmp 工具安装

Linux 安装 netsnmp 采用在线安装的方式(确保测试环境连接 internet):

命令行执行 yum install -y net-snmp。安装完成后验证是否有如下命令:

主要是 snmpd snmpget snmpset snmpwalk snmptrapd snmptrap snmptranslate

(一般安装linux os时,把GUI package里的文件全部勾选,安装完后这些工具都会存在,不需要再额外联网安装)

2.MIB 文件导入

Copy mib 库 文 件 到 默 认 的 mib 库路径,默认的 mib 库路径如下:/usr/share/snmp/mibs。

设置临时环境变量:export MIBS=all

(注意一定要把mib文件复制粘贴到mib库路径下。对于新手来说就不要进行其他设置,以避免mib库路径发生变更)

---------------------------------------------------------

SNMP V1/V2 Get 测试

通过 Snmp 接口获取 Chassis 信息:

rwcommstr :读写团体名 (在server端上设置查看)

BMC_IP :BMC 的管理 IP

device.ChassisInfo:参考自己server的OID手册(或者SNMP手册,实在不知道txt打开MIB)

命令:snmpwalk -t 20 -v 2c -c rwcommstr BMC_IP device.ChassisInfo

------------------------------------

SNMP Set 测试

通过 Snmp 接口设置/管理 BMC,需要认证使用。

BMC_IP :BMC 的管理 IP

user :snmp 用户名 (在server端上设置查看)

password :snmp密码 (在server端上设置查看)

MD5/DES :snmp用户的认证方式(在server端上设置查看)

通过 Snmp 接口开关机

snmpset -v 3 -u user -l authPriv -a MD5 -A password -x DES -X password BMC_IP LENOVO-MIB::PowerStatus.0 i On

snmpset -v 3 -u user -l authPriv -a MD5 -A password -x DES -X password BMC_IP LENOVO-MIB::PowerStatus.0 i Off

---------------------------------

Trap Receiver

(这里是这是SNMP trap接收端)

SNMP V1/V2 Trap Receiver

配置 netsnmp snmptrapd:

修改配置文件 /etc/snmp/snmptrapd.conf (这个路径是默认的,如果有修改请找到自己修改的那个路径)

主要修改最后的字段,snmptrappfa 保持和下面 BMC 设置 Snmp Trap 的一致

(snmptrappfa是团体名,可以不用和文章内一模一样)

修改完成后,启动 snmptrapd 即可启动方式如下:

注意:启动界面需要在配置临时环境保持同一个窗口。

snmptrapd -C -c /etc/snmp/snmptrapd.conf -f -Lo

------------------------------------

SNMP v3设置

接收Trap端:

1 在 /var/lib/net-snmp/snmptrapd.conf中,用以下命令创建用户

createUser -e 0x8000000001020304 mytrapuser1 SHA "user1authpass" AES "user1encypass

2. 在 /etc/snmp/snmptrapd.conf 中,用以下命令授权已经创建好的用户

authUser log,execute,net mytrapuser1

3. 在 /etc/snmp/snmptrapd.conf中,去掉行 authCommunity log,execute,net snmptrappfa

4. snmptrapd -f -Dusm -Lo 开始接收trap

安装snmp服务

CentOS/RedHat下可以只用yum命令进行安装。

$ yum –y install net-snmp net-snmp-devel

若要使用snmpwalk进行安装检测,则还需要安装net-snmp-utils包

$ yum –y install net-snmp-utils

Ubuntu可以通过apt-get install snmp snmpd 进行安装

设置安全的验证方式

将SNMP代理程序暴露给网络上的所有主机是很危险的,为了防止其它主机访问您的SNMP代理程序,我们需要在SNMP代理程序上加入身份验证机制。SNMP支持不同的验证机制,这取决于不同的SNMP协议版本,云监控目前支持v2c和v3两个版本,其中v2c版本的验证机制比较简单,它基于明文密码和授权IP来进行身份验证,而v3版本则通过用户名和密码的加密传输来实现身份验证,我们建议使用v3,当然,只要按照以下的介绍进行配置,不论是v2c版本还是v3版本,都可以保证一定的安全性,您可以根据情况来选择。

注意一点,SNMP协议版本和SNMP代理程序版本是两回事,刚才说的v2c和v3是指SNMP协议的版本,而Net-SNMP是用来实现SNMP协议的程序套件,目前它的最新版本是刚才提到的5.4.2.1。

v2c

先来看如何配置v2c版本的SNMP代理,我们来创建snmpd的配置文件,默认情况下它是不存在的,我们来创建它,如下:

sdo:~ # vi /usr/local/snmp/share/snmp/snmpd.conf

然后我们需要创建一个只读帐号,也就是read-only community,在snmpd.conf中添加以下内容:

rocommunity sdomonitor 114.80.132.9 rocommunity sdomonitor 58.215.169.26 rocommunity sdomonitor 58.215.169.27

如果想要检测服务是否成功开启,则还需要在snmpd.conf中添加:

rocommunity sdomonitor 127.0.0.1

注意,这里的"rocommunity"表示这是一个只读的访问权限,云监控只可以从您的服务器上获取信息,而不能对服务器进行任何设置。

紧接着的"sdomonitor"相当于密码,很多平台喜欢使用"public"这个默认字符串。这里的"sdomonitor"只是一个例子,您可以设置其它字符串作为密码。

最右边的"60.195.249.83"代表指定的监控点IP,这个IP地址是云监控专用的监控点,这意味着只有云监控有权限来访问您的SNMP代理程序。

所以,以上这段配置中,只有"sdomonitor"是需要您进行修改的,同时在云监控上添加服务器的时候,需要提供这个字符串。

v3

当然,我们建议您使用v3版本来进行身份验证。对于一些早期版本的Linux分发版,其内置的SNMP代理程序可能并不支持v3,所以我们建议您按照前边介绍的方法,编译和安装最新的Net-Snmp。

v3支持另一种验证方式,需要创建一个v3的帐号,我们同样修改以下配置文件:

sdo:~ # vi /usr/local/snmp/share/snmp/snmpd.conf

然后添加一个只读帐号,如下:

rouser sdomonitor auth

可以看到,在v3中,"rouser"用于表示只读帐号类型,随后的"sdomonitor"是指定的用户名,后边的"auth"指明需要验证。

接下来,我们还要添加"sdomonitor"这个用户,这就是v3中的特殊机制,我们打开以下配置文件:

sdo:~ # vi /var/net-snmp/snmpd.conf

这个文件会在snmpd启动的时候被自动调用,我们需要在它里边添加创建用户的指令,如下:

createUser sdomonitor MD5 mypassword

这行配置的意思是创建一个名为"sdomonitor"的用户,密码为"mypassword",并且用MD5进行加密传输。这里要提醒的是:

密码至少要有8个字节

这是SNMP协议的规定,如果小于8个字节,通信将无法进行。

值得注意的是,一旦snmpd启动后,出于安全考虑,以上这行配置会被snmpd自动删除,当然,snmpd会将这些配置以密文的形式记录在其它文件中,重新启动snmpd是不需要再次添加这些配置的,除非您希望创建新的用户。

以上配置中的用户名、密码和加密方式,在云监控添加服务器的时候需要添加。

启动snmp服务

$ service snmpd start

用以下命令检查服务是否启动成功

$ snmpwalk -v 2c -c sdomonitor 127.0.0.1 system

如果要关闭,则可以直接kill这个进程,如下:

$ killall -9 snmpd 或者$ service snmpd stop


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7362785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存