Apache" server-status " (mod status) saída como no formato JSON ou XML?

Apache "mod_status":

sabemos que, usando "mod_status", podemos verificar o estado actual do Apache. Ele retorna um monte de informações, algo como nesta página de exemplo (fornecido pelo Apache):

Https://www.apache.org/server-status

O Que Eu preciso de fazer:

preciso de analisar e processar os resultados, especialmente a secção de ligações detalhadas dada pela bandeira ExtendedStatus (dentro do httpd.conf). Seccao parece algo como:

Srv PID Acc M   CPU SS  Req Conn    Child   Slot    Client  VHost   Request
0-24    23433   0/94/338163 _   208.04  2   0   0.0 1.85    22068.75    221.254.46.37       
0-24    23433   0/99/337929 _   208.93  1   1141    0.0 2.23    19373.00    197.89.161.5        
0-24    23433   0/94/337834 _   206.04  4   0   0.0 3.46    22065.36    114.31.251.82       
0-24    23433   0/95/338139 _   198.94  2   7   0.0 2.74    21101.66    122.252.253.242     
0-24    23433   0/111/338215    _   206.21  3   0   0.0 3.89    19496.71    186.5.109.211

A Minha Pergunta:

é possível obter esta página (informação) através de um formato de dados estruturado, como o JSON? (Because I need to parse them via PHP. E depois fazemos mais algumas coisas mais tarde.)

Eu não posso usar apenas algumas maneiras fáceis, como Javascript DOM Parsers (como: jQuery). Porque eu preciso que o script esteja rodando na própria linha de comandos Linux do servidor (localmente). Não através de qualquer cliente de fora.

Então, analisar isto via Javascript (JQuery, etc) não é quase uma escolha. É melhor receber dados estruturados. Então eu posso processar do PHP facilmente. Activar o programa de PHP através do Terminal, do tipo:

# php /www/docroots/parse-server-status.php

ou, pelo menos:

# curl -I http://localhost/parse-server-status.php

pergunta:

  • alguma ideia de como tirar o JSON ou XML do Estado do servidor do Apache (mod_status), por favor?
Obrigado a todos.

Author: 夏期劇場, 2016-11-25

2 answers

Acho que não há forma de colocar o json no padrão apache mod_status. Mas houve uma discussão na lista de desenvolvedores sobre este tópico.

Resumindo: há outro programa que tem de instalar no seu servidor. E você precisa de mod_lua no servidor. Aqui está a página do projecto:

Https://github.com/Humbedooh/server-status

Depois de instalar o script lua, você pode obter os arquivos json. Daniel instalou um script de exemplo aqui:

HTML ver: http://httpd.apache.org/server-status
JSON: http://httpd.apache.org/server-status?view=json
JSON extendido: http://httpd.apache.org/server-status?view=json&extended=true (lote de Dados: p)

 4
Author: Benedikt, 2017-01-27 15:28:29

Em JavaScript / jQuery (ES6) podemos obter o estado legível da máquina Apache com ?auto e analisar o conteúdo através de Expressões Regulares:

$.get('http://localhost/parse-server-status.php?auto', (d) => {
  const o = {};
  const host = d.substring(0, d.indexOf('\n'));
  Array.from(d.replace(host, '').matchAll(/^([\w\s]+)\:\s(.*)+/gm)).forEach(l => o[l[1].replace(/\s/, '')] = l[2]);
  console.log(host, o);
});

Console example

 3
Author: Gabriel Anderson, 2019-06-12 00:01:24