> What would you recommend in a situation with several hundredes or thousands of servers or systems within a kubernetes cluster which should have the node_exporter installed.
I would just scrape them normally, using service discovery to identify the nodes to be scraped. Implicitly you're saying you can't, or don't want to, do that.
> then remotw_writes the results to a central prometheus server or a loadbalancer which distributes to different prometheus servers.
Definitely don't remote_write to a load balancer; it will be non-deterministic which node receives each data point. If you want to load share, then statically configure some nodes to point to different prometheus instances. If one server goes down then fix it, and remote_write should buffer in the mean time.
If you can't stand the idea of losing access to metrics for a short period of time, then you could remote_write to multiple servers, and use promxy to merge them when querying. But really I think you're adding a lot of cost and complexity for little gain.
> However I think I will have a problem because if I use "
127.0.0.1:9100" as target to scrape then all instances are equal.
The instance label does not necessarily have to be the same as the "__address__" that you scrape. If you've set the instance label explicitly, then prometheus won't change it. But you would have to ensure that each host knows its unique name and puts it into the instance label.
> Is there any possibility to use a variable in the scrape_config which reflects any environment variable from linux system or any other mechanism to make this instance unique?
I've never had to do this, but you could try --enable-feature=expand-external-labels
Then you could leave instance="
127.0.0.1:9100" but add another label which identifies the node.