shijiang1130 发表于 2014-10-27 21:36

【snmp】snmp manager

本帖最后由 shijiang1130 于 2015-01-02 11:28 编辑

通过反复几次实验发现,其实是自己把事情弄点有点复杂了,只要定义一个manager.conf文件,启动snmp,以后就可以在code里动态注册
1. snmpm:register_user
2. snmpm:register_agent
再就可以用通常的方法:
1. snmpm:sync_get
2. snmpm:sync_get_bulk2
3. snmpm:sync_get_next
来获得你要的信息了。

shijiang1130 发表于 2014-10-27 21:49

单个的你可以这么做:

shijiang1130 发表于 2014-10-27 21:51

本帖最后由 shijiang1130 于 2014-10-27 21:52 编辑

1.建个两个目录 manager/config 和 manager/db
2.写个配置文件 my_snmp.config[{snmp,
      [{manager,
            [{config, [{dir, "manager/conf/"},
                {db_dir, "manager/db/"}]}]}]}].

shijiang1130 发表于 2014-10-27 21:53

3. 在manager/conf里建2个文件,这两个文件就是第二步中定义的两个文件。
1)manager.conf
2)agents.conf

shijiang1130 发表于 2014-10-27 21:54

3.1 文件内容{port, 5000}.
{engine_id, "my_snmp"}.
{max_message_size, 484}.

shijiang1130 发表于 2014-10-27 21:55

3.2 文件内容{"my_snmp", "my_snmp", "public", , 161, "my_snmp",
    infinity, 484, v2, v2c, "initial", noAuthNoPriv}.

shijiang1130 发表于 2014-10-27 21:57

启动时用参数 werl -config manager

laputa73 发表于 2014-11-02 13:52

从erlang的思路看,应该起2个manager吧

shijiang1130 发表于 2014-11-02 14:04

laputa73 发表于 2014-11-02 13:52 static/image/common/back.gif
从erlang的思路看,应该起2个manager吧一个对一个。不是一个对多个啊。还有一个问题就是为什么不能动态读取(community),hard coded觉得有点不安全

laputa73 发表于 2014-11-02 17:54

回复 9# shijiang1130


    文档说
The information needed to handle agents should be stored in a file called agents.conf. It is also possible to add agents in run-time by calling the register_agent.

Each entry is a tuple:

{UserId, TargetName, Comm, Ip, Port, EngineID, Timeout, MaxMessageSize, Version, SecModel, SecName, SecLevel}.

   comm应该是可以通过agent.conf设置的
只是例子程序是通过register_agent动态赋值的
页: [1] 2
查看完整版本: 【snmp】snmp manager