{ "info": { "author": "Jonathan Schaeffer", "author_email": "jonathan.schaeffer@univ-grenoble-alpes.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# rsyncstats\n\nParse rsync server logs, compute statistics and store in influxdb.\n\n## Installation\n\nringserverstats is distributed on PyPI https://pypi.org as a universal wheel.\n\n``` bash\n $ pip install rsyncstats\n```\n\n## Influxdb configuration\n\nThis program will fill 2 measurements. You should configure a database for these, and configure a user with write priviledges.\n\n### Prepare database\n\nFirst, create a database, a user, and retention policie.\n\n``` sql\ncreate database rsyncdb\ncreate user rsync with password 'rsyncer'\ngrant write on rsyncdb to rsync\ngrant read on rsyncdb to rsync\ncreate retention policy rp_rsyncevents on rsync duration 1w replication 1\ncreate retention policy rp_rsyncstats on rsync duration 520w replication 1\n```\n\n## Usage\n\nTo work properly, this program needs the following environment variables set :\n\n * `INFLUXDB_HOST` : The host name or adress of influxdb server\n * `INFLUXDB_PORT` : The port number of influxdb server\n * `INFLUXDB_USER` : The influxdb user to authenticate to\n * `INFLUXDB_PASS` : The password to authenticate with\n * `INFLUXDB_DB` : The database name containing the metric\n * `INFLUXDB_VERIFY_SSL` : Set to `yes` or `no` to verify SSL connection\n * `INFLUXDB_SSL` : Should the connection go to https ?\n\n``` bash\n$ ringserstats txlogs.log\n```\n\n## Explanations\n\nThe logs from rsync are metrics suitable for a timeserie database. The idea is to parse the logs, as in the exemple below, and to generate values to insert into an influxdb timeseries database.\n\nThe file `grafana-dashboard.json` can be imported into grafana to visualize this timeserie.\n\nUsed tags in influxdb :\n\n``` sql\nshow tag keys from rsyncevents\nshow tag keys from rsyncstats\n```\n\nThe rsyncevents measure has several tags :\n\n * module : the rsync moduled accesed during transfer\n * geohash : location of the client in geohash format\n * hosthash : a hash of the client ip (usefull to correlate the clients requests)\n * city : an english city name\n\nBecause storing events in the longterm is not very relevant, the `rsyncstats` measurement groups all events by day, by host and by network. The retention policies discribed above will manage the time your data get stored in influxdb.\n\n\n## License\n\n`rsyncstats` is distributed under the terms of the GPL v3 or later. See LICENSE file.\n\n## Build\n\n``` shell\npython3 setup.py sdist bdist_wheel\n```\n\n## Test\n\n``` shell\ntox\n```\n\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/resif/rsyncstats", "keywords": "", "license": "GPL-3.0", "maintainer": "Jonathan Schaeffer", "maintainer_email": "jonathan.schaeffer@univ-grenoble-alpes.fr", "name": "rsyncstats", "package_url": "https://pypi.org/project/rsyncstats/", "platform": "", "project_url": "https://pypi.org/project/rsyncstats/", "project_urls": { "Homepage": "https://github.com/resif/rsyncstats" }, "release_url": "https://pypi.org/project/rsyncstats/0.1.5/", "requires_dist": [ "Click (==7.0)", "influxdb (==5.2.1)", "maxminddb (==1.4.1)", "maxminddb-geolite2 (==2018.703)", "regex (==2019.2.7)", "geohash2" ], "requires_python": "", "summary": "Export logs from rsync daemon logs as influxdb timeseries", "version": "0.1.5" }, "last_serial": 4910947, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "52ec2ab78534ba6af25a309d23a2a942", "sha256": "94638237e40fd21e9a1b2990b793f2e5470538329a5fd3bf8f7d262e627ae275" }, "downloads": -1, "filename": "rsyncstats-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "52ec2ab78534ba6af25a309d23a2a942", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17778, "upload_time": "2019-03-07T10:45:06", "url": "https://files.pythonhosted.org/packages/df/ea/7f142615a2b7d1cb696aaf3a571949c86a74fe04e0c85d08a72733ef26d7/rsyncstats-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9e13a543976e30f531613b3902d01ad", "sha256": "460df65572da0bf24e4134cf7d853101d5b8887c0ae3d7e8f7484be8ade685aa" }, "downloads": -1, "filename": "rsyncstats-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e9e13a543976e30f531613b3902d01ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5677, "upload_time": "2019-03-07T10:45:08", "url": "https://files.pythonhosted.org/packages/55/62/2415d4429a709ef7fbfb440038062272f9af1bacd4ed3f99d1f54378aa7e/rsyncstats-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e8be2f0f7b22dbb9b12fe19a483ef340", "sha256": "e1e446637e2ce20410f3f0497b0fabc1e9d5d06f7129f12a5ff69c4980b6b418" }, "downloads": -1, "filename": "rsyncstats-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e8be2f0f7b22dbb9b12fe19a483ef340", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17775, "upload_time": "2019-03-07T10:47:04", "url": "https://files.pythonhosted.org/packages/e4/d6/37751221b5df2a253c9b2068e7ad5ea9f3fdc723fb7aa6d01a65bd67ddf0/rsyncstats-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca2ade16b31d1bf14025042e39fd2bf6", "sha256": "61c0b86f4609563535f45207d1a68d1a71f5c77771a0a6b9f45ff78b59dd304c" }, "downloads": -1, "filename": "rsyncstats-0.1.2.tar.gz", "has_sig": false, "md5_digest": "ca2ade16b31d1bf14025042e39fd2bf6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5676, "upload_time": "2019-03-07T10:47:06", "url": "https://files.pythonhosted.org/packages/9e/ff/797bddcb49bde27af1bda441d5c6e9334428fa08d2d06aa9b3dae5edb1d2/rsyncstats-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5aa27e907e6f24efac5918d9ad45433d", "sha256": "fa8534d7b00f77c666d3d9df94e851deb66a8f10bbdc550293e634734cab707b" }, "downloads": -1, "filename": "rsyncstats-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5aa27e907e6f24efac5918d9ad45433d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17747, "upload_time": "2019-03-07T14:16:34", "url": "https://files.pythonhosted.org/packages/11/02/3f5fa7cf7a33bc5975a69c232a76b00536fd1e83bef283efa3e406a3aa65/rsyncstats-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34a9d56a2edfa36b2f9dd768361952e3", "sha256": "a27b5136c81191c3a5808d2c53b9e6fbeae009b0f07d5099a40d2bb356aa2d6d" }, "downloads": -1, "filename": "rsyncstats-0.1.3.tar.gz", "has_sig": false, "md5_digest": "34a9d56a2edfa36b2f9dd768361952e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5649, "upload_time": "2019-03-07T14:16:35", "url": "https://files.pythonhosted.org/packages/14/7b/e8ef499c96b2619e47e73a6c064bfa5b7cfdf7b1880217299d7daf37eb1e/rsyncstats-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "c1f28e3df0dbee20eb31bf621da62e11", "sha256": "1283dce7473e11e55967ea7ae63bd5a4894cb64b127463767ef47e430c6077eb" }, "downloads": -1, "filename": "rsyncstats-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c1f28e3df0dbee20eb31bf621da62e11", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17736, "upload_time": "2019-03-07T14:24:16", "url": "https://files.pythonhosted.org/packages/6a/bb/b4f74e5c02cb6bfb4fd0891ed758cc79c02533872d2429d519478d28950f/rsyncstats-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88d7c77f9b5f1069b5a0b5291ccd4845", "sha256": "352d4ffeb27f4b9f5db28941f2d865cdff779e0cef9032a13313a641d3daf4ea" }, "downloads": -1, "filename": "rsyncstats-0.1.4.tar.gz", "has_sig": false, "md5_digest": "88d7c77f9b5f1069b5a0b5291ccd4845", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5640, "upload_time": "2019-03-07T14:24:23", "url": "https://files.pythonhosted.org/packages/f2/14/d901d6f87c66b902017ebc8ee72913dbf1626ff71da592e8b883503c5765/rsyncstats-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "82ab43adc43956891372a82798793fb0", "sha256": "f3c4b780e5f86587af1f19d6c45c3f016a08feb0a8fcd9e45e77ee5f5ef1cfb3" }, "downloads": -1, "filename": "rsyncstats-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "82ab43adc43956891372a82798793fb0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17738, "upload_time": "2019-03-07T14:51:19", "url": "https://files.pythonhosted.org/packages/0e/a7/4b45fc60cdd6b9a647f19b3002aef8636308494120a1f165d82b5fe9486d/rsyncstats-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36af9f1085711a22ecd21effa88703f2", "sha256": "06737f1af6b5a9f131873936d65a2fac36c2ef262f38660c6cb4eba875d57954" }, "downloads": -1, "filename": "rsyncstats-0.1.5.tar.gz", "has_sig": false, "md5_digest": "36af9f1085711a22ecd21effa88703f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5638, "upload_time": "2019-03-07T14:51:20", "url": "https://files.pythonhosted.org/packages/3a/6f/b6a03fd49f0c7c3faf78cd6976374d9852b5fcf889f889479b8089392a5a/rsyncstats-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "82ab43adc43956891372a82798793fb0", "sha256": "f3c4b780e5f86587af1f19d6c45c3f016a08feb0a8fcd9e45e77ee5f5ef1cfb3" }, "downloads": -1, "filename": "rsyncstats-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "82ab43adc43956891372a82798793fb0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17738, "upload_time": "2019-03-07T14:51:19", "url": "https://files.pythonhosted.org/packages/0e/a7/4b45fc60cdd6b9a647f19b3002aef8636308494120a1f165d82b5fe9486d/rsyncstats-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36af9f1085711a22ecd21effa88703f2", "sha256": "06737f1af6b5a9f131873936d65a2fac36c2ef262f38660c6cb4eba875d57954" }, "downloads": -1, "filename": "rsyncstats-0.1.5.tar.gz", "has_sig": false, "md5_digest": "36af9f1085711a22ecd21effa88703f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5638, "upload_time": "2019-03-07T14:51:20", "url": "https://files.pythonhosted.org/packages/3a/6f/b6a03fd49f0c7c3faf78cd6976374d9852b5fcf889f889479b8089392a5a/rsyncstats-0.1.5.tar.gz" } ] }