Monday, July 16, 2012

Monitoring tool - pnp4nagios custom template

I introduced about how to setup icinga an icinga-web, and setup icinga-web with pnp4nagios  to setup a monitoring server with icinga and pnp4nagios before. I'm going to show you pnp4nagios custom templates which influences the appearance of RRD graphs.

Why is it necessary to create custom templates?

I belive that the reason is that we are sometimes obliged to look into the graphs with specific hardware resource or performance data, when we analyze or investigate network devices, servers or middle ware performance, for example, how much cpu or memory resources are utilized, how much disk space is left, how much traffic is transferred, and so on.

If you need further information about custom templates for pnp4nagios, please see the official reference.

I'll give you an example of custom template based on default templates($pnp4nagios_prefix/share/templates.dist/interger.php) for traffic and graphs with nagios plugins, check_tcptraffic.

  • check_tcptraffic
# for module in \
Carp \
English \
Nagios::Plugin \
do cpan -i install $module ; done
# wget
# tar zxf check_tcptraffic-2.2.4.tar.gz
# cd check_tcptraffic-2.2.4
# check_tcptraffic -i eth0 -s 100 -w 10 -c 20
TCPTRAFFIC CRITICAL - eth0 182216 bytes/s | TOTAL=182216Byte;10;20 IN=180221Byte;; OUT=1995Byte;; TIME=204852Byte;; 
  • commands.cfg
define command{
        command_name    check_traffic
        command_line    $USER1$/check_tcptraffic -t $ARG1$ -s 1000 -w $ARG2$ -c $ARG3$ -i $ARG4$
  • services.cfg 
define  service{
        use                     generic-service
        host_name               <hostname>
        service_description     TRAFFIC:eth0
        check_command           check_traffic!60!10000000!20000000!eth0
  • check_traffic.php (custom template for pnp4nagios)
$ds_name[1] = "$NAGIOS_AUTH_SERVICEDESC"; 
$opt[1] = "--vertical-label \"$UNIT[1]\" --title \"$hostname / $servicedesc\" ";
$def[1]  = rrd::def("var1", $RRDFILE[1], $DS[1], "AVERAGE");
$def[1] .= rrd::def("var2", $RRDFILE[2], $DS[2], "AVERAGE");
$def[1] .= rrd::def("var3", $RRDFILE[3], $DS[3], "AVERAGE");

if ($WARN[1] != "") {
    $def[1] .= "HRULE:$WARN[1]#FFFF00 ";
if ($CRIT[1] != "") {
    $def[1] .= "HRULE:$CRIT[1]#FF0000 ";       
$def[1] .= rrd::line1("var1", "#000000", "$NAME[1]") ;
$def[1] .= rrd::gprint("var1", array("LAST", "AVERAGE", "MAX"), "%6.2lf");
$def[1] .= rrd::area("var2", "#00ff00", "$NAME[2]") ;
$def[1] .= rrd::gprint("var2", array("LAST", "AVERAGE", "MAX"), "%6.2lf");
$def[1] .= rrd::line1("var3", "#0000ff", "$NAME[3]") ;
$def[1] .= rrd::gprint("var3", array("LAST", "AVERAGE", "MAX"), "%6.2lf");

check_traffic.php generates the graphs below.

Other custom templates are open to the public at my github.
These are the list of custom templates and sample graphs.

  • check_apache_performance.php

  • check_connections.php

  • check_cpu.php
  • check_disk.php 
  • check_diskio.php
  • check_http.php

  • check_load.php
  • check_mem.php
  • check_mysql_health.php
  • check_nagios_latency_service.php
  • check_traffic.php


  1. Pretty portion of content. I just stumbled upon your website and in accession capital to say that I get actually enjoyed account your blog posts.Anyway I’ll be subscribing to your feeds or even I success you get entry to persistently fast.
    website design

    1. Thanks! I am so glad that someone overseas sees my posts, and it will be your help somehow. When I have chance to visit your country, I want to visit your company!

  2. Thanks for sharing! Nice post!

    Máy ru võng tự động hay võng điện cho bé hay may ru vong tu dong giúp bé ngủ ngon mà võng điện cho bé không tốn sức ru võng. Võng tự động hay máy đưa võng tự động chắc chắn, gọn gàng, dễ tháo xếp, dễ di chuyển và máy đưa võng dễ dàng bảo quản.
    Chia sẻ các bạn bà bầu có nên ăn thịt chó hay trứng ngỗng cho bà bầu hay giải mã giấc mơ thấy người chết hay cách chống nắng bằng trà xanh hay Collagen trị mụn được không hay chữa mất ngủ bằng gừng đơn giản, bí quyết làm trắng da bằng cà phê và dầu dừa hay giảm cân nhanh bằng gạo lứt hq hay mẹo giúp tăng cường trí nhớ hiệu quả, những thực phẩm giúp cải thiện trí nhớ hiệu quả, hay bệnh viêm khớp không nên ăn gì hay mẹo giúp giảm độ cận thị cho bạn, bí quyết chống nắng với cà chua cực hiệu quả, cách giúp bé ngủ ngon giấcthực phẩm giúp bé ngủ ngon mẹ nên biết, chia sẻ cách làm trắng da toàn thân bằng thực phẩm, những món ăn chữa bệnh mất ngủ hiệu quả.
    Thực phẩm làm tăng tại
    Những thực phẩm giúp làm giảm tại
    Những thực phẩm tốt cho tại
    Những thực phẩm tốt cho da tại
    Chăm sóc da mặt ở
    Cách chăm sóc da mặt bằng

  3. Thanks for the information but I am very new to PNP4Nagios and Check_MK. I am trying to check the status of my Wireless AP like signal strength, quality and noise. Not sure how to do it. I got lost trying to follow the instructions above. Would appreciate If you could provide with more detail information. Thank you.

  4. cách làm dầu dừa nguyên chất có anh chị nao làm dầu dừa theo cách này chưa a?

  5. Are you looking to make money from your visitors by using popup ads?
    In case you are, have you ever used EroAdvertising?