Hard time setting up monitoring cluster using metricbeat

I have follow few document of elk. it making me more confuse
what am I missing?

this is my simple test that I am trying to run.
elkprod01 single node cluster
elkmonprod01 is single node cluster ( which I would like to setup as monitoring cluster)

on elkprod01 system

cat /etc/elasticsearch/elasticsearch.yml |grep -v '#' |sed '/^$/d'

cluster.name: elk-prod
node.name: elkprod01
node.roles: [master,ingest,transform,data,data_hot]
path.data: /data01/elasticsearch
path.logs: /data01/log/elasticsearch
network.host: 10.29.254.74
discovery.seed_hosts: ["elkprod01"]
action.destructive_requires_name: true
xpack.security.enabled: true

cat /etc/metricbeat/metricbeat.yml |grep -v '#' |sed '/^$/d'

metricbeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 1
  index.codec: best_compression
output.elasticsearch:
  hosts: ["elkmonprod01:9200"]
  username: "elastic"
  password: "elastic"

cat /etc/metricbeat/modules.d/elasticsearch-xpack.yml |grep -v '#' |sed '/^$/d'

- module: elasticsearch
  xpack.enabled: true
  scope: node
  period: 30s
  hosts: ["http://elkprod01:9200"]
  username: "elastic"
  password: "elastic"

Now on elkmonprod01

cluster.name: mon-prod
node.roles: [master,ingest,transform,data,data_hot]
path.data: /data01/elasticsearch
path.logs: /data01/log/elasticsearch
network.host: 10.29.254.86
discovery.seed_hosts: ["elkmonprod01"]
cluster.initial_master_nodes: ["elkmonprod01"]
action.destructive_requires_name: true
xpack.monitoring.collection.enabled: false

cat /etc/kibana/kibana.yml |grep -v '#' |sed '/^$/d'

server.port: 5601
server.host: "elkmonprod01"
server.name: "elkmonprod01"
elasticsearch.hosts: ["http://elkmonprod01:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "kibana"
monitoring.ui.enabled:true
monitoring.ui.elasticsearch.hosts: ["http://elkmonprod01:9200"]

I do see any index coming to elkmonprod01.