Syslog and Trap service API
Project description
Piat Project
Piat is a syslog and trap listeners APIs which are easy to use, it support syslog parsing for multiple vendors
Installing
pip install piat
Getting Started
Example 1:
to run both listeners/servers use the 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()
syslog data example :
{'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'}
trap data example :
{'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'}
Example 2:
to run only syslog server:
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()
also you can run only trap server:
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()
Supported Vendors:
- Cisco.
- Arista.:
- Juniper.
- Huawei.
- HP.
- F5.
- Fortinet.
Features:
- you can pass as many callback as you want, all callbacks will be running concurrently in separate threads.
- both syslog and trap will be running as an independent process.
- you can add more mib dir to be used by the trap server, use
add_mib_dir
kwarg to pass the mib dir location. - Piat uses
pysnmp
for trap listening, so if you want to extend the mib support you need to combile the mib files usingmibdump.py
command provided bypysnmp
to combile the new mibs, then add the compiled mibs dir to piat server usingadd_mib_dir
. - we only support Syslog parsing described by rfc3164.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
piat-0.0.15.tar.gz
(13.9 kB
view details)
Built Distribution
piat-0.0.15-py3-none-any.whl
(20.5 kB
view details)
File details
Details for the file piat-0.0.15.tar.gz
.
File metadata
- Download URL: piat-0.0.15.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/2.7.15rc1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eeb06d865ddc272b4267c2a61dc1af3f26b33d1ba13124c6c469e8718f2d5f4 |
|
MD5 | fddae9fde24f0f9353b5a7290ed033f4 |
|
BLAKE2b-256 | 4d8d1b5c4a08386102bc1cf31c451677140bfae8f5810f1449c54849a41df51e |
File details
Details for the file piat-0.0.15-py3-none-any.whl
.
File metadata
- Download URL: piat-0.0.15-py3-none-any.whl
- Upload date:
- Size: 20.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/2.7.15rc1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d53052e79048140198442fcab0126b1d463363bee34c370e64bd8958737b46b0 |
|
MD5 | 1749155877a8483cb61a937852e2bc36 |
|
BLAKE2b-256 | 0fc7b347d2188dda64c194f94c6a212a7ddfb175540bfe36ffe2124efa67c840 |