For our web server, we have something like below.  For the metricbeat logs (which is all of our metrics), I am using basically the default metricbeat template, augmented with a few fields which are common to all of our log messages.  The more I look at what we have in our messages, the more I am thinking I need to mark a ton of fields as not-indexed, and maybe have a custom pattern for ELMAH stack traces (to split on certain symbols, rather than all symbols.)

    {
      "mappings": {
        "_default_": {
          "_all": {
            "norms": false
          },
          "_meta": {
            "version": "1.0.0"
          },
          "dynamic_templates": [
            {
              "strings_as_keyword": {
                "mapping": {
                  "ignore_above": 1024,
                  "type": "keyword"
                },
                "match_mapping_type": "string"
              }
            }
          ],
          "properties": {
            "@timestamp": {
              "type": "date"
            },
            "Environment": {
              "type": "keyword"
            },
            "Deployment": {
              "type": "date",
              "format": "yyyyMMddHHmmss"
            },
            "IPAddress": {
              "type": "ip"
            },
            "meta": {
              "properties": {
                "cloud": {
                  "properties": {
                    "availability_zone": {
                      "ignore_above": 1024,
                      "type": "keyword"
                    },
                    "instance_id": {
                      "ignore_above": 1024,
                      "type": "keyword"
                    },
                    "machine_type": {
                      "ignore_above": 1024,
                      "type": "keyword"
                    },
                    "project_id": {
                      "ignore_above": 1024,
                      "type": "keyword"
                    },
                    "provider": {
                      "ignore_above": 1024,
                      "type": "keyword"
                    },
                    "region": {
                      "ignore_above": 1024,
                      "type": "keyword"
                    }
                  }
                }
              }
            },
            "Application": {
              "type": "keyword"
            },
            "Level": {
              "type": "keyword"
            },
            "MessageTemplate": {
              "type": "text"
            },
            "Elmah": {
              "properties": {
                "ApplicationName": {
                  "type": "keyword"
                },
                "Detail": {
                  "type": "text"
                },
                "Exception": {
                  "properties": {
                    "ErrorCode": {
                      "type": "integer"
                    },
                    "HResult": {
                      "type": "integer"
                    },
                    "Message": {
                      "type": "text"
                    },
                    "Source": {
                      "type": "text",
                      "fields": {
                        "keyword": {
                          "type": "keyword"
                        }
                      }
                    },
                    "StackTrace": {
                      "type": "text"
                    },
                    "TargetSite": {
                      "type": "text",
                      "fields": {
                        "keyword": {
                          "type": "keyword"
                        }
                      }
                    },
                    "WebEventCode": {
                      "type": "integer"
                    },
                    "_typeTag": {
                      "type": "keyword"
                    }
                  }
                },
                "HostName": {
                  "type": "keyword"
                },
                "Message": {
                  "type": "text"
                },
                "Type": {
                  "type": "keyword"
                },
                "Source": {
                  "type": "text",
                  "fields": {
                    "keyword": {
                      "type": "keyword"
                    }
                  }
                },
                "StatusCode": {
                  "type": "integer"
                }
              }
            }
          }
        }
      },
      "order": 0,
      "settings": {
        "index.mapping.total_fields.limit": 1000,
        "index.refresh_interval": "5s"
      },
      "template": "webserver-*"
    }
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB