支持多供应商的网络自动化和可编程性抽象层: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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java操作数组上的字符串   java JAXB内容未实例化   图形在Java中如何绘制垂直居中的字符串?   java Apache Ant:使用Junit时出现NoClassDefFoundError   java无法从服务器上运行perl脚本   如何在java中沿树进行预排序遍历,并打印0和1以对应每个节点上的特定字符?   java如何创建。p12文件?   java线程访问无效   java只匹配命名空间中的XML节点,而不知道NS前缀   从java获取2d arraylist元素   数组Java动态集合对象   java Xpath通过通配符或布尔运算查找以相同名称开头的节点?   java注释元素类型   java在中看不到Super()。反编译后的类文件