{ "info": { "author": "Ali Aqrabawi", "author_email": "aaqrabaw@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Piat Project\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/piat.svg)\n![PyPI](https://img.shields.io/pypi/v/piat.svg)\n![PyPI - Status](https://img.shields.io/pypi/status/piat.svg)\n![PyPI - License](https://img.shields.io/pypi/l/piat.svg)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/5d3fa6d31e37482c8cf95036816f7397)](https://app.codacy.com/app/Ali-aqrabawi/piat?utm_source=github.com&utm_medium=referral&utm_content=Ali-aqrabawi/piat&utm_campaign=Badge_Grade_Dashboard)\n\n\nPiat is a syslog and trap listeners APIs which are easy to use,\nit support syslog parsing for multiple vendors\n\n### Installing\n\n `pip install piat`\n\n### Getting Started\n\n#### Example 1:\n\nto run both listeners/servers use the PiatServer API:\n\n from piat.servers import PiatServer\n\n def syslog_cb(syslog_msg):\n \"\"\" callback to be executed on received syslog msg \"\"\"\n data = syslog_msg.get_dictionary()\n # do something with syslog data\n print(data)\n\n def trap_cb(trap_msg):\n \"\"\" callback to be executed on received trap msg \"\"\"\n data = trap_msg.get_dictionary()\n # do something with trap data\n print(data)\n\n if __name__ == '__main__':\n server = PiatServer(traps_callbacks=[trap_cb],\n syslog_callbacks=[syslog_cb],\n trap_community='my_community')\n server.start()\n\nsyslog data example :\n\n {'ip': '192.168.1.1',\n 'timestamp': \n '2019-04-28 21:26:40.809271',\n 'tag': 'LSD-4-LABEL_RESOURCE',\n 'severity': 'warning',\n 'facility': 'syslogd',\n 'msg': 'label range 100-150 exhausted'}\n\n {'ip': '192.168.1.9',\n 'timestamp': '2019-04-28 21:26:41.741839',\n 'tag': 'SYS-6-LOGGINGHOST_STARTSTOP',\n 'severity': 'informational',\n 'facility': 'syslogd',\n 'msg': 'Logging to host 192.1.1.8 port 514 started - CLI initiated'}\n\n\ntrap data example :\n\n {'ip': '192.168.1.1',\n 'timestamp': '2019-04-28 21:30:11.536344',\n 'sysUpTime': '88847929',\n 'snmpTrapOID': 'CISCO-SMI::cisco.0.1',\n 'snmpTrapAddress': '192.168.1.1',\n 'snmpTrapCommunity': 'public',\n 'snmpTrapEnterprise': 'CISCO-SMI::cisco',\n 'local': 'root',\n 'tcpConnState': 'finWait2'}\n\n {'ip': '192.168.1.9',\n 'timestamp': '2019-04-28 21:30:11.544577',\n 'sysUpTime': '88847996',\n 'snmpTrapOID': 'CISCO-SYSLOG-MIB::clogMessageGenerated',\n 'snmpTrapAddress': '192.168.1.9',\n 'snmpTrapCommunity': 'public',\n 'snmpTrapEnterprise': 'CISCO-SYSLOG-MIB::ciscoSyslogMIBNotificationPrefix',\n 'clogHistFacility': 'LSD',\n 'clogHistSeverity': 'warning',\n 'clogHistMsgName': 'LABEL_RESOURCE',\n 'clogHistMsgText': 'label range 100-150 exhausted',\n 'clogHistTimestamp': '88847996'}\n\n#### Example 2:\nto run only syslog server:\n\n from piat.servers import SyslogServer\n\n def syslog_cb(syslog_msg):\n data = syslog_msg.get_dictionary()\n print(data)\n # do something with syslog data\n\n if __name__ == '__main__':\n server = SyslogServer(callbacks=[syslog_cb])\n server.start()\n\n\nalso you can run only trap server:\n\n from piat.servers import SnmpTrapServer\n\n def trap_cb(trap_msg):\n data = trap_msg.get_dictionary()\n # do something with trap data\n print(data)\n\n if __name__ == '__main__':\n server = SnmpTrapServer(callbacks=[trap_cb],community='my_comm')\n server.start()\n\n#### Supported Vendors:\n1) Cisco.\n2) Arista.:\n3) Juniper.\n4) Huawei.\n5) HP.\n6) F5.\n7) Fortinet.\n\n#### Features:\n1) you can pass as many callback as you want, all callbacks will be running concurrently\nin separate threads.\n2) both syslog and trap will be running as an independent process.\n3) you can add more mib dir to be used by the trap server, use `add_mib_dir` kwarg \nto pass the mib dir location.\n4) Piat uses `pysnmp` for trap listening, so if you want to extend the mib support you\nneed to combile the mib files using `mibdump.py` command provided by `pysnmp` to combile\nthe new mibs, then add the compiled mibs dir to piat server using `add_mib_dir`.\n5) we only support Syslog parsing described by [rfc3164](https://tools.ietf.org/html/rfc3164).\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Ali-aqrabawi/piat", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "piat", "package_url": "https://pypi.org/project/piat/", "platform": "", "project_url": "https://pypi.org/project/piat/", "project_urls": { "Homepage": "https://github.com/Ali-aqrabawi/piat" }, "release_url": "https://pypi.org/project/piat/0.0.15/", "requires_dist": [ "pysnmp" ], "requires_python": "", "summary": "Syslog and Trap service API", "version": "0.0.15" }, "last_serial": 5299561, "releases": { "0.0.14": [ { "comment_text": "", "digests": { "md5": "7adc423dea432a80ca4b803abc339fd7", "sha256": "86944cac17cba34894e2d56ee63dd707a2b5dd7b42b8f9f31229b4cc438a1181" }, "downloads": -1, "filename": "piat-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "7adc423dea432a80ca4b803abc339fd7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20475, "upload_time": "2019-05-03T16:43:58", "url": "https://files.pythonhosted.org/packages/26/75/49110bf92aee06dba9c4a31d3c134e57dee3d9553372506cf404cb699014/piat-0.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4b601bd0912398984a8fa0dc28f1873", "sha256": "14ad280c99b4a3508324ca34f039e4aab72baa54f74364038ed0bc18ffd59db5" }, "downloads": -1, "filename": "piat-0.0.14.tar.gz", "has_sig": false, "md5_digest": "d4b601bd0912398984a8fa0dc28f1873", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13848, "upload_time": "2019-05-03T16:44:00", "url": "https://files.pythonhosted.org/packages/a7/41/96f915c15346ab2759f8cf622ddbaa0f0713c7e152cb3b7614ff5fa45e82/piat-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "1749155877a8483cb61a937852e2bc36", "sha256": "d53052e79048140198442fcab0126b1d463363bee34c370e64bd8958737b46b0" }, "downloads": -1, "filename": "piat-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "1749155877a8483cb61a937852e2bc36", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20473, "upload_time": "2019-05-21T20:05:55", "url": "https://files.pythonhosted.org/packages/0f/c7/b347d2188dda64c194f94c6a212a7ddfb175540bfe36ffe2124efa67c840/piat-0.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fddae9fde24f0f9353b5a7290ed033f4", "sha256": "8eeb06d865ddc272b4267c2a61dc1af3f26b33d1ba13124c6c469e8718f2d5f4" }, "downloads": -1, "filename": "piat-0.0.15.tar.gz", "has_sig": false, "md5_digest": "fddae9fde24f0f9353b5a7290ed033f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13855, "upload_time": "2019-05-21T20:05:57", "url": "https://files.pythonhosted.org/packages/4d/8d/1b5c4a08386102bc1cf31c451677140bfae8f5810f1449c54849a41df51e/piat-0.0.15.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1749155877a8483cb61a937852e2bc36", "sha256": "d53052e79048140198442fcab0126b1d463363bee34c370e64bd8958737b46b0" }, "downloads": -1, "filename": "piat-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "1749155877a8483cb61a937852e2bc36", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20473, "upload_time": "2019-05-21T20:05:55", "url": "https://files.pythonhosted.org/packages/0f/c7/b347d2188dda64c194f94c6a212a7ddfb175540bfe36ffe2124efa67c840/piat-0.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fddae9fde24f0f9353b5a7290ed033f4", "sha256": "8eeb06d865ddc272b4267c2a61dc1af3f26b33d1ba13124c6c469e8718f2d5f4" }, "downloads": -1, "filename": "piat-0.0.15.tar.gz", "has_sig": false, "md5_digest": "fddae9fde24f0f9353b5a7290ed033f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13855, "upload_time": "2019-05-21T20:05:57", "url": "https://files.pythonhosted.org/packages/4d/8d/1b5c4a08386102bc1cf31c451677140bfae8f5810f1449c54849a41df51e/piat-0.0.15.tar.gz" } ] }