Thanks, that's useful. It tells us that for some reason the Metricbeat index templates did not get created. As a result, the Metricbeat data is being indexed in with default mappings as it comes in to Elasticsearch. These mappings are not what the dashboards expect, which would explain why they are blank.
This is probably why the Metricbeat templates didn't get loaded automatically. Whenever Metricbeat sends it's data to Elasticsearch indirectly — as is the case with your setup — Metricbeat doesn't have a direct connection to Elasticsearch. As such it cannot automatically load the index templates into Elasticsearch at startup. To account for such setups, Metricbeat has a
setup command that must be run prior to starting Metricbeat for ingesting data. You can learn more about this over here: https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-template.html.