I was trying to generate a custom module, named 'unixhops' fileset 'access'
Steps I followed:
- Downloaded github repo
 - make create-module MODULE={module}
 - Test pipeline: 
go run main.go -elasticsearch http://10.0.50.100:9200 -pipeline /root/go/src/github.com/elastic/beats/filebeat/module/unixhops/access/ingest/pipeline.json -logfile test.log --simulate.verbose --verboseit passed. - make create-fields MODULE={module} FILESET={fileset}
 - make update
`:~/go/src/github.com/elastic/beats/filebeat# make update
mage update
Generated fields.yml for filebeat to /root/go/src/github.com/elastic/beats/filebeat/fields.yml
No fields files for module apache2
Generated fields.yml for filebeat to /root/go/src/github.com/elastic/beats/filebeat/fields.yml 
Building filebeat.yml for linux/amd64
Building filebeat.reference.yml for linux/amd64
Building filebeat.docker.yml for linux/amd64
Generated fields.yml for filebeat to /root/go/src/github.com/elastic/beats/filebeat/build/fields/fields.all.yml`
I have no idea where to put fiels.all.yml file, documentation writer assume custom filebeat module generator must be an ex-elastic employee.
Anyway, I copied the generated module directory (/root/go/src/github.com/elastic/beats/filebeat/module/unixhops) to installed filebeat directory (/usr/share/filebeat/module) and enabled the module.
In kibana able to pull the log, but kibana not able to detect any field.
For kibana, pipeline pattern is not matching at all
Here is the pipeline configuration
{     "description": "Pipeline for parsing Unixhops HTTP Server access logs. Requires the geoip and user_agent plugins.",     "processors": [{       "grok": {         "field": "message",         "patterns":[           "%{IP:unixhops.access.ip} \\[%{MONTHDAY}/%{MONTH}/%{YEAR}:%{HOUR}:%{MINUTE} %{INT}\\] %{WORD:unixhops.access.loglevel} %{WORD:unixhops.access.access_id} \"%{WORD:unixhops.access.method} %{DATA:unixhops.access.url_original} HTTP/%{NUMBER:unixhops.access.http_version}\" %{NUMBER:unixhops.access.http_response_status_code:long} %{NUMBER:unixhops.access.byte1} %{NUMBER:unixhops.access.byte2} \"\" \"%{DATA:unixhops.access.user_agent}\" %{GREEDYDATA:unixhops.access.request_start} %{GREEDYDATA:unixhops.access.request_end}",           "%{IP:unixhops.access.ip} \\[%{MONTHDAY}/%{MONTH}/%{YEAR}:%{HOUR}:%{MINUTE} %{INT}\\] %{LOGLEVEL:unixhops.access.loglevel} %{WORD:unixhops.access.access_id} \"Request received!\"",           "%{IP:unixhops.access.ip} \\[%{MONTHDAY}/%{MONTH}/%{YEAR}:%{HOUR}:%{MINUTE} %{INT}\\] %{LOGLEVEL:unixhops.access.loglevel} %{WORD:unixhops.access.access_id} \"Execution Starts - %{DATA:unixhops.access.url_original}\"",           "%{IP:unixhops.access.ip} \\[%{MONTHDAY}/%{MONTH}/%{YEAR}:%{HOUR}:%{MINUTE} %{INT}\\] %{LOGLEVEL:unixhops.access.loglevel} %{WORD:unixhops.access.access_id} \"Execution Ends - %{DATA:unixhops.access.url_original} tooks %{GREEDYDATA:unixhops.access.time_taken}\""         ],         "ignore_missing": true       }     },{       "remove":{         "field": "message"       }     }, {       "rename": {         "field": "@timestamp",         "target_field": "event.created"       }     }, {       "date": {         "field": "unixhops.access.time",         "target_field": "@timestamp",         "formats": ["dd/MMM/yyyy:H:m:s Z"],           "ignore_failure": true       }     }, {       "remove": {         "field": "unixhops.access.time",           "ignore_failure": true       }     }],     "on_failure" : [{       "set" : {         "field" : "error.message",         "value" : "{{ _ingest.on_failure_message }}"       }     }]   } 
Here is the kibana output
	 @timestamp	May 29, 2019 @ 23:20:11.478       	t  _id	cmy2BGsB3nqo1iWWvpd_       	t  _index	filebeat-7.1.0     	#  _score	 -        	t  _type	_doc        	t  agent.ephemeral_id	70efc0c5-5c19-47d5-849c-07897b90ad83        	t  agent.hostname	elk-filebeat        	t  agent.id	f3af7ad9-6715-4e33-ab92-b26b398086a2        	t  agent.type	filebeat        	t  agent.version	7.1.0        	t  ecs.version	1.0.0        	t  error.message	Provided Grok expressions do not match field value: [203.189.181.129 [27/May/2019:05:26 +0000] ACCESS BE3A4491 \"GET /v1.0/locations/ HTTP/1.1\" 200 0 0 \"\" \"Apache-HttpClient/4.5.6 (Java/1.8.0_201)\" 5.894 5.853]        	t  event.dataset	unixhops.access        	t  event.module	unixhops        	t  fileset.name	access        	t  host.architecture	x86_64        	 host.containerized	false        	t  host.hostname	elk-filebeat        	t  host.id	b64bdeba70914c4d95c1b654d55e04a7        	t  host.name	elk-filebeat        	t  host.os.codename	xenial        	t  host.os.family	debian        	t  host.os.kernel	4.4.0-148-generic        	t  host.os.name	Ubuntu        	t  host.os.platform	ubuntu        	t  host.os.version	16.04.6 LTS (Xenial Xerus)        	t  input.type	log        	t  log.file.path	/var/log/ecp_cloud/ecp_cloud.log        	#  log.offset	9,364        	t  message	203.189.181.129 [27/May/2019:05:26 +0000] ACCESS BE3A4491 "GET /v1.0/locations/ HTTP/1.1" 200 0 0 "" "Apache-HttpClient/4.5.6 (Java/1.8.0_201)" 5.894 5.853        	t  service.type	unixhops
Please note
- filebeat is installed in seperate server than other ELK stack component
 - While executing first 
make create-module MODULE={module}command {module}/_meta/kibana directory was never created 
Any help will be appreciated.