Esse material é definitivamente confuso quando você começa a olhar embaixo do capô. Você realmente descobriu muitas das peças-chave, vamos ver se posso ajudá-lo a entender como elas se encaixam.
Veja o que aprendi com minha própria experiência:
1) PNP4Nagios
Veja o site principal deles: link
Para verificar se você está usando o PNP4Nagios, veja:
$ more /usr/local/nagios/etc/pnp/pnp4nagios_release
PKG_REL_DATE="05-02-2009"
PKG_VERSION="0.4.14"
PKG_NAME="pnp"
A configuração da PNP é feita em /usr/local/nagios/etc/nagios.cfg
Aqui está uma visão geral que eu encontrei recentemente, inclui uma descrição das várias configurações relacionadas ao PNP no nagios.cfg:
2) Fontes de dados RRD e modelos de gráficos
Veja: link
Os scripts do template php são encontrados em / usr / local / nagios / share / pnp /.
Um modelo de gráfico php é invocado dentro do contexto do arquivo de dados RRD associado ao comando host ou serviço cujos dados você está tentando representar graficamente. Se não houver um modelo para o comando, o default.php é usado.
Como você descobriu, não pode simplesmente adicionar um quarto gráfico porque não há fonte de dados correspondente:
the 4th graph displays, but with a broken picture icon.
E, como você também descobriu, é possível personalizar o gráfico exibido para uma origem de dados específica:
Using only the fourth combined graph as $def[1] works.
3) default.php
Lembre-se de que default.php é usado sempre que um comando host ou de serviço não tiver um modelo de gráfico associado. Isso significa que qualquer alteração feita afetará o gráfico padrão de todo o sistema. Se é isso que você quer, tudo bem. Caso contrário, basta adicionar uma verificação para o host e / ou serviço cujo gráfico você está tentando personalizar:
if ($hostname == 'MyHost') {
// generate a customized graph
}
else {
// generate the default graph
}
4) Finalmente, como criar um gráfico combinado E exibir as três origens de dados originais.
Eu simplesmente teria seu script perl gerar uma quarta fonte de dados e preenchê-la com zeros:
val1=1;; val2=5;; val3=10;; val4=0;;
Em seguida, no default.php, você pode criar um gráfico personalizado para essa fonte de dados:
foreach ($DS as $i) {
if ($servicedesc == 'My_Test_Service') {
if ($i == 4) { # the "val4" placeholder datasource
// your combined graph logic goes here
}
else {
// datasource 1 to 3 graph logic goes here
}
}
}
Isso só começa a cobrir este tópico, espero que ajude!