{"id":15372982,"url":"https://github.com/rs/rrdcollect-remote","last_synced_at":"2025-07-02T11:33:18.874Z","repository":{"id":568422,"uuid":"199824","full_name":"rs/rrdcollect-remote","owner":"rs","description":"Collect rrdcollect output from several hosts to update local RRD files","archived":false,"fork":false,"pushed_at":"2009-05-13T17:35:32.000Z","size":112,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-28T06:04:17.835Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rs.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-05-13T14:01:50.000Z","updated_at":"2014-09-08T20:11:20.000Z","dependencies_parsed_at":"2022-07-08T02:00:31.466Z","dependency_job_id":null,"html_url":"https://github.com/rs/rrdcollect-remote","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/rs/rrdcollect-remote","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs%2Frrdcollect-remote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs%2Frrdcollect-remote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs%2Frrdcollect-remote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs%2Frrdcollect-remote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rs","download_url":"https://codeload.github.com/rs/rrdcollect-remote/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs%2Frrdcollect-remote/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260703921,"owners_count":23049451,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T13:53:52.366Z","updated_at":"2025-06-19T06:40:10.051Z","avatar_url":"https://github.com/rs.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"NAME\n    rrdcollect-remote - Collect rrdcollect output from several hosts to\n    update local RRD files.\n\nSYNOPSIS\n    rrdcollect-remote [-MFh] [-c config] [-l logconfig]\n\nDESCRIPTION\n    rrdcollect-remote is a daemon that uses the rrdcollect ability to print\n    RRD updates commands to its standard output to do updates from a remote\n    machine using a persistent connection. Thus you can centralize\n    rrdcollect outputs of several hosts on a single repository with no need\n    for complex and intrusive file-sharing protocols like NFS or\n    CPU-intensive and inefficiant periodic polling like SNMP and so on.\n\nOPTIONS\n    -c, --conf *file*\n        Path to the configuration file. By default, rrdcollect-remote looks\n        into /etc/rrdcollect-remote/rrdcollect-remote.conf file.\n\n    -l, --logconf *file*\n        Path to the log configuration file. By default, rrdcollect-remote\n        looks into /etc/rrdcollect-remote/log.conf file.\n\n    -p, pid-file *file*\n        Path to the PID file. By default, rrdcollect-remote uses the\n        /var/run/rrdcollect-remote.pid file\n\n    -v, --version\n        Print the version number\n\n    -M, --m4\n        Pre-process the configuration file with the macro expansion package\n        *m4*.\n\n    -F, --forground\n        Don't put rrdcollect-remote process into background.\n\n    -h, --help\n        Print the help message.\n\nCONFIGURATION\n    If the configuration end with .m4 it will be pre-processed with GNU\n    \"m4\".\n\n    host\n        Address of the host on which you want grabbe rrdcollect output.\n\n        You can add a group information to you host. This information can be\n        usefull for target RRD path generation. You add group info, prepend\n        your host with the group name between brackets (eg:\n        [mygroup]example.com).\n\n    retry-interval\n        Number of seconds to wait before retry a connection to the remote\n        host on failure. Default value is 5 seconds.\n\n    rrdfiles-path\n        Path to the base directory for RRD files. You can use some tags that\n        will be changed at runtime like:\n\n        %h  short hostname (minus the domain part)\n\n        %d  domainname (can be empty)\n\n        %H  full hostname\n\n        %g  host group (can be empty)\n\n        %n  name (RRD filename without the directory part nor the .rrd\n            extension)\n\n        %f  RRD filename\n\n        %F  RRD full file path (often same as %f)\n\n        Default value is /var/lib/rrdcollect-remote/%h/%f.\n\n    logconf\n        Path to the log configuration file. Default value is\n        \"/etc/rrdcollect-remote/rrdcollect-remote.conf\".\n\n    pid-file\n        Path to the PID file. Default value is\n        \"/var/run/rrdcollect-remote.pid\".\n\n    auto-rrd-create\n        Enable/disable creation of RRD files when needed. If this option is\n        on, rrdcollect-remote will try to find RRD create information for\n        the missing file in comments of the remote rrdcollect configuration\n        file.\n\n        Can be on or off. Default value is On.\n\n    timeout\n        How many second to wait for connection timeout.\n\nCLIENT INSTALLATION\n    In order to allow rrdcollect-remote to gather rrdcollect output, you\n    have to setup each machine you want to monitor to output rrdcollect data\n    on a specific port. Default port is 9042 if not specified in the\n    rrdcollect-remote configuration.\n\n    The easier want to proceed is to use the super daemon inetd. The inetd\n    line would do the trick:\n\n        9042 stream tcp nowait root /usr/sbin/rrdcollect /usr/sbin/rrdcollect -o-\n\n    If you need some more security, you can use the tcp wrapper to restrict\n    access to certain IPs (see tcpd man page for more info):\n\n        9042 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/rrdcollect -o-\n\nAUTOMATIC RRD CREATION\n    The rrdcollect tool doesn't implement a way to create RRD files. It only\n    update DS of existing RRD files, letting you do the RRD creation work.\n    So rrdcollect-remote use a trick to let you inform it how to create RRD\n    files. It's pretty simple, you just have to put a comment starting with\n    \"rrdtool create \u003cfile.rrd\u003e\" words followed by valid RRD creation\n    arguments. You can break the command if you end the line by a backslash\n    and if the next line (containing the rest of the command) start with a\n    comment character (sharp). Then you can cat the configuration file into\n    the socket just before to start rrdcollect. Thus rrdcollect-remote will\n    keep all lines starting with a sharp (#) and extract rrdcreate\n    \u003cfile.rrd\u003e args... commands from them if needed.\n\n    You can use the special character \"#\" in the filename to match one or\n    more numbers in the file (see example).\n\n    Exemple of valid RRD create info:\n\n        # Auto-RRD-Create Example\n        #\n        # rrdtool create test.rrd --step 5 \\\n        #     DS:foobar:GAUGE:2:0:U \\\n        #     RRA:AVERAGE:0.5:1:18000\n\n        file:///proc/test\n        \"foobar: %d\"            test.rrd:foobar\n\n        # Pattern example\n        #\n        # rrdtool create cpu#-stat.rrd --step 5 \\\n        #     DS:user:COUNTER:60:0:U \\\n        #     DS:nice:COUNTER:60:0:U \\\n        #     DS:system:COUNTER:60:0:U \\\n        #     DS:idle:COUNTER:60:0:U \\\n        #     RRA:AVERAGE:0.5:1:18000\n\n        file:///proc/stat\n        \"cpu0 %d %d %d %d\" cpu0-stat.rrd:user,nice,system,idle\n        \"cpu1 %d %d %d %d\" cpu1-stat.rrd:user,nice,system,idle\n        \"cpu2 %d %d %d %d\" cpu2-stat.rrd:user,nice,system,idle\n        \"cpu3 %d %d %d %d\" cpu3-stat.rrd:user,nice,system,idle\n\n    Example of script you can launch from inetd to allow auto-creation:\n\n        #!/bin/sh\n        grep '^#' /etc/rrdcollect.conf\n        exec /usr/sbin/rrdcollect -o- -c /etc/rrdcollect.conf\n\nLOGGER CONFIGURATION\n    See Log::Log4perl\n\nEXAMPLES\n    See example directory from the source tree.\n\nSEE ALSO\n    rrdcollect, rrdtool, Log::Log4perl, perl\n\nAUTHOR\n    Olivier Poitrey \u003crs@mmania.com\u003e\n\nLICENCE\n    This program is free software; you can redistribute it and/or modify it\n    under the terms of the GNU General Public License as published by the\n    Free Software Foundation; either version 2 of the License, or (at your\n    option) any later version.\n\n    This program is distributed in the hope that it will be useful, but\n    WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\n    Public License for more details.\n\n    You should have received a copy of the GNU General Public License along\n    with this program; if not, write to the Free Software Foundation, Inc.,\n    59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n\nCOPYRIGHT\n    Copyright (C) 2004 - Olivier Poitrey\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frs%2Frrdcollect-remote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frs%2Frrdcollect-remote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frs%2Frrdcollect-remote/lists"}