title: Prometheus and Node Exporter architecture
body: <p>I have been 3 days reading about this, even configuring a set of containers to test them, but I have doubts.</p>
  <p>I understand that the architecture of Prometheus + Node exporter is based on:</p>
  <ul>
  <li>Node exporter knows how to extract metrics. Those are exposed in HTTP, eg. :9201/metrics</li>
  <li>Prometheus queries every X seconds those HTTP endpoints (node-exporter HTTTP) and stores the metrics. It also provide another HTTP for graph/console visualization/querying.</li>
  </ul>
  <p>Question 1:</p>
  <p>Assume you want CPU metrics every 15s, HDD metrics every 5m, Network every 1m, process every 30s.</p>
  <p>Since it is prometheus who decides the scraping interval, how can be configured to just scrape those values?</p>
  <p>Question 2:</p>
  <p>Assume you want 1 prometheus instance and 3 node exporters, different public servers. I don't see anything regarding the node exporter and its security. The HTTP endpoint is public.</p>
  <p>How can I securely query the metrics from my 3 servers?</p>
  <p>Question 3:</p>
  <p>I don't know if I am missing something. But, for example, comparing this to Telegraf, the latter sends the metrics to a database. Therefore, Telegraf acts as &quot;node-exporter&quot;. I only need to secure the database connection (only exposed port).</p>
  <p>Can node-exporter be configured to send a set of metrics every X time to the prometheus server?
  (so I don't have to expose a public port in every public server, just the prometheus server)
  I understand &quot;pushgateway&quot; is for that? How to change the node-exporter behavior?</p>
  <p>Do you recommend me any other architecture that could suite my needs? (1 master, many slaves to query metrics)</p>