diff --git a/morph/grid/local/grid.nix b/morph/grid/local/grid.nix
index 3f4f5243c7274bc77b3b64e6a29698ff98ba2248..8f72dd95a0c22939ed5b9f727500f13f5d8029ac 100644
--- a/morph/grid/local/grid.nix
+++ b/morph/grid/local/grid.nix
@@ -8,6 +8,12 @@ import ../../lib/make-grid.nix {
   let
     sshUsers = import ../../../../PrivateStorageSecrets/localdev-users.nix;
     vpnClientIPs = [ "172.23.23.11" "172.23.23.12" "172.23.23.13" ]; # TBD: derive automatically
+    hostsMap = {
+      "172.23.23.1"  = [ "monitoring1" "monitoring1.monitoringvpn" ];
+      "172.23.23.11" = [ "payments1" "payments1.monitoringvpn" ];
+      "172.23.23.12" = [ "storage1" "storage1.monitoringvpn" ];
+      "172.23.23.13" = [ "storage2" "storage2.monitoringvpn" ];
+    };
   in {
     "payments1" = import ../../lib/make-issuer.nix (rec {
       publicIPv4 = "192.168.67.21";
@@ -37,8 +43,9 @@ import ../../lib/make-grid.nix {
       publicIPv4 = "192.168.67.24";
       monitoringvpnIPv4 = "172.23.23.1";
       inherit vpnClientIPs;
+      inherit hostsMap;
       inherit sshUsers;
-      nodeExporterTargets = [ "172.23.23.1" "172.23.23.11" "172.23.23.12" "172.23.23.13" ]; # TBD: derive automatically
+      nodeExporterTargets = [ "monitoring1" "payments1" "storage1" "storage2" ]; # TBD: derive automatically
       nginxExporterTargets = [ ];
       hardware = import ./virtual-hardware.nix ({ inherit publicIPv4; });
       stateVersion = "19.09";
diff --git a/morph/lib/make-monitoring.nix b/morph/lib/make-monitoring.nix
index b8242446926066841973cf715e05ec1b92e63ad4..4c1e6916399a4ff82cec185fa6c4931ec2f466ee 100644
--- a/morph/lib/make-monitoring.nix
+++ b/morph/lib/make-monitoring.nix
@@ -11,6 +11,7 @@
 , vpnClientIPs
 , nodeExporterTargets
 , nginxExporterTargets
+, hostsMap ? {}
 , ... }:
 
 # This doesn't work yet:
@@ -75,4 +76,6 @@ rec {
   };
 
   system.stateVersion = stateVersion;
+
+  networking.hosts = hostsMap;
 }