k.sato
2023年12月14日 9時46分
佐藤と申します。
お世話になっております。
Armadillo-640をABOSのalpine:3.18コンテナで開発しています。
pythonのコードからsnmptrapを送信する方法を教えていただけませんか?
以上、よろしくお願い致します。
コメント
k.sato
佐藤です。
回答ありがとうございます。
> こちらで試したわけではないのですが、以下は参考になりますでしょうか。
> https://pysnmp.readthedocs.io/en/latest/quick-start.html#send-snmp-trap
> (先にalpineコンテナ内で "apk add py3-snmp" 実行する必要があります。)
こちらのサイトは見つけていたのですがpysnmpとなっており、py3-snmpとは異なると思い試していませんでした。
packages.txt に「py3-snmp」を追加してコンテナにインストールし、
「demo.snmplabs.com」をPCのIPアドレスに置き換えたところTrapを受信することが出来ました。
ありがとうございました。
またTrapの送信者としてArmadillo-640のIPアドレスを付与したいのですが、
IPアドレスを自動割当としてmy_project.confに「set_network host」としているとき、
コンテナ内のpythonからホストのIPアドレスはどうやって取得するのでしょうか?
よろしくお願い致します。
at_makoto.sato
> またTrapの送信者としてArmadillo-640のIPアドレスを付与したいのですが、
> IPアドレスを自動割当としてmy_project.confに「set_network host」としているとき、
> コンテナ内のpythonからホストのIPアドレスはどうやって取得するのでしょうか?
少し手間ですが、以下のような関数を作った上で、使ってみてください。
import socket def get_host_ip(self): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: # doesn't even have to be reachable s.connect(('10.255.255.255', 1)) IP = s.getsockname()[0] except: IP = '127.0.0.1' finally: s.close() return IP
k.sato
at_makoto.sato
2023年12月14日 10時37分
こちらで試したわけではないのですが、以下は参考になりますでしょうか。
https://pysnmp.readthedocs.io/en/latest/quick-start.html#send-snmp-trap
(先にalpineコンテナ内で "apk add py3-snmp" 実行する必要があります。)