支持多供应商的网络自动化和可编程性抽象层:syslog解析器
napalm-logs的Python项目详细描述
python库解析来自网络设备的syslog消息并生成json可序列化的python对象,其形状与供应商无关。输出对象的结构遵循openconfig或ietf-yang模型。
例如,来自juniper设备的以下syslog消息:
Mar 30 12:45:19 re0.edge01.bjm01 rpd[15852]: BGP_PREFIX_THRESH_EXCEEDED 1.2.3.4 (External AS 15169): Configured maximum prefix-limit threshold(160) exceeded for inet-unicast nlri: 181 (instance master)
将生成以下对象:
{"yang_message":{"bgp":{"neighbors":{"neighbor":{"192.168.140.254":{"state":{"peer_as":"65001"},"afi_safis":{"afi_safi":{"inet4":{"state":{"prefixes":{"received":141}},"ipv4_unicast":{"prefix_limit":{"state":{"max_prefixes":140}}}}}}}}}}},"message_details":{"processId":"2902","severity":5,"facility":18,"hostPrefix":null,"pri":"149","processName":"rpd","host":"vmx01","tag":"BGP_PREFIX_THRESH_EXCEEDED","time":"14:03:12","date":"Jun 21","message":"192.168.140.254 (External AS 65001): Configured maximum prefix-limit threshold(140) exceeded for inet4-unicast nlri: 141 (instance master)"},"timestamp":1498050192,"facility":18,"ip":"127.0.0.1","host":"vmx01","yang_model":"openconfig-bgp","error":"BGP_PREFIX_THRESH_EXCEEDED","os":"junos","severity":5}}
这个库附带了一个命令行程序,该程序充当后台程序,在后台运行并连续监听syslog消息,然后通过安全通道发布这些消息,在这些通道中,多个客户端可以订阅。
<> P>通过UDP或TCP监听系统日志消息是灵活的,但也可以从诸如Apache卡夫卡的经纪人那里听到。类似地,输出对象可以通过各种渠道发布,如zeromq、kafka或远程服务器日志记录。它还具有足够的可插入性,可以根据需要扩展这些功能并侦听或发布到其他服务。这些消息通过一个安全的通道发布、加密和签名。虽然可以禁用安全性,但这是非常不可取的。
文档
请检查the official documentation以获取更多详细信息。
安装
凝固汽油弹日志在pypi上可用,可以使用以下命令轻松安装:
pip install napalm-logs