Overview¶
What you get¶
A non intrusive, permanent view of the important things.
You get to select what you see and what is filtered out.
Architecture¶
A munin2smartphone setup consists of 3 bricks:
a Munin supervision server.
We add a trigger and a bit of configuration to your stock munin installation, so that it pushes the state of all known checks to the next brick.
a munin2smartphone daemon.
The daemon is receiving authenticated data and generating static web pages.
a frontend to view the web pages.
Whether a web browser or an android widget.
Information flow¶
![digraph structs {
node [shape=box];
infra [label=<
<TABLE BORDER="0" CELLSPACING="10" CELLBORDER="1" PORT="all">
<TR><TD colspan="3" BORDER="0"><B>Infrastructure</B></TD></TR>
<TR>
<TD>Server 1</TD>
<TD>Server …</TD>
<TD>Server n</TD>
</TR>
</TABLE>
>];
munin [label=<
<TABLE BORDER="0" CELLSPACING="10" CELLBORDER="1">
<TR><TD colspan="3" BORDER="0"><B>Munin</B></TD></TR>
<TR>
<TD PORT="update">munin-update</TD>
<TD PORT="rrd">rrd</TD>
<TD PORT="alert">munin-limits</TD>
</TR>
</TABLE>
>];
scheduler [shape=circle,label=<scheduler<BR/>(cron…)>];
munin2smartphone [label=<
<TABLE BORDER="0" CELLSPACING="10" CELLBORDER="1">
<TR><TD colspan="3" BORDER="0"><B>munin2smartphone host</B></TD></TR>
<TR>
<TD PORT="munin2smartphone">munin2smartphone</TD>
<TD PORT="html">static html pages</TD>
</TR>
</TABLE>
>];
enduser [label=<
<TABLE BORDER="0" CELLSPACING="10" CELLBORDER="1" PORT="all">
<TR><TD colspan="3" BORDER="0"><B>End user device</B></TD></TR>
<TR>
<TD PORT="android">Android web widget</TD>
<TD PORT="browser">Web browser</TD>
</TR>
</TABLE>
>];
curl [shape=cds];
statichttp [shape=cds,label="apache/nginx/other"];
infra:all -> munin:update:n [xlabel=<<I>Run and fetch</I> <FONT FACE="courrier"><Checks></FONT>>];
munin:update:s -> munin:rrd:sw [xlabel=<<I>fill database</I>>];
munin:alert:sw -> munin:rrd:se [label=<<I> query all</I>>];
scheduler:se -> munin:alert:n [xlabel=<<I>Call command</I> "Push all to special contact">];
munin:alert -> curl;
curl -> munin2smartphone:munin2smartphone:w [
label=<
<I>POST</I> <FONT FACE="courrier"><Checks in conc. JSON></FONT>
>
];
munin2smartphone:munin2smartphone:s -> munin2smartphone:html:s [label=<<I>generates</I>>];
enduser:all -> statichttp -> munin2smartphone:html:e;
}](../_images/graphviz-63f6477d727d1bbb8322090736b38e15d47f5408.png)