Metricbeat apache module - error.message:HTTP error 404 in status: 404 Not Found

(Brad) #1

Hi All,

I have enabled the merticbeat module for apache. When reviewing the logs in Kibana I notice that I get an error -HTTP error 404 in status: 404 Not Found.

I guess there is something wrong in my configure? What is this module actually checking for and how does it collect the data. Config is below:

#Module: apache
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/6.6/metricbeat-module-apache.html

- module: apache
  metricsets:
    - status
  period: 10s
  hosts: ["http://127.0.0.1"]
  username: "XXXX"
  password: "XXXX"
#2

Hey guys,
Having same issue as OP. Fresh install of metricbeat 6.6.1 and enabled apache module. The system module in metricbeat is sending data to kibana without issue.
My apache.yml file is the same as OP. Is there a config step that is required besides enabling the apache module?

Thanks for any insight!

[root@apps01-east metricbeat]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Jun 27 2018 13:48:59

(ruflin) #3

Could one of you share the metricbeat logs and some example outputs that you see in Kibana?

#4

Hey @ruflin,
After further digging around, it looks like my issue stemmed from not using a supported version of Apache. My version is 2.4.6

https://www.elastic.co/guide/en/beats/metricbeat/6.6/metricbeat-module-apache.html#_compatibility_5

The Apache metricsets were tested with Apache 2.4.12 and 2.4.20 and are expected to work with all versions >= 2.2.31 and >= 2.4.16.

Thanks for checking in!
Amit

(ruflin) #5

I wonder if 2.4.6 has a bit a different format. Is there a specific reason you are on 2.4.6? I'm trying to understand if this is a popular version and we should dig deeper into why it's not working.

#6

This seems to be the version installed with the standard repo's in CentOS. Even the EPEL repo installs httpd 2.4.6-88 (checked it again a moment ago).
Apache seems to include all their security patches into this version as well.
I would need to install other repo's in order to update to 2.4.16, which I have not done.
I would like to be able to simply use the Apache module since everything is already setup for those logs.
Can you include Apache 2.4.6 in Metricbeat?
Thanks for your help.

(ruflin) #7

Exactly what I was looking for / worried. Could you open a feature request in https://github.com/elastic/beats

Would be great if you could also add an example output from 2.4.6 to the ticket which will make it much easier to test against it.

#8

I've created the feature request on github.
What kind of sample output are you looking for?
The only output I can see is from /var/log/metricbeat/metricbeat as shown below. I see 3 events and 3 failures related to apache.

2019-03-15T14:15:55.818Z INFO [monitoring] log/log.go:144 Non-zero metrics in the last 30s {"monitoring": {"metrics": {"beat":{"cpu":{"system":{"ticks":170,"time":{"ms":60}},"total":{"ticks":420,"time":{"ms":153},"value":420},"user":{"ticks":250,"time":{"ms":93}}},"handles":{"limit":{"hard":4096,"soft":1024},"open":7},"info":{"ephemeral_id":"4ca10600-ac1d-4097-9556-427be637890a","uptime":{"ms":63033}},"memstats":{"gc_next":6466272,"memory_alloc":5108016,"memory_total":62687568,"rss":712704}},"libbeat":{"config":{"module":{"running":0}},"output":{"events":{"acked":191,"batches":3,"total":191},"read":{"bytes":24},"write":{"bytes":26869}},"pipeline":{"clients":8,"events":{"active":0,"published":191,"total":191},"queue":{"acked":191}}},"metricbeat":{"apache":{"status":{"events":3,"failures":3}},"system":{"cpu":{"events":3,"success":3},"load":{"events":3,"success":3},"memory":{"events":3,"success":3},"network":{"events":6,"success":6},"process":{"events":18,"success":18},"process_summary":{"events":3,"success":3},"socket":{"events":152,"success":152}}},"system":{"load":{"1":1.77,"15":1.46,"5":1.83,"norm":{"1":0.295,"15":0.2433,"5":0.305}}}}}}

(ruflin) #9

Thanks for filing. The output I'm looking for is the output from apache itself when manually accessing the status endpoint.

#10

I don't have the /server-status endpoint accessible from the virtual-host on the server, but mod_status is loaded, as seen below (I have trimmed the output). So not sure how to get you the output from the status endpoint.

[root@apps01-east ~]# httpd -e debug
......
[Fri Mar 15 15:35:47.437351 2019] [so:debug] [pid 34762] mod_so.c(266): AH01575: loaded module status_module from /etc/httpd/modules/mod_status.so
......
httpd (pid 34428) already running

(system) closed #11

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.