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):
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?
2 answers
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)
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);
});