{ "info": { "author": "OpenStack", "author_email": "openstack-dev@lists.openstack.org", "bugtrack_url": null, "classifiers": [ "Environment :: OpenStack", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Utilities" ], "description": "os-log-merger\n=============\n\n.. image:: https://img.shields.io/pypi/v/os-log-merger.svg\n :target: https://pypi.org/project/os-log-merger\n\n.. image:: https://img.shields.io/pypi/pyversions/os-log-merger.svg\n :target: https://pypi.org/project/os-log-merger\n\n.. image:: https://img.shields.io/:license-apache-blue.svg\n :target: http://www.apache.org/licenses/LICENSE-2.0\n\n\nWhat is os-log-merger?\n~~~~~~~~~~~~~~~~~~~~~~\n\nos-log-merger stands for OpenStack LOG merger, it's a tool designed to take a\nbunch of openstack logs across different projects, and merge them in a single\nfile, ordered by time entries.\n\nIt should work as long as the logs are based on oslo logger output.\n\nQuick presentation: http://mangelajo.github.io/openstack-debugging-presentation/\n\nLimitations\n~~~~~~~~~~~\n\nThis tool is not able to properly (or meaningfully) merge logs if your servers\nare not time synced to a common time source.\n\nHow to install\n~~~~~~~~~~~~~~\npip install os-log-merger\n\nBasic Usage\n~~~~~~~~~~~\n\n.. code:: bash\n\n $ os-log-merger ../bz/1257567/40-os1ctrl01/var/log/neutron/server.log:NS1 \\\n ../bz/1257567/50-os1ctrl02/var/log/neutron/server.log:NS2 \\\n ../bz/1257567/40-os1ctrl01/var/log/neutron/openvswitch-agent.log:OVS1 \\\n ../bz/1257567/50-os1ctrl02/var/log/neutron/openvswitch-agent.log:OVS2\n\n\nPlease note that the :NS1, :NS2, :OVS1, :OVS2 are aliases and can be omitted,\nand in such case, the extra column used to associate a log file to a log line\nwill use the original file path instead of the [ALIAS]\n\nThe previous example would produce something like this::\n\n 2015-08-25 09:37:15.463 [NS1] 15062 DEBUG neutron.context [req-b751a750-f5d8-4b6e-9af3-82d143ef9416 None] Arguments dropped when creating context: {u'project_name': None, u'tenant': None} __init__ /usr/lib/python2.7/site-packages/neutron/context.py:83\n 2015-08-25 09:37:15.463 [NS1] 15062 DEBUG neutron.plugins.ml2.db [req-b751a750-f5d8-4b6e-9af3-82d143ef9416 None] get_ports_and_sgs() called for port_ids [u'4136d577-e02f-47c1-b543-f0bfd65ef85e', u'5d5ea109-4807-4df3-bef4-b5d89c3ffebc', u'6adcffbf-09d5-4a85-9339-9d6beb2bf82c', u'6b4d7b51-c87d-483e-9606-0e2a54ad8184', u'743ccaa6-7ed9-4195-aabd-3d55006338e1', u'dc662767-61a5-4807-b2ed-a7c76b541fd6', u'4decdd33-6f13-46df-b2f0-d9ff99878514', u'34b826df-9787-443c-9bef-084374827a85', u'7bbc404b-3df7-498a-b6fb-e81f9370a19f', u'c12e6e06-ff6a-44dc-b75f-78ec55dd3dd3', u'586cd86d-59d0-434b-ab27-76975ce5abc4', u'79b33879-3232-4b3a-a27c-c0a79da10379', u'ba6a28cc-9851-4cd7-acae-40034a19c761', u'05c4115a-da58-41db-b3f7-7326e1a22971'] get_ports_and_sgs /usr/lib/python2.7/site-packages/neutron/plugins/ml2/db.py:224\n 2015-08-25 09:37:15.463 [OVS1] 12613 DEBUG neutron.agent.linux.utils [req-588c942a-6526-464f-a447-782a5e2d436a None]\n Command: ['sudo', 'neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ovs-vsctl', '--timeout=10', 'list-ports', 'br-int']\n Exit code: 0\n Stdout: 'ha-2cdba01d-e4\\nha-44dca3a9-44\\nha-499d3db7-97\\nha-55a19f5e-ef\\nha-b2d04f15-f2\\nha-b5b271a1-d8\\nha-fa58d644-81\\nint-br-enp7s0\\nint-br-ex\\nqr-34b826df-97\\nqr-5d5ea109-48\\nqr-6adcffbf-09\\nqr-743ccaa6-7e\\nqr-79b33879-32\\nqr-c12e6e06-ff\\nqr-dc662767-61\\n'\n\nReferences to http url files instead of local files is also supported. Files\nwill be cached locally to avoid re-downloading on next runs.\n\nCommon Base\n~~~~~~~~~~~\n\nIn many cases we'll have a common base directory where log reside and they'll\nprobably share the .log extension. So for the sake of brevity os-log-merger\nallows setting the base directory and postfix for all files with the `-b` and\n`-p` option (`--log-base` and `--log-postfix` long options).\n\nExample for Cinder:\n\n.. code:: bash\n\n $ os-log-merger -b /var/log/cinder/ -p .log api:api scheduler:sch volume:vol\n\n\n/var/log/messages\n~~~~~~~~~~~~~~~~~\n\nos-log-merger also supports /var/log/messages type of files with options `-ml`\nand `--msg-logs` options.\n\nSince the format for those files is missing year information -MAR 24 14:11:19-\nthe year from the last file modification will be used.\n\nThese files can also be specified with globs and they support alias definition\nas well.\n\nBeware that openstack files should be listed before `-ml` option files.\n\nExample for Cinder:\n\n.. code:: bash\n\n $ os-log-merger -b /var/log/ cinder/api.log:API -ml messages:MSG *.log\n\n\nTimestamped logs\n~~~~~~~~~~~~~~~~\n\nos-log-merger also supports timestamped -[ 0.003036]- with options `-tl`\nand `--timestamp-logs` options.\n\nSince timestamp many times will not take epoc time as the source of the\ntimestamp but the time the system started, the initial datetime will be\ncalculated by substracting from the file modified datetime the last timestamp\nin the file.\n\nThese files can also be specified with globs and they support alias definition\nas well.\n\nBeware that openstack files should be listed before `-tl` option files.\n\nExample for Cinder:\n\n.. code:: bash\n\n $ os-log-merger -b /var/log/ cinder/api.log:API -tl dmesg:DMSG\n\n\nAuto Alias\n~~~~~~~~~~\n\nAs we've seen above you can easily set you alias using `:ALIAS` after each log\nfile, but since most of log files names and locations are well known,\nos-log-merger has an auto alias feature with different levels to adapt to your\nspecific needs.\n\nIf an alias has been defined in the command line it will disable the auto alias\non that file.\n\n**Level 0**\n\nThe most basic auto alias generation level is level 0, and is the default\nbehavior explained above, where the file path is used as an alias.\n\n**Level 1**\n\nSince default configuration will create considerable long aliases, you can use\nlevel 1 when using base directory and log postfix options to remove them from\nthe alias.\n\nThen the following command line:\n\n.. code:: bash\n\n $ os-log-merger -a1 -b /var/log/cinder/ -p .log api scheduler volume\n\nWould use `api`, `scheduler` and `volume` aliases::\n\n\n 2016-02-01 12:11:17.573 [api] ...\n 2016-02-01 12:11:17.701 [scheduler] ...\n 2016-02-01 11:11:18.667 [volume] ...\n\n**Level 2**\n\nIn some cases we may want to use globbing patterns and auto alias level 1 is no\nlonger useful, so you want to have the filename extensions removed as well as\nthe common paths and reduce the well know log filenames.\n\nWith level 2 os-log-merger will remove all common parts of the path as long as\nresulting paths can still uniquely identify the files within the prefixing path.\n\nIt will also rename well known files like cinder/scheduler.log with c-sch like\nin this example:\n\n.. code:: bash\n\n $ os-log-merger -a2 node?/var/log/{cinder,nova}/*.log\n\nThat will give you::\n\n 2016-02-01 10:23:34.680 [node1/C-API] ...\n 2016-02-01 10:24:34.690 [node1/C-SCH] ...\n 2016-02-01 10:25:34.700 [node1/C-VOL] ...\n 2016-02-01 10:26:34.710 [node1/N-API] ...\n 2016-02-01 10:27:34.680 [node2/N-CPU] ...\n\n**Level 3**\n\nDepending on the name of your non common directories in your log paths you may\nwant to go one step further and reduce them to the minimum instead of\npreserving them unaltered.\n\nReplacing Level 2 auto alias generation in the previous command with the same\nfiles:\n\n.. code:: bash\n\n $ os-log-merger -a3 node?/var/log/{cinder,nova}/*.log\n\nWould result in::\n\n 2016-02-01 10:23:34.680 [1/C-API] ...\n 2016-02-01 10:24:34.690 [1/C-SCH] ...\n 2016-02-01 10:25:34.700 [1/C-VOL] ...\n 2016-02-01 10:26:34.710 [1/N-API] ...\n 2016-02-01 10:27:34.680 [2/N-CPU] ...\n\nSystem probes\n=============\nA set of system probes are provided as companion tools to help debugging\ncommon issues.\n\nnetprobe\n~~~~~~~~\nUnder the probes directory netprobe.py can be found, this tool depends on\ntcpdump being available on the host.\n\nThis probe will inspect the system for new UP network devices periodically,\nand when found, a tcpdump will be started with the configured filter,\nlogging everything on the openstack log format.\n\nThe net namespaces are not filtered by default.\n\nThe network interfaces default filter is::\n\n tap.*|qbr.*|qg-\\.*|qr-\\.*\n\n\nThe default packet filter is::\n\n (arp or rarp) or (udp and (port 67 or port 68)) or icmp or icmp6\n\n\nUsage details::\n\n usage: netprobe [-h] [-v] [--netns-re NETNS_REGEX] [--netdev-re NETDEV_REGEX]\n [--tcpdump-filter TCPDUMP_FILTER]\n [--check-interval CHECK_INTERVAL]\n\n This tool will track system network devices as they appear in a host,\n and start tcpdump processes for each of them, while the output of all\n the tcpdumps goes in a single openstack-like log.\n\n optional arguments:\n -h, --help show this help message and exit\n -v, --version show program's version number and exit\n --netns-re NETNS_REGEX, -n NETNS_REGEX\n --netdev-re NETDEV_REGEX, -d NETDEV_REGEX\n --tcpdump-filter TCPDUMP_FILTER, -t TCPDUMP_FILTER\n --check-interval CHECK_INTERVAL, -i CHECK_INTERVAL\n The interval between interface checks\n --output-file OUTPUT_FILE, -o OUTPUT_FILE\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/openstack/os-log-merger", "keywords": "OpenStack log merger", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "os-log-merger", "package_url": "https://pypi.org/project/os-log-merger/", "platform": "", "project_url": "https://pypi.org/project/os-log-merger/", "project_urls": { "Homepage": "https://github.com/openstack/os-log-merger" }, "release_url": "https://pypi.org/project/os-log-merger/1.2.1/", "requires_dist": [ "pbr", "python-dateutil", "six" ], "requires_python": "", "summary": "OpenStack Log merge tool", "version": "1.2.1" }, "last_serial": 4344126, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "8ee90ccd72b386be4383555dbd5614d3", "sha256": "6ffa80cb6e23c0e20790a593158d287dcd9a6a1f9e8bda90322bbf7a99ba08f1" }, "downloads": -1, "filename": "os-log-merger-1.0.3.tar.gz", "has_sig": false, "md5_digest": "8ee90ccd72b386be4383555dbd5614d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5186, "upload_time": "2016-02-01T10:34:27", "url": "https://files.pythonhosted.org/packages/e8/10/c6cd9dc8fb2180523cd34c1945f1bf4621ade502d181eb3e99e33d1fc4b9/os-log-merger-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "5b1ee9eebfbe1b26e77e811916369c01", "sha256": "8aedb195f0c85c3887c1f3c1f2603a966b7d2d76303bdbe2a83c59405796da85" }, "downloads": -1, "filename": "os-log-merger-1.0.4.tar.gz", "has_sig": false, "md5_digest": "5b1ee9eebfbe1b26e77e811916369c01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18193, "upload_time": "2016-04-26T15:52:41", "url": "https://files.pythonhosted.org/packages/ca/72/2e2bdbc882fa9838261339e3424095c19d865822fe25e145859b597fb4cb/os-log-merger-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "f21b94547fc78f3b26e4491f25becd31", "sha256": "4ab852b6a4ec81a1cfbba216e93f77042943e8ab23ea1ea804124c87cb0d7850" }, "downloads": -1, "filename": "os-log-merger-1.0.5.tar.gz", "has_sig": false, "md5_digest": "f21b94547fc78f3b26e4491f25becd31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18194, "upload_time": "2016-04-26T16:00:44", "url": "https://files.pythonhosted.org/packages/06/b0/e781b1455907c378ca77af4df5f911954b64dd4b13c61fc208cac828793b/os-log-merger-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "2e61477257f42e5e6cdb3b5aed697c61", "sha256": "39fbf7077fd4397337c424d7c469d207c7fd01c61ec5e9ae3f71b7026677e7cd" }, "downloads": -1, "filename": "os-log-merger-1.0.6.tar.gz", "has_sig": false, "md5_digest": "2e61477257f42e5e6cdb3b5aed697c61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18221, "upload_time": "2016-04-26T19:48:25", "url": "https://files.pythonhosted.org/packages/6f/f1/b2a46907086c29725dd0e2296d6f45e7965670a05b43626abc1c81a098a0/os-log-merger-1.0.6.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6ec97e011018f08b28a2caa15a01fb14", "sha256": "0df95de475f83ed626585fa867aa8e1864a263e470451672c6b6995ee427105c" }, "downloads": -1, "filename": "os-log-merger-1.1.0.tar.gz", "has_sig": false, "md5_digest": "6ec97e011018f08b28a2caa15a01fb14", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18050, "upload_time": "2017-03-15T10:44:57", "url": "https://files.pythonhosted.org/packages/b9/ee/9f9f86c6f140030356a8f36200778a234748f91db1727dea8a6891612fbf/os-log-merger-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "f1cf20aa3dc223aa08d93698d66e179e", "sha256": "44b86f1d11a34fc36f7bc719dc98925c9c10cd595c304f73055f0d88f6ad25e2" }, "downloads": -1, "filename": "os_log_merger-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f1cf20aa3dc223aa08d93698d66e179e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23606, "upload_time": "2018-10-04T16:08:16", "url": "https://files.pythonhosted.org/packages/34/f2/6feb0833b28b2f70eea4fdec522d5b0b069669a7e4d2687b793981e0ad45/os_log_merger-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01bba29214a512a897f35f26519cefc1", "sha256": "3fc18c653322d2691579672e4b8695adaca7f294c393a0570287f45372bf3c2e" }, "downloads": -1, "filename": "os-log-merger-1.2.0.tar.gz", "has_sig": false, "md5_digest": "01bba29214a512a897f35f26519cefc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38262351, "upload_time": "2018-10-04T16:07:00", "url": "https://files.pythonhosted.org/packages/8a/4c/400088b802b5cbe12a585fe53cf48330006ee19ebde7688c8231f5f85b2e/os-log-merger-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "fccd6eec105e6132d6c2df7801eb1cd3", "sha256": "514cf096cd1138d173133bd5dc69b4b20db535d89f52310586c04ac01872e468" }, "downloads": -1, "filename": "os_log_merger-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fccd6eec105e6132d6c2df7801eb1cd3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23020, "upload_time": "2018-10-05T13:14:51", "url": "https://files.pythonhosted.org/packages/9a/2a/7a4e1e173cfab1b71cc44e93a8a0a679eaf8cebfd051d2a618f8dcee0566/os_log_merger-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "241c58710861a3695e66a9af085e4115", "sha256": "d534caba485a1fe7b94674e9f8906a742080653cb98f18c0ed7496dbc8d61dc3" }, "downloads": -1, "filename": "os-log-merger-1.2.1.tar.gz", "has_sig": false, "md5_digest": "241c58710861a3695e66a9af085e4115", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38255331, "upload_time": "2018-10-05T13:15:05", "url": "https://files.pythonhosted.org/packages/3f/0c/af89e514e39a40390e9ac721b7946e59fad6bbbf6ede756e884daced1ff9/os-log-merger-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fccd6eec105e6132d6c2df7801eb1cd3", "sha256": "514cf096cd1138d173133bd5dc69b4b20db535d89f52310586c04ac01872e468" }, "downloads": -1, "filename": "os_log_merger-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fccd6eec105e6132d6c2df7801eb1cd3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23020, "upload_time": "2018-10-05T13:14:51", "url": "https://files.pythonhosted.org/packages/9a/2a/7a4e1e173cfab1b71cc44e93a8a0a679eaf8cebfd051d2a618f8dcee0566/os_log_merger-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "241c58710861a3695e66a9af085e4115", "sha256": "d534caba485a1fe7b94674e9f8906a742080653cb98f18c0ed7496dbc8d61dc3" }, "downloads": -1, "filename": "os-log-merger-1.2.1.tar.gz", "has_sig": false, "md5_digest": "241c58710861a3695e66a9af085e4115", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38255331, "upload_time": "2018-10-05T13:15:05", "url": "https://files.pythonhosted.org/packages/3f/0c/af89e514e39a40390e9ac721b7946e59fad6bbbf6ede756e884daced1ff9/os-log-merger-1.2.1.tar.gz" } ] }