From f5006d51e8caf9148d393eb68d53dc9fcd28b7b6 Mon Sep 17 00:00:00 2001 From: Promise Akpan Date: Thu, 15 Aug 2019 12:06:39 +0100 Subject: [PATCH] Fix Markdown Lint warnings (#6664) * make remark access all directories * detailed fix after autofix by remark lint * cross check autofix for this set of files * crosscheck more files * crosschecking and small fixes * crosscheck autofixed md files --- CODE_OF_CONDUCT.md | 31 +- CONTRIBUTING.md | 45 +- CONTRIBUTORS.md | 148 +-- DOCUMENTATION.md | 16 +- HISTORICAL_CHANGELOG.md | 923 +++++++++--------- README.md | 483 ++++----- REDISTRIBUTED.md | 223 ++--- SECURITY.md | 20 +- backends/README.md | 199 ++-- backends/WALKTHROUGH.md | 18 +- backends/aws_kinesis/README.md | 7 +- backends/mongodb/README.md | 5 +- backends/prometheus/README.md | 23 +- backends/prometheus/remote_write/README.md | 2 +- collectors/README.md | 72 +- collectors/apps.plugin/README.md | 130 ++- collectors/cgroups.plugin/README.md | 49 +- collectors/charts.d.plugin/README.md | 62 +- collectors/charts.d.plugin/ap/README.md | 44 +- collectors/charts.d.plugin/apache/README.md | 20 +- collectors/charts.d.plugin/apcupsd/README.md | 4 +- collectors/charts.d.plugin/cpu_apps/README.md | 2 +- collectors/charts.d.plugin/cpufreq/README.md | 2 +- collectors/charts.d.plugin/example/README.md | 3 +- collectors/charts.d.plugin/exim/README.md | 2 +- collectors/charts.d.plugin/hddtemp/README.md | 6 +- .../charts.d.plugin/libreswan/README.md | 14 +- .../charts.d.plugin/load_average/README.md | 2 +- collectors/charts.d.plugin/mem_apps/README.md | 2 +- collectors/charts.d.plugin/mysql/README.md | 101 +- collectors/charts.d.plugin/nginx/README.md | 2 +- collectors/charts.d.plugin/nut/README.md | 49 +- collectors/charts.d.plugin/opensips/README.md | 4 +- collectors/charts.d.plugin/phpfpm/README.md | 2 +- collectors/charts.d.plugin/postfix/README.md | 8 +- collectors/charts.d.plugin/sensors/README.md | 21 +- collectors/charts.d.plugin/squid/README.md | 48 +- collectors/charts.d.plugin/tomcat/README.md | 2 +- collectors/checks.plugin/README.md | 2 +- collectors/cups.plugin/README.md | 58 +- collectors/diskspace.plugin/README.md | 9 +- collectors/fping.plugin/README.md | 7 +- collectors/freebsd.plugin/README.md | 2 +- collectors/freeipmi.plugin/README.md | 31 +- collectors/idlejitter.plugin/README.md | 8 +- collectors/ioping.plugin/README.md | 5 +- collectors/macos.plugin/README.md | 2 +- collectors/nfacct.plugin/README.md | 22 +- collectors/node.d.plugin/README.md | 56 +- collectors/node.d.plugin/fronius/README.md | 53 +- collectors/node.d.plugin/named/README.md | 686 +++++++------ collectors/node.d.plugin/sma_webbox/README.md | 57 +- collectors/node.d.plugin/snmp/README.md | 59 +- .../node.d.plugin/stiebeleltron/README.md | 102 +- collectors/perf.plugin/README.md | 5 +- collectors/plugins.d/README.md | 207 ++-- collectors/proc.plugin/README.md | 306 +++--- collectors/python.d.plugin/README.md | 87 +- .../python.d.plugin/adaptec_raid/README.md | 32 +- collectors/python.d.plugin/apache/README.md | 53 +- .../python.d.plugin/beanstalk/README.md | 166 ++-- .../python.d.plugin/bind_rndc/README.md | 87 +- collectors/python.d.plugin/boinc/README.md | 4 +- collectors/python.d.plugin/ceph/README.md | 24 +- collectors/python.d.plugin/chrony/README.md | 21 +- collectors/python.d.plugin/couchdb/README.md | 22 +- .../python.d.plugin/dns_query_time/README.md | 5 +- collectors/python.d.plugin/dnsdist/README.md | 80 +- collectors/python.d.plugin/dockerd/README.md | 24 +- collectors/python.d.plugin/dovecot/README.md | 74 +- .../python.d.plugin/elasticsearch/README.md | 90 +- collectors/python.d.plugin/energid/README.md | 3 +- collectors/python.d.plugin/example/README.md | 2 +- collectors/python.d.plugin/exim/README.md | 7 +- collectors/python.d.plugin/fail2ban/README.md | 8 +- .../python.d.plugin/freeradius/README.md | 86 +- .../python.d.plugin/go_expvar/README.md | 106 +- collectors/python.d.plugin/haproxy/README.md | 30 +- collectors/python.d.plugin/hddtemp/README.md | 4 +- .../python.d.plugin/httpcheck/README.md | 34 +- collectors/python.d.plugin/icecast/README.md | 12 +- collectors/python.d.plugin/ipfs/README.md | 17 +- .../python.d.plugin/isc_dhcpd/README.md | 23 +- .../python.d.plugin/litespeed/README.md | 57 +- collectors/python.d.plugin/logind/README.md | 55 +- collectors/python.d.plugin/megacli/README.md | 32 +- .../python.d.plugin/memcached/README.md | 85 +- collectors/python.d.plugin/mongodb/README.md | 261 ++--- collectors/python.d.plugin/monit/README.md | 29 +- collectors/python.d.plugin/mysql/README.md | 496 +++++----- collectors/python.d.plugin/nginx/README.md | 35 +- .../python.d.plugin/nginx_plus/README.md | 167 ++-- collectors/python.d.plugin/nsd/README.md | 90 +- collectors/python.d.plugin/ntpd/README.md | 59 +- .../python.d.plugin/nvidia_smi/README.md | 38 +- collectors/python.d.plugin/openldap/README.md | 58 +- collectors/python.d.plugin/oracledb/README.md | 73 +- .../python.d.plugin/ovpn_status_log/README.md | 24 +- collectors/python.d.plugin/phpfpm/README.md | 30 +- .../python.d.plugin/portcheck/README.md | 29 +- collectors/python.d.plugin/postfix/README.md | 12 +- collectors/python.d.plugin/postgres/README.md | 72 +- collectors/python.d.plugin/powerdns/README.md | 129 +-- collectors/python.d.plugin/proxysql/README.md | 103 +- collectors/python.d.plugin/puppet/README.md | 48 +- collectors/python.d.plugin/rabbitmq/README.md | 66 +- collectors/python.d.plugin/redis/README.md | 38 +- .../python.d.plugin/rethinkdbs/README.md | 27 +- .../python.d.plugin/retroshare/README.md | 2 +- collectors/python.d.plugin/riakkv/README.md | 127 +-- collectors/python.d.plugin/samba/README.md | 101 +- collectors/python.d.plugin/sensors/README.md | 4 +- .../python.d.plugin/smartd_log/README.md | 52 +- collectors/python.d.plugin/spigotmc/README.md | 4 +- .../python.d.plugin/springboot/README.md | 47 +- collectors/python.d.plugin/squid/README.md | 36 +- collectors/python.d.plugin/tomcat/README.md | 26 +- collectors/python.d.plugin/tor/README.md | 16 +- collectors/python.d.plugin/traefik/README.md | 53 +- collectors/python.d.plugin/unbound/README.md | 100 +- collectors/python.d.plugin/uwsgi/README.md | 28 +- collectors/python.d.plugin/varnish/README.md | 98 +- collectors/python.d.plugin/w1sensor/README.md | 4 +- collectors/python.d.plugin/web_log/README.md | 92 +- collectors/statsd.plugin/README.md | 167 ++-- collectors/tc.plugin/README.md | 49 +- collectors/xenstat.plugin/README.md | 18 +- contrib/README.md | 39 +- contrib/sles11/README.md | 13 +- daemon/README.md | 83 +- daemon/config/README.md | 133 ++- database/README.md | 69 +- database/engine/README.md | 22 +- diagrams/data_structures/README.md | 26 +- docs/Add-more-charts-to-netdata.md | 420 ++++---- docs/Charts.md | 2 +- docs/Demo-Sites.md | 28 +- docs/Donations-netdata-has-received.md | 24 +- docs/GettingStarted.md | 44 +- docs/Performance.md | 52 +- docs/README.md | 4 +- docs/Running-behind-apache.md | 51 +- docs/Running-behind-caddy.md | 6 +- docs/Running-behind-haproxy.md | 6 +- docs/Running-behind-lighttpd.md | 8 +- docs/Running-behind-nginx.md | 39 +- docs/Third-Party-Plugins.md | 2 +- docs/a-github-star-is-important.md | 2 +- docs/anonymous-statistics.md | 55 +- docs/configuration-guide.md | 53 +- .../contributing-documentation.md | 23 +- docs/contributing/style-guide.md | 73 +- docs/high-performance-netdata.md | 41 +- docs/netdata-cloud/README.md | 19 +- docs/netdata-cloud/nodes-view.md | 126 ++- docs/netdata-cloud/signing-in.md | 41 +- docs/netdata-for-IoT.md | 6 +- docs/netdata-security.md | 58 +- docs/privacy-policy.md | 37 +- docs/terms-of-use.md | 4 +- docs/what-is-netdata.md | 385 ++++---- docs/why-netdata/1s-granularity.md | 21 +- docs/why-netdata/README.md | 18 +- docs/why-netdata/immediate-results.md | 24 +- docs/why-netdata/meaningful-presentation.md | 26 +- docs/why-netdata/unlimited-metrics.md | 12 +- health/README.md | 190 ++-- health/notifications/README.md | 34 +- health/notifications/alerta/README.md | 14 +- health/notifications/awssns/README.md | 32 +- health/notifications/custom/README.md | 76 +- health/notifications/discord/README.md | 7 +- health/notifications/email/README.md | 5 +- health/notifications/flock/README.md | 9 +- health/notifications/irc/README.md | 20 +- health/notifications/kavenegar/README.md | 10 +- health/notifications/messagebird/README.md | 15 +- health/notifications/pagerduty/README.md | 4 +- health/notifications/pushbullet/README.md | 13 +- health/notifications/pushover/README.md | 6 +- health/notifications/rocketchat/README.md | 9 +- health/notifications/slack/README.md | 18 +- health/notifications/smstools3/README.md | 6 +- health/notifications/syslog/README.md | 10 +- health/notifications/telegram/README.md | 8 +- health/notifications/twilio/README.md | 12 +- health/notifications/web/README.md | 2 +- libnetdata/README.md | 5 +- libnetdata/adaptive_resortable_list/README.md | 43 +- libnetdata/avl/README.md | 2 +- libnetdata/buffer/README.md | 2 +- libnetdata/clocks/README.md | 3 +- libnetdata/config/README.md | 11 +- libnetdata/dictionary/README.md | 3 +- libnetdata/eval/README.md | 3 +- libnetdata/json/README.md | 4 +- libnetdata/locks/README.md | 3 +- libnetdata/log/README.md | 3 +- libnetdata/popen/README.md | 3 +- libnetdata/procfile/README.md | 47 +- libnetdata/simple_pattern/README.md | 3 +- libnetdata/socket/README.md | 3 +- libnetdata/statistical/README.md | 3 +- libnetdata/storage_number/README.md | 2 +- libnetdata/threads/README.md | 3 +- libnetdata/url/README.md | 3 +- package.json | 2 +- packaging/DISTRIBUTIONS.md | 325 +++--- packaging/docker/README.md | 51 +- packaging/installer/README.md | 235 ++--- packaging/installer/UNINSTALL.md | 15 +- packaging/installer/UPDATE.md | 8 +- packaging/maintainers/README.md | 25 +- packaging/makeself/README.md | 20 +- registry/README.md | 46 +- streaming/README.md | 108 +- tests/README.md | 56 +- tests/health_mgmtapi/README.md | 4 +- web/README.md | 8 +- web/api/README.md | 2 +- web/api/badges/README.md | 173 ++-- web/api/exporters/README.md | 2 +- web/api/exporters/prometheus/README.md | 2 +- web/api/exporters/shell/README.md | 2 +- web/api/formatters/README.md | 31 +- web/api/formatters/csv/README.md | 88 +- web/api/formatters/json/README.md | 37 +- web/api/formatters/ssv/README.md | 26 +- web/api/formatters/value/README.md | 12 +- web/api/health/README.md | 52 +- web/api/queries/README.md | 125 ++- web/api/queries/average/README.md | 10 +- web/api/queries/des/README.md | 14 +- web/api/queries/incremental_sum/README.md | 12 +- web/api/queries/max/README.md | 10 +- web/api/queries/median/README.md | 12 +- web/api/queries/min/README.md | 10 +- web/api/queries/ses/README.md | 14 +- web/api/queries/stddev/README.md | 23 +- web/api/queries/sum/README.md | 12 +- web/gui/README.md | 32 +- web/gui/confluence/README.md | 24 +- web/gui/custom/README.md | 65 +- web/server/README.md | 126 +-- web/server/static/README.md | 2 +- 245 files changed, 6870 insertions(+), 6404 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 13424ce25bd19a..c3427a509bbb86 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,22 +14,22 @@ appearance, race, religion, or sexual identity and orientation. Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting ## Our Responsibilities @@ -68,9 +68,8 @@ members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html +available at [homepage]: https://www.contributor-covenant.org - -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCODE_OF_CONDUCT&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]() +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCODE_OF_CONDUCT&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e09030eb09c32c..ab7ddff8db8210 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,26 +32,29 @@ Netdata is a complex system, with many integrations for the various collectors, #### Sponsor a collector Netdata is all about simplicity and meaningful presentation. A "sponsor" for a collector does the following: - - Assists the devs with feedback on the charts. - - Specifies the alarms that would make sense for each metric. - - When the implementation passes QA, tests the implementation in production. - - Uses the charts and alarms in his/her day to day work and provides additional feedback. - - Requests additional improvements as things change (e.g. new versions of an API are available). + +- Assists the devs with feedback on the charts. +- Specifies the alarms that would make sense for each metric. +- When the implementation passes QA, tests the implementation in production. +- Uses the charts and alarms in his/her day to day work and provides additional feedback. +- Requests additional improvements as things change (e.g. new versions of an API are available). #### Sponsor a backend We already support various [backends](backends) and we intend to support more. A "sponsor" for a backend: -- Suggests ways in which the information in Netdata could best be exposed to the particular backend, to facilitate meaningful presentation. - - When the implementation passes QA, tests the implementation in production. -- Uses the backend in his/her day to day work and provides additional feedback, after the backend is delivered. - - Requests additional improvements as things change (e.g. new versions of the backend API are available). + +- Suggests ways in which the information in Netdata could best be exposed to the particular backend, to facilitate meaningful presentation. +- When the implementation passes QA, tests the implementation in production. +- Uses the backend in his/her day to day work and provides additional feedback, after the backend is delivered. +- Requests additional improvements as things change (e.g. new versions of the backend API are available). #### Sponsor a notification method Netdata delivers alarms via various [notification methods](health/notifications). A "sponsor" for a notification method: -- Points the devs to the documentation for the API and identifies any unusual features of interest (e.g. the ability in Slack to send a notification either to a channel or to a user). -- Uses the notification method in production and provides feedback. -- Requests additional improvements as things change (e.g. new versions of the API are available). + +- Points the devs to the documentation for the API and identifies any unusual features of interest (e.g. the ability in Slack to send a notification either to a channel or to a user). +- Uses the notification method in production and provides feedback. +- Requests additional improvements as things change (e.g. new versions of the API are available). ## Experienced Users @@ -75,7 +78,6 @@ We expect most contributions to be for new data collection plugins. You can read Of course we appreciate contributions for any other part of the NetData agent, including the [daemon](daemon), [backends for long term archiving](backends/), innovative ways of using the [REST API](web/api) to create cool [Custom Dashboards](web/gui/custom/) or to include NetData charts in other applications, similarly to what can be done with [Confluence](web/gui/confluence/). - ### Contributions Ground Rules #### Code of Conduct and CLA @@ -131,16 +133,18 @@ The single most important rule when writing code is this: *check the surrounding We use several different languages and have had contributions from several people with different styles. When in doubt, you can check similar existing code. For C contributions in particular, we try to respect the [Linux kernel style](https://www.kernel.org/doc/html/v4.10/process/coding-style.html), with the following exceptions: - - Use 4 space indentation instead of 8 - - We occassionally have multiple statements on a single line (e.g. `if (a) b;`) - - Allow max line length of 120 chars - - Allow opening brace at the end of a function declaration: `function() {`. + +- Use 4 space indentation instead of 8 +- We occassionally have multiple statements on a single line (e.g. `if (a) b;`) +- Allow max line length of 120 chars +- Allow opening brace at the end of a function declaration: `function() {`. ### Your first pull request There are several guides for pull requests, such as the following: -- https://thenewstack.io/getting-legit-with-git-and-github-your-first-pull-request/ -- https://github.com/firstcontributions/first-contributions#first-contributions + +- +- However, it's not always that simple. Our [PR approval process](#pr-approval-process) and the several merges we do every day may cause your fork to get behind the Netdata master. If you worked on something that has changed in the meantime, you will be required to do a git rebase, to bring your fork to the correct state. A very easy to follow guide on how to do it without learning all the intricacies of GitHub can be found [here](https://medium.com/@ruthmpardee/git-fork-workflow-using-rebase-587a144be470) @@ -154,5 +158,4 @@ We also have a series of automated checks running, such as linters to check code One special type of automated check is the "WIP" check. You may add "[WIP]" to the title of the PR, to tell us that the particular request is "Work In Progress" and should not be merged. You're still not done with it, you created it to get some feedback. When you're ready to get the final approvals and get it merged, just remove the "[WIP]" string from the title of your PR and the "WIP" check will pass. - -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCONTRIBUTING&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]() +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCONTRIBUTING&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index c6f51348b054e7..2cfdee4e38955b 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -17,115 +17,117 @@ contributions for any other purpose. ## copyright license -The Contributor (*you*) grants Netdata Inc. a perpetual, worldwide, non-exclusive, +The Contributor (_you_) grants Netdata Inc. a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute his contributions and such derivative works. ## copyright transfer -The Contributor (*you*) hereby assigns Netdata Inc. copyright in his +The Contributor (_you_) hereby assigns Netdata Inc. copyright in his contributions, to be licensed under the same terms as the rest of the code. -> *Note: this means we may re-license Netdata (your contributions included) +> _Note: this means we may re-license Netdata (your contributions included) > any way we see fit, without asking your permission. > We intend to keep the Netdata agent forever FOSS. > But open-source licenses have significant differences and in our attempt to > help Netdata grow we may have to distribute it under a different license. > For example, CNCF, the Cloud Native Computing Foundation, requires Netdata > to be licensed under Apache-2.0 for it to be accepted as a member of the -> Foundation. We want to be free to do it.* +> Foundation. We want to be free to do it._ ## original work -The Contributor (*you*) represent that each of his contributions is his +The Contributor (_you_) represent that each of his contributions is his original creation and that he is legally entitled to grant the above license. -> *Note: if you are committing third party code, please make sure the third party +> _Note: if you are committing third party code, please make sure the third party > license or any other restrictions are also included with your commits. > Netdata includes many third party libraries and tools and this is not a > problem, provided that the license of the third party code is compatible with -> the one we use for Netdata.* +> the one we use for Netdata._ ## signature -Since Sep 17th 2018, we use https://cla-assistant.io/netdata/netdata for signing the CLA, on all pull requests. +Since Sep 17th 2018, we use for signing the CLA, on all pull requests. Old contributors can sign the CLA at any time using this link. ## HISTORICAL SIGNATURES -(they have been imported to https://cla-assistant.io/netdata/netdata already) -The Contributor (*you*) signs this agreement by adding his personal data in +(they have been imported to already) + +The Contributor (_you_) signs this agreement by adding his personal data in this document and committing it to the project repo (the same way contributions are submitted to the project). -By signing once, all contributions (past and future) of The Contributor (*you*), +By signing once, all contributions (past and future) of The Contributor (_you_), are subject to this agreement. -> *Note: so you have to:* -> 1. add your github username and name in this file -> 2. commit it to the repo with a PR, using the same github username, or include this change in your first PR. +> _Note: so you have to:_ +> +> 1. add your github username and name in this file +> 2. commit it to the repo with a PR, using the same github username, or include this change in your first PR. # Netdata contributors This is the list of contributors that have signed this agreement: -username|name|email (optional) -:--------:|:----:|:---------------- -@lets00|Luís Eduardo|leduardo@lsd.ufcg.edu.br -@ktsaou|Costa Tsaousis|costa@tsaousis.gr -@tycho|Steven Noonan|steven@uplinklabs.net -@philwhineray|Phil Whineray| -@paulfantom|Paweł Krupa|pawel@krupa.net.pl -@Ferroin|Austin S. Hemmelgarn|ahferroin7@gmail.com -@glensc|Elan Ruusamäe| -@l2isbad|Ilya Mashchenko|ilyamaschenko@gmail.com -@rlefevre|Rémi Lefèvre| -@vlvkobal|Vladimir Kobal|vlad@prokk.net -@simonnagl|Simon Nagl| -@manosf|Emmanouil Fokas|manosf@protonmail.com -@user501254|Ashesh Singh|user501254@gmail.com -@t-h-e|Stefan Forstenlechner| -@facetoe|Facetoe| -@ntlug|Christopher Cox|ccox@endlessnow.com -@alonbl|Alon Bar-Lev|alon.barlev@gmail.com -@Wing924|Wei He|weihe924stephen@gmail.com -@NeonSludge|Kirill Buev|kirill.buev@gmx.com -@kmlucy|Kyle Lucy|kmlucy@gmail.com -@RicardoSette|Ricardo Sette|ricardosette@freebsdbrasil.com.br -@383c57|Shinichi Tagashira| -@davidak|David Kleuker|netdata-contributors+vyff@davidak.de -@ccremer|Christian Cremer| -@jimcooley|Jim Cooley|jim.cooley@healthvana.com -@Chocobo1|Mike Tzou| -@vinyasmusic|Vinyas Malagaudanavar|vinyasmusic@gmail.com -@cosmix|Dimosthenis Kaponis| -@shadycuz|Levi Blaney|shadycuz+spam@gmail.com -@Flums|Philip Gabrielsen|philip@digno.no -@domschl|Dominik Schlösser|dominik.schloesser@gmail.com -@tioumen|Guillaume Hospital| -@arch273|Jacob Ayres -@x4FF3|David Fuellgraf| -@jasonwbarnett|Jason Barnett| -@ecowed|Ed Wade| -@wungad|Rob Man| -@rda0|Sven Mäder|maeder@phys.ethz.ch -@alibo|Ali Borhani|aliborhani1@gmail.com -@Nani-o|Sofiane Medjkoune|sofiane@medjkoune.fr -@n0guest|Evgeniy K.|ask@osshelp.ru -@amichelic|Adalbert Michelic| -@abalabahaha|abalabahaha|hi@abal.moe -@illes|Illes S.| -@plasticrake|Patrick Seal -@jonfairbanks|Jon Fairbanks -@pjz|Paul Jimenez|pj@place.org -@jgrossiord|Julien Grossiord|julien@grossiord.net -@pohzipohzi|Poh Zi How -@vladmovchan|Vladyslav Movchan|vladislav.movchan@gmail.com -@gmosx|George Moschovitis -@adherzog|Adam Herzog|adam@adamherzog.com -@skrzyp1|Jerzy S.| -@akwan|Alan Kwan| -@underhood|Timotej Šiškovič| - -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCONTRIBUTORS&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]() +|username|name|email (optional)| +|:------:|:--:|:---------------| +|@lets00|Luís Eduardo|leduardo@lsd.ufcg.edu.br| +|@ktsaou|Costa Tsaousis|costa@tsaousis.gr| +|@tycho|Steven Noonan|steven@uplinklabs.net| +|@philwhineray|Phil Whineray|| +|@paulfantom|Paweł Krupa|pawel@krupa.net.pl| +|@Ferroin|Austin S. Hemmelgarn|ahferroin7@gmail.com| +|@glensc|Elan Ruusamäe|| +|@l2isbad|Ilya Mashchenko|ilyamaschenko@gmail.com| +|@rlefevre|Rémi Lefèvre|| +|@vlvkobal|Vladimir Kobal|vlad@prokk.net| +|@simonnagl|Simon Nagl|| +|@manosf|Emmanouil Fokas|manosf@protonmail.com| +|@user501254|Ashesh Singh|user501254@gmail.com| +|@t-h-e|Stefan Forstenlechner|| +|@facetoe|Facetoe|| +|@ntlug|Christopher Cox|ccox@endlessnow.com| +|@alonbl|Alon Bar-Lev|alon.barlev@gmail.com| +|@Wing924|Wei He|weihe924stephen@gmail.com| +|@NeonSludge|Kirill Buev|kirill.buev@gmx.com| +|@kmlucy|Kyle Lucy|kmlucy@gmail.com| +|@RicardoSette|Ricardo Sette|ricardosette@freebsdbrasil.com.br| +|@383c57|Shinichi Tagashira|| +|@davidak|David Kleuker|netdata-contributors+vyff@davidak.de| +|@ccremer|Christian Cremer|| +|@jimcooley|Jim Cooley|jim.cooley@healthvana.com| +|@Chocobo1|Mike Tzou|| +|@vinyasmusic|Vinyas Malagaudanavar|vinyasmusic@gmail.com| +|@cosmix|Dimosthenis Kaponis|| +|@shadycuz|Levi Blaney|shadycuz+spam@gmail.com| +|@Flums|Philip Gabrielsen|philip@digno.no| +|@domschl|Dominik Schlösser|dominik.schloesser@gmail.com| +|@tioumen|Guillaume Hospital|| +|@arch273|Jacob Ayres|| +|@x4FF3|David Fuellgraf|| +|@jasonwbarnett|Jason Barnett|| +|@ecowed|Ed Wade|| +|@wungad|Rob Man|| +|@rda0|Sven Mäder|maeder@phys.ethz.ch| +|@alibo|Ali Borhani|aliborhani1@gmail.com| +|@Nani-o|Sofiane Medjkoune|sofiane@medjkoune.fr| +|@n0guest|Evgeniy K.|ask@osshelp.ru| +|@amichelic|Adalbert Michelic|| +|@abalabahaha|abalabahaha|hi@abal.moe| +|@illes|Illes S.|| +|@plasticrake|Patrick Seal|| +|@jonfairbanks|Jon Fairbanks|| +|@pjz|Paul Jimenez|pj@place.org| +|@jgrossiord|Julien Grossiord|julien@grossiord.net| +|@pohzipohzi|Poh Zi How|| +|@vladmovchan|Vladyslav Movchan|vladislav.movchan@gmail.com| +|@gmosx|George Moschovitis|| +|@adherzog|Adam Herzog|adam@adamherzog.com| +|@skrzyp1|Jerzy S.|| +|@akwan|Alan Kwan|| +|@underhood|Timotej Šiškovič|| + +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2FCONTRIBUTORS&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>) diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md index c9699d6cb4854d..c24c011f10cf67 100644 --- a/DOCUMENTATION.md +++ b/DOCUMENTATION.md @@ -2,7 +2,6 @@ **Netdata is real-time health monitoring and performance troubleshooting for systems and applications.** It helps you instantly diagnose slowdowns and anomalies in your infrastructure with thousands of metrics, interactive visualizations, and insightful health alarms. - ## Navigating the Netdata documentation Welcome! You've arrived at the documentation for Netdata. Use the links below to find answers to the most common questions about Netdata, such as how to install it, getting started guides, basic configuration, and adding more charts. Or, explore all of Netdata's documentation using the table of contents to your left. @@ -30,19 +29,18 @@ Welcome! You've arrived at the documentation for Netdata. Use the links below to **Advanced users**: For those who already understand how to access a Netdata dashboard and perform basic configuration, feel free to see what's behind any of these other doors. - - [Netdata Behind Nginx](docs/Running-behind-nginx.md): Use an Nginx web server instead of Netdata's built-in server to enable TLS, HTTPS, and basic authentication. - - [Add More Charts](docs/Add-more-charts-to-netdata.md): Enable new internal or external plugins and understand when auto-detection works. - - [Performance](docs/Performance.md): Tips on running Netdata on devices with limited CPU and RAM resources, such as embedded devices, IoT, and edge devices. - - [Streaming](streaming/): Information for those who want to centralize Netdata metrics from any number of distributed agents. - - [Backends](backends/): Learn how to archive Netdata's real-time metrics to a time series database (like Prometheus) for long-term archiving. - +- [Netdata Behind Nginx](docs/Running-behind-nginx.md): Use an Nginx web server instead of Netdata's built-in server to enable TLS, HTTPS, and basic authentication. +- [Add More Charts](docs/Add-more-charts-to-netdata.md): Enable new internal or external plugins and understand when auto-detection works. +- [Performance](docs/Performance.md): Tips on running Netdata on devices with limited CPU and RAM resources, such as embedded devices, IoT, and edge devices. +- [Streaming](streaming/): Information for those who want to centralize Netdata metrics from any number of distributed agents. +- [Backends](backends/): Learn how to archive Netdata's real-time metrics to a time series database (like Prometheus) for long-term archiving. Visit the [contributing guide](CONTRIBUTING.md), [contributing to documentation guide](docs/contributing/contributing-documentation.md), and [documentation style guide](docs/contributing/style-guide.md) to learn more about our community and how you can get started contributing to Netdata. - ## Subscribe for news and tips from monitoring pros + ``` -4. `jquery.nanoscroller.min.js`, required for the scrollbar of the chart legends. +4. `jquery.nanoscroller.min.js`, required for the scrollbar of the chart legends. -5. `bootstrap-toggle.min.js` and `bootstrap-toggle.min.css`, required for the settings toggle buttons. +5. `bootstrap-toggle.min.js` and `bootstrap-toggle.min.css`, required for the settings toggle buttons. -6. `font-awesome.min.css`, for icons. +6. `font-awesome.min.css`, for icons. When `dashboard.js` loads will scan the page for elements that define charts (see below) and immediately start refreshing them. Keep in mind more javascript modules may be loaded (every chart library is a different javascript file, that is loaded on first use). @@ -129,7 +127,7 @@ If you need to set any other URL as the default Netdata server for all charts th --- -# Adding charts +## Adding charts To add charts, you need to add a `div` for each of them. Each of these `div` elements accept a few `data-` attributes: @@ -160,9 +158,9 @@ You can specify the duration of the chart (how much time of data it will show) u The can be either: -- **absolute** unix timestamps (in javascript terms, they are `new Date().getTime() / 1000`. Using absolute timestamps you can have a chart showing always the same time-frame. +- **absolute** unix timestamps (in javascript terms, they are `new Date().getTime() / 1000`. Using absolute timestamps you can have a chart showing always the same time-frame. -- **relative** number of seconds to now. To show the last 10 minutes of data, `AFTER_SECONDS` must be `-600` (relative to now) and `BEFORE_SECONDS` must be `0` (meaning: now). If you want the chart to auto-refresh the current values, you need to specify **relative** values. +- **relative** number of seconds to now. To show the last 10 minutes of data, `AFTER_SECONDS` must be `-600` (relative to now) and `BEFORE_SECONDS` must be `0` (meaning: now). If you want the chart to auto-refresh the current values, you need to specify **relative** values. ### Chart sizes @@ -197,6 +195,7 @@ If you have ephemeral monitoring setup ([More info here](../../../streaming/#mon data-host="http://yournetdata.server:19999/host/reported-hostname" > ``` + ### Chart library The default chart library is `dygraph`. You set a different chart library per chart using this: @@ -209,13 +208,12 @@ The default chart library is `dygraph`. You set a different chart library per ch Each chart library may support more chart-library specific settings. Please refer to the documentation of the chart library you are interested, in this wiki or the source code: -- options `data-dygraph-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L6251-L6361) -- options `data-easypiechart-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L7954-L7966) -- options `data-gauge-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L8182-L8189) -- options `data-d3pie-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L7394-L7561) -- options `data-sparkline-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L5940-L5985) -- options `data-peity-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L5892) - +- options `data-dygraph-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L6251-L6361) +- options `data-easypiechart-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L7954-L7966) +- options `data-gauge-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L8182-L8189) +- options `data-d3pie-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L7394-L7561) +- options `data-sparkline-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L5940-L5985) +- options `data-peity-XXX` [here](https://github.com/netdata/netdata/blob/643cfe20a8d8beba0ed31ec6afaade80853fd310/web/dashboard.js#L5892) ### Data points @@ -270,9 +268,9 @@ Netdata can change the rate of charts on the fly. So a charts that shows values The above will provide the average rate per minute (60 seconds). Use 60 for `/minute`, 3600 for `/hour`, 86400 for `/day` (provided you have that many data). -- The `data-gtime` setting does not change the units of the chart. You have to change them yourself with `data-units`. -- This works only for `data-method="average"`. -- Netdata may aggregate multiple points to satisfy the `data-points` setting. For example, you request `per minute` but the requested number of points to be returned are not enough to report every single minute. In this case Netdata will sum the `per second` raw data of the database to find the `per minute` for every single minute and then **average** them to find the **average per minute rate of every X minutes**. So, it works as if the data collection frequency was per minute. +- The `data-gtime` setting does not change the units of the chart. You have to change them yourself with `data-units`. +- This works only for `data-method="average"`. +- Netdata may aggregate multiple points to satisfy the `data-points` setting. For example, you request `per minute` but the requested number of points to be returned are not enough to report every single minute. In this case Netdata will sum the `per second` raw data of the database to find the `per minute` for every single minute and then **average** them to find the **average per minute rate of every X minutes**. So, it works as if the data collection frequency was per minute. ### Selecting dimensions @@ -285,7 +283,7 @@ You can select specific dimensions using this: > ``` -Netdata supports coma (` , `) or pipe (` | `) separated [simple patterns](../../../libnetdata/simple_pattern/) for dimensions. By default it searches for both dimension IDs and dimension NAMEs. You can control the target of the match with: `data-append-options="match-ids"` or `data-append-options="match-names"`. Spaces in `data-dimensions=""` are matched in the dimension names and IDs. +Netdata supports coma (`,`) or pipe (`|`) separated [simple patterns](../../../libnetdata/simple_pattern/) for dimensions. By default it searches for both dimension IDs and dimension NAMEs. You can control the target of the match with: `data-append-options="match-ids"` or `data-append-options="match-names"`. Spaces in `data-dimensions=""` are matched in the dimension names and IDs. ### Chart title @@ -354,10 +352,10 @@ You can append Netdata **[REST API v1](../../api)** data options, using this: A few useful options are: -- `absolute` to show all values are absolute (i.e. turn negative dimensions to positive) -- `percentage` to express the values as a percentage of the chart total (so, the values of the dimensions are added, and the sum of them if expressed as a percentage of the sum of all dimensions) -- `unaligned` to prevent Netdata from aligning the charts (e.g. when requesting 60 seconds aggregation per point, Netdata returns chart data aligned to XX:XX:00 to XX:XX:59 - similarly for hours, days, etc - the `unaligned` option disables this feature) -- `match-ids` or `match-names` is used to control what `data-dimensions=` will match. +- `absolute` to show all values are absolute (i.e. turn negative dimensions to positive) +- `percentage` to express the values as a percentage of the chart total (so, the values of the dimensions are added, and the sum of them if expressed as a percentage of the sum of all dimensions) +- `unaligned` to prevent Netdata from aligning the charts (e.g. when requesting 60 seconds aggregation per point, Netdata returns chart data aligned to XX:XX:00 to XX:XX:59 - similarly for hours, days, etc - the `unaligned` option disables this feature) +- `match-ids` or `match-names` is used to control what `data-dimensions=` will match. ### Chart library performance @@ -413,5 +411,4 @@ Charts can be scaled to specific units with `data-desired-units="UNITS"`. If the > ``` - -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fgui%2Fcustom%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]() +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fgui%2Fcustom%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>) diff --git a/web/server/README.md b/web/server/README.md index a448d9ecbcd5e2..30cb00699a5d1d 100644 --- a/web/server/README.md +++ b/web/server/README.md @@ -38,13 +38,13 @@ The ports to bind are controlled via `[web].bind to`, like this: Using the above, Netdata will bind to: -- IPv4 127.0.0.1 at port 19999 (port was used from `default port`). Only the UI (dashboard) and the read API will be accessible on this port. Both HTTP and HTTPS requests will be accepted. -- IPv4 10.1.1.1 at port 19998. The management API and `netdata.conf` will be accessible on this port. -- All the IPs `hostname` resolves to (both IPv4 and IPv6 depending on the resolved IPs) at port 19997. Only badges will be accessible on this port. -- All IPv6 IPs at port 19996. Only metric streaming requests from other Netdata agents will be accepted on this port. Only encrypted streams will be allowed (i.e. slaves also need to be [configured for TLS](../../streaming). -- All the IPs `localhost` resolves to (both IPv4 and IPv6 depending the resolved IPs) at port 19996. This port will only accept registry API requests. -- All IPv4 and IPv6 IPs at port `http` as set in `/etc/services`. Only the UI (dashboard) and the read API will be accessible on this port. -- Unix domain socket `/tmp/netdata.sock`. All requests are serviceable on this socket. +- IPv4 127.0.0.1 at port 19999 (port was used from `default port`). Only the UI (dashboard) and the read API will be accessible on this port. Both HTTP and HTTPS requests will be accepted. +- IPv4 10.1.1.1 at port 19998. The management API and `netdata.conf` will be accessible on this port. +- All the IPs `hostname` resolves to (both IPv4 and IPv6 depending on the resolved IPs) at port 19997. Only badges will be accessible on this port. +- All IPv6 IPs at port 19996. Only metric streaming requests from other Netdata agents will be accepted on this port. Only encrypted streams will be allowed (i.e. slaves also need to be [configured for TLS](../../streaming). +- All the IPs `localhost` resolves to (both IPv4 and IPv6 depending the resolved IPs) at port 19996. This port will only accept registry API requests. +- All IPv4 and IPv6 IPs at port `http` as set in `/etc/services`. Only the UI (dashboard) and the read API will be accessible on this port. +- Unix domain socket `/tmp/netdata.sock`. All requests are serviceable on this socket. The option `[web].default port` is used when an entries in `[web].bind to` do not specify a port. @@ -53,21 +53,22 @@ As shown in the example above, these permissions are optional, with the default The request types are strings identical to the `allow X from` directives of the access lists, i.e. `dashboard`, `streaming`, `registry`, `netdata.conf`, `badges` and `management`. The access lists themselves and the general setting `allow connections from` in the next section are applied regardless of the ports that are configured to provide these services. The API requests are serviced as follows: -- `dashboard` gives access to the UI, the read API and badges API calls. -- `badges` gives access only to the badges API calls. -- `management` gives access only to the management API calls. + +- `dashboard` gives access to the UI, the read API and badges API calls. +- `badges` gives access only to the badges API calls. +- `management` gives access only to the management API calls. ### Enabling TLS support Since v1.16.0, Netdata supports encrypted HTTP connections to the web server, plus encryption of streaming data between a slave and its master, via the TLS 1.2 protocol. -Inbound unix socket connections are unaffected, regardless of the TLS settings. +Inbound unix socket connections are unaffected, regardless of the TLS settings.\ ??? info "Differences in TLS and SSL terminology" While Netdata uses Transport Layer Security (TLS) 1.2 to encrypt communications rather than the obsolete SSL protocol, it's still common practice to refer to encrypted web connections as `SSL`. Many vendors, like Nginx and even Netdata itself, use `SSL` in configuration files, whereas documentation will always refer to encrypted communications as `TLS` or `TLS/SSL`. To enable TLS, provide the path to your certificate and private key in the `[web]` section of `netdata.conf`: -``` conf +```conf [web] ssl key = /etc/netdata/ssl/key.pem ssl certificate = /etc/netdata/ssl/cert.pem @@ -77,31 +78,31 @@ Both files must be readable by the `netdata` user. If either of these files do n For test purposes, you can generate self-signed certificates with the following command: -``` bash +```bash $ openssl req -newkey rsa:2048 -nodes -sha512 -x509 -days 365 -keyout key.pem -out cert.pem ``` !!! note If you use 4096 bits for your key and the certificate, Netdata will need more CPU to process the communication. `rsa4096` can be up to 4 times slower than `rsa2048`, so we recommend using 2048 bits. You can verify the difference by running: - - ``` - $ openssl speed rsa2048 rsa4096 - ``` + +```sh +$ openssl speed rsa2048 rsa4096 +``` #### TLS/SSL enforcement When the certificates are defined and unless any other options are provided, a Netdata server will: -- Redirect all incoming HTTP web server requests to HTTPS. Applies to the dashboard, the API, `netdata.conf` and badges. -- Allow incoming slave connections to use both unencrypted and encrypted communications for streaming. - +- Redirect all incoming HTTP web server requests to HTTPS. Applies to the dashboard, the API, `netdata.conf` and badges. +- Allow incoming slave connections to use both unencrypted and encrypted communications for streaming. + To change this behavior, you need to modify the `bind to` setting in the `[web]` section of `netdata.conf`. At the end of each port definition, you can append `^SSL=force` or `^SSL=optional`. What happens with these settings differs, depending on whether the port is used for HTTP/S requests, or for streaming. -SSL setting | HTTP requests | HTTPS requests | Unencrypted Streams | Encrypted Streams -:------:|:-----:|:-----:|:-----:|:-------- -none | Redirected to HTTPS | Accepted | Accepted | Accepted -`force` | Redirected to HTTPS | Accepted | Denied | Accepted -`optional` | Accepted | Accepted | Accepted | Accepted +|SSL setting|HTTP requests|HTTPS requests|Unencrypted Streams|Encrypted Streams| +|:---------:|:-----------:|:------------:|:-----------------:|:----------------| +|none|Redirected to HTTPS|Accepted|Accepted|Accepted| +|`force`|Redirected to HTTPS|Accepted|Denied|Accepted| +|`optional`|Accepted|Accepted|Accepted|Accepted| Example: @@ -121,10 +122,10 @@ When we define the use of SSL in a Netdata agent for different ports, Netdata w Netdata will: -- Force all HTTP requests to the default port to be redirected to HTTPS (same port). -- Refuse unencrypted streaming connections from slaves on the default port. -- Allow both HTTP and HTTPS requests to port 20000 for `netdata.conf` -- Force HTTP requests to port 20001 to be redirected to HTTPS (same port). Only allow requests for the dashboard, the read API and the registry on port 20001. +- Force all HTTP requests to the default port to be redirected to HTTPS (same port). +- Refuse unencrypted streaming connections from slaves on the default port. +- Allow both HTTP and HTTPS requests to port 20000 for `netdata.conf` +- Force HTTP requests to port 20001 to be redirected to HTTPS (same port). Only allow requests for the dashboard, the read API and the registry on port 20001. #### TLS/SSL errors @@ -150,51 +151,50 @@ Netdata supports access lists in `netdata.conf`: `*` does string matches on the IPs of the clients. -- `allow connections from` matches anyone that connects on the Netdata port(s). - So, if someone is not allowed, it will be connected and disconnected immediately, without reading even - a single byte from its connection. This is a global settings with higher priority to any of the ones below. +- `allow connections from` matches anyone that connects on the Netdata port(s). + So, if someone is not allowed, it will be connected and disconnected immediately, without reading even + a single byte from its connection. This is a global settings with higher priority to any of the ones below. -- `allow dashboard from` receives the request and examines if it is a static dashboard file or an API call the - dashboards do. +- `allow dashboard from` receives the request and examines if it is a static dashboard file or an API call the + dashboards do. -- `allow badges from` checks if the API request is for a badge. Badges are not matched by `allow dashboard from`. +- `allow badges from` checks if the API request is for a badge. Badges are not matched by `allow dashboard from`. -- `allow streaming from` checks if the slave willing to stream metrics to this Netdata is allowed. - This can be controlled per API KEY and MACHINE GUID in [stream.conf](../../streaming/stream.conf). - The setting in `netdata.conf` is checked before the ones in [stream.conf](../../streaming/stream.conf). +- `allow streaming from` checks if the slave willing to stream metrics to this Netdata is allowed. + This can be controlled per API KEY and MACHINE GUID in [stream.conf](../../streaming/stream.conf). + The setting in `netdata.conf` is checked before the ones in [stream.conf](../../streaming/stream.conf). -- `allow netdata.conf from` checks the IP to allow `http://netdata.host:19999/netdata.conf`. - The IPs listed are all the private IPv4 addresses, including link local IPv6 addresses. Keep in mind that connections to Netdata API ports are filtered by `allow connections from`. So, IPs allowed by `allow netdata.conf from` should also be allowed by `allow connections from`. +- `allow netdata.conf from` checks the IP to allow `http://netdata.host:19999/netdata.conf`. + The IPs listed are all the private IPv4 addresses, including link local IPv6 addresses. Keep in mind that connections to Netdata API ports are filtered by `allow connections from`. So, IPs allowed by `allow netdata.conf from` should also be allowed by `allow connections from`. -- `allow management from` checks the IPs to allow API management calls. Management via the API is currently supported for [health](../api/health/#health-management-api) +- `allow management from` checks the IPs to allow API management calls. Management via the API is currently supported for [health](../api/health/#health-management-api) ### Other netdata.conf [web] section options -setting | default | info -:------:|:-------:|:---- -ses max window | `15` | See [single exponential smoothing](../api/queries/des/) -des max window | `15` | See [double exponential smoothing](../api/queries/des/) -listen backlog | `4096` | The port backlog. Check `man 2 listen`. -web files owner | `netdata` | The user that owns the web static files. Netdata will refuse to serve a file that is not owned by this user, even if it has read access to that file. If the user given is not found, Netdata will only serve files owned by user given in `run as user`. -web files group | `netdata` | If this is set, Netdata will check if the file is owned by this group and refuse to serve the file if it's not. -disconnect idle clients after seconds | `60` | The time in seconds to disconnect web clients after being totally idle. -timeout for first request | `60` | How long to wait for a client to send a request before closing the socket. Prevents slow request attacks. -accept a streaming request every seconds | `0` | Can be used to set a limit on how often a master Netdata server will accept streaming requests from the slaves in a [streaming and replication setup](../../streaming) -respect do not track policy | `no` | If set to `yes`, will respect the client's browser preferences on storing cookies. -x-frame-options response header | | [Avoid clickjacking attacks, by ensuring that the content is not embedded into other sites](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options). -enable gzip compression | `yes` | When set to `yes`, Netdata web responses will be GZIP compressed, if the web client accepts such responses. -gzip compression strategy | `default` | Valid strategies are `default`, `filtered`, `huffman only`, `rle` and `fixed` -gzip compression level | `3` | Valid levels are 1 (fastest) to 9 (best ratio) +|setting|default|info| +|:-----:|:-----:|:---| +|ses max window|`15`|See [single exponential smoothing](../api/queries/des/)| +|des max window|`15`|See [double exponential smoothing](../api/queries/des/)| +|listen backlog|`4096`|The port backlog. Check `man 2 listen`.| +|web files owner|`netdata`|The user that owns the web static files. Netdata will refuse to serve a file that is not owned by this user, even if it has read access to that file. If the user given is not found, Netdata will only serve files owned by user given in `run as user`.| +|web files group|`netdata`|If this is set, Netdata will check if the file is owned by this group and refuse to serve the file if it's not.| +|disconnect idle clients after seconds|`60`|The time in seconds to disconnect web clients after being totally idle.| +|timeout for first request|`60`|How long to wait for a client to send a request before closing the socket. Prevents slow request attacks.| +|accept a streaming request every seconds|`0`|Can be used to set a limit on how often a master Netdata server will accept streaming requests from the slaves in a [streaming and replication setup](../../streaming)| +|respect do not track policy|`no`|If set to `yes`, will respect the client's browser preferences on storing cookies.| +|x-frame-options response header||[Avoid clickjacking attacks, by ensuring that the content is not embedded into other sites](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options).| +|enable gzip compression|`yes`|When set to `yes`, Netdata web responses will be GZIP compressed, if the web client accepts such responses.| +|gzip compression strategy|`default`|Valid strategies are `default`, `filtered`, `huffman only`, `rle` and `fixed`| +|gzip compression level|`3`|Valid levels are 1 (fastest) to 9 (best ratio)| ## DDoS protection If you publish your Netdata to the internet, you may want to apply some protection against DDoS: -1. Use the `static-threaded` web server (it is the default) -2. Use reasonable `[web].web server max sockets` (the default is) -3. Don't use all your CPU cores for Netdata (lower `[web].web server threads`) -4. Run the `netdata` process with a low process scheduling priority (the default is the lowest) -5. If possible, proxy Netdata via a full featured web server (nginx, apache, etc) - +1. Use the `static-threaded` web server (it is the default) +2. Use reasonable `[web].web server max sockets` (the default is) +3. Don't use all your CPU cores for Netdata (lower `[web].web server threads`) +4. Run the `netdata` process with a low process scheduling priority (the default is the lowest) +5. If possible, proxy Netdata via a full featured web server (nginx, apache, etc) -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fserver%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]() +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fserver%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>) diff --git a/web/server/static/README.md b/web/server/static/README.md index 653b364bc15c9e..eeba0e94deb2b5 100644 --- a/web/server/static/README.md +++ b/web/server/static/README.md @@ -7,4 +7,4 @@ The kernel distributes the incoming requests to them. Each thread uses non-blocking I/O so it can serve any number of web requests in parallel. This web server respects the `keep-alive` HTTP header to serve multiple HTTP requests via the same connection. -[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fserver%2Fstatic%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)]() +[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fweb%2Fserver%2Fstatic%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)