syslog和trap服务api
piat的Python项目详细描述
PIAT项目
piat是一个易于使用的syslog和trap监听器api, 它支持多个供应商的系统日志分析
安装
pip install piat
开始
示例1:
要同时运行两个侦听器/服务器,请使用piatserver api:
from piat.servers import PiatServer
def syslog_cb(syslog_msg):
""" callback to be executed on received syslog msg """
data = syslog_msg.get_dictionary()
# do something with syslog data
print(data)
def trap_cb(trap_msg):
""" callback to be executed on received trap msg """
data = trap_msg.get_dictionary()
# do something with trap data
print(data)
if __name__ == '__main__':
server = PiatServer(traps_callbacks=[trap_cb],
syslog_callbacks=[syslog_cb],
trap_community='my_community')
server.start()
系统日志数据示例:
{'ip': '192.168.1.1',
'timestamp':
'2019-04-28 21:26:40.809271',
'tag': 'LSD-4-LABEL_RESOURCE',
'severity': 'warning',
'facility': 'syslogd',
'msg': 'label range 100-150 exhausted'}
{'ip': '192.168.1.9',
'timestamp': '2019-04-28 21:26:41.741839',
'tag': 'SYS-6-LOGGINGHOST_STARTSTOP',
'severity': 'informational',
'facility': 'syslogd',
'msg': 'Logging to host 192.1.1.8 port 514 started - CLI initiated'}
陷阱数据示例:
{'ip': '192.168.1.1',
'timestamp': '2019-04-28 21:30:11.536344',
'sysUpTime': '88847929',
'snmpTrapOID': 'CISCO-SMI::cisco.0.1',
'snmpTrapAddress': '192.168.1.1',
'snmpTrapCommunity': 'public',
'snmpTrapEnterprise': 'CISCO-SMI::cisco',
'local': 'root',
'tcpConnState': 'finWait2'}
{'ip': '192.168.1.9',
'timestamp': '2019-04-28 21:30:11.544577',
'sysUpTime': '88847996',
'snmpTrapOID': 'CISCO-SYSLOG-MIB::clogMessageGenerated',
'snmpTrapAddress': '192.168.1.9',
'snmpTrapCommunity': 'public',
'snmpTrapEnterprise': 'CISCO-SYSLOG-MIB::ciscoSyslogMIBNotificationPrefix',
'clogHistFacility': 'LSD',
'clogHistSeverity': 'warning',
'clogHistMsgName': 'LABEL_RESOURCE',
'clogHistMsgText': 'label range 100-150 exhausted',
'clogHistTimestamp': '88847996'}
示例2:
仅运行系统日志服务器:
from piat.servers import SyslogServer
def syslog_cb(syslog_msg):
data = syslog_msg.get_dictionary()
print(data)
# do something with syslog data
if __name__ == '__main__':
server = SyslogServer(callbacks=[syslog_cb])
server.start()
此外,您只能运行陷阱服务器:
from piat.servers import SnmpTrapServer
def trap_cb(trap_msg):
data = trap_msg.get_dictionary()
# do something with trap data
print(data)
if __name__ == '__main__':
server = SnmpTrapServer(callbacks=[trap_cb],community='my_comm')
server.start()
受支持的供应商:
- 思科。
- 阿里斯塔:
- 杜松子。
- 华为。
- 惠普。
- 五楼。
- 富通。
功能:
- 您可以根据需要传递任意多个回调,所有回调都将同时运行 分开的线。
- syslog和trap都将作为独立进程运行。
- 您可以添加更多要由陷阱服务器使用的mib dir,使用
add_mib_dir
kwarg 传递mib dir位置。 - piat使用
pysnmp
进行陷阱监听,因此如果您想扩展mib支持,可以 需要使用pysnmp
提供的mibdump.py
命令对mib文件进行组合 新的mib,然后使用add_mib_dir
将编译的mibs dir添加到piat服务器。 - 我们只支持由rfc3164描述的系统日志解析。