check_modbus on Nagios XI installation issues

This support forum board is for support questions relating to Nagios XI, our flagship commercial network monitoring solution.
Locked
User avatar
WillemDH
Posts: 2320
Joined: Wed Mar 20, 2013 5:49 am
Location: Ghent
Contact:

check_modbus on Nagios XI installation issues

Post by WillemDH »

Hello,

Could I have some help with the configuration and installation of the check_modbus plugin on a Nagios XI server. I've been trying for a few hours to get it working on my test Nagios server, but I keep running into errors. The device I need to get information from is a SOCOMEC MASTER Diris A40v3/A40R.
I tried quering the device with snmp, but this did not work. After consulting the supplier, they told us we need to use RS485 id. after searching the Nagios Exchange, I found the check_modbus plugin, which is the only one talking about RS485.
http://exchange.nagios.org/directory/Pl ... us/details
On GitHub, the changelog of the plugin mentioned update 0.47 solves a few problems with Nagios ranges, so I tried installing the plugin, following directions on http://leshcatlabs.net/2014/04/15/power ... th-nagios/

So I started with installing libmodbus:

Code: Select all

[root@nagiosserver libmodbus-3.0.6]# ./configure;make;make install;
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1966080
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... no
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for unistd.h... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for sys/types.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking linux/serial.h usability... yes
checking linux/serial.h presence... yes
checking for linux/serial.h... yes
checking for asciidoc... no
checking for xmlto... no
checking whether to build documentation... no
checking whether to install manpages... yes
checking for ANSI C header files... (cached) yes
checking for an ANSI C-conforming const... yes
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether __CYGWIN__ is declared... no
checking for pid_t... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for gettimeofday... yes
checking for inet_ntoa... yes
checking for memset... yes
checking for select... yes
checking for socket... yes
checking for strerror... yes
checking for strlcpy... no
checking for getaddrinfo... yes
checking winsock2.h usability... no
checking winsock2.h presence... no
checking for winsock2.h... no
checking whether TIOCSRS485 is declared... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/modbus-version.h
config.status: creating doc/Makefile
config.status: creating tests/Makefile
config.status: creating libmodbus.pc
config.status: creating libmodbus.spec
config.status: creating config.h
config.status: creating tests/unit-test.h
config.status: tests/unit-test.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
make  all-recursive
make[1]: Entering directory `/usr/src/libmodbus-3.0.6'
Making all in src
make[2]: Entering directory `/usr/src/libmodbus-3.0.6/src'
  CC       modbus.lo
  CC       modbus-data.lo
  CC       modbus-rtu.lo
  CC       modbus-tcp.lo
  CCLD     libmodbus.la
make[2]: Leaving directory `/usr/src/libmodbus-3.0.6/src'
Making all in doc
make[2]: Entering directory `/usr/src/libmodbus-3.0.6/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/src/libmodbus-3.0.6/doc'
Making all in tests
make[2]: Entering directory `/usr/src/libmodbus-3.0.6/tests'
make  all-am
make[3]: Entering directory `/usr/src/libmodbus-3.0.6/tests'
  CC       bandwidth-server-one.o
  CCLD     bandwidth-server-one
  CC       bandwidth-server-many-up.o
  CCLD     bandwidth-server-many-up
  CC       bandwidth-client.o
  CCLD     bandwidth-client
  CC       random-test-server.o
  CCLD     random-test-server
  CC       random-test-client.o
  CCLD     random-test-client
  CC       unit-test-server.o
  CCLD     unit-test-server
  CC       unit-test-client.o
  CCLD     unit-test-client
  CC       version.o
  CCLD     version
make[3]: Leaving directory `/usr/src/libmodbus-3.0.6/tests'
make[2]: Leaving directory `/usr/src/libmodbus-3.0.6/tests'
make[2]: Entering directory `/usr/src/libmodbus-3.0.6'
make[2]: Leaving directory `/usr/src/libmodbus-3.0.6'
make[1]: Leaving directory `/usr/src/libmodbus-3.0.6'
Making install in src
make[1]: Entering directory `/usr/src/libmodbus-3.0.6/src'
make[2]: Entering directory `/usr/src/libmodbus-3.0.6/src'
 /bin/mkdir -p '/usr/local/lib'
 /bin/sh ../libtool   --mode=install /usr/bin/install -c   libmodbus.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libmodbus.so.5.0.5 /usr/local/lib/libmodbus.so.5.0.5
libtool: install: (cd /usr/local/lib && { ln -s -f libmodbus.so.5.0.5 libmodbus.so.5 || { rm -f libmodbus.so.5 && ln -s libmodbus.so.5.0.5 libmodbus.so.5; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libmodbus.so.5.0.5 libmodbus.so || { rm -f libmodbus.so && ln -s libmodbus.so.5.0.5 libmodbus.so; }; })
libtool: install: /usr/bin/install -c .libs/libmodbus.lai /usr/local/lib/libmodbus.la
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /bin/mkdir -p '/usr/local/include/modbus'
 /usr/bin/install -c -m 644 modbus.h modbus-version.h modbus-rtu.h modbus-tcp.h '/usr/local/include/modbus'
make[2]: Leaving directory `/usr/src/libmodbus-3.0.6/src'
make[1]: Leaving directory `/usr/src/libmodbus-3.0.6/src'
Making install in doc
make[1]: Entering directory `/usr/src/libmodbus-3.0.6/doc'
make[2]: Entering directory `/usr/src/libmodbus-3.0.6/doc'
make[2]: Nothing to be done for `install-exec-am'.
 /bin/mkdir -p '/usr/local/share/man/man3'
 /usr/bin/install -c -m 644 modbus_close.3 modbus_connect.3 modbus_flush.3 modbus_free.3 modbus_get_byte_from_bits.3 modbus_get_byte_timeout.3 modbus_get_float.3 modbus_get_header_length.3 modbus_get_response_timeout.3 modbus_get_socket.3 modbus_mapping_free.3 modbus_mapping_new.3 modbus_new_rtu.3 modbus_new_tcp_pi.3 modbus_new_tcp.3 modbus_read_bits.3 modbus_read_input_bits.3 modbus_read_input_registers.3 modbus_read_registers.3 modbus_receive_confirmation.3 modbus_receive_from.3 modbus_receive.3 modbus_reply_exception.3 modbus_reply.3 modbus_report_slave_id.3 modbus_rtu_get_serial_mode.3 modbus_rtu_set_serial_mode.3 modbus_send_raw_request.3 modbus_set_bits_from_bytes.3 modbus_set_bits_from_byte.3 modbus_set_byte_timeout.3 modbus_set_debug.3 modbus_set_error_recovery.3 modbus_set_float.3 modbus_set_response_timeout.3 modbus_set_slave.3 modbus_set_socket.3 modbus_strerror.3 modbus_tcp_listen.3 modbus_write_and_read_registers.3 '/usr/local/share/man/man3'
 /usr/bin/install -c -m 644 modbus_write_bits.3 modbus_write_bit.3 modbus_write_registers.3 modbus_write_register.3 '/usr/local/share/man/man3'
 /bin/mkdir -p '/usr/local/share/man/man7'
 /usr/bin/install -c -m 644 libmodbus.7 '/usr/local/share/man/man7'
make[2]: Leaving directory `/usr/src/libmodbus-3.0.6/doc'
make[1]: Leaving directory `/usr/src/libmodbus-3.0.6/doc'
Making install in tests
make[1]: Entering directory `/usr/src/libmodbus-3.0.6/tests'
make[2]: Entering directory `/usr/src/libmodbus-3.0.6/tests'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/usr/src/libmodbus-3.0.6/tests'
make[1]: Leaving directory `/usr/src/libmodbus-3.0.6/tests'
make[1]: Entering directory `/usr/src/libmodbus-3.0.6'
make[2]: Entering directory `/usr/src/libmodbus-3.0.6'
make[2]: Nothing to be done for `install-exec-am'.
 /bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libmodbus.pc '/usr/local/lib/pkgconfig'
make[2]: Leaving directory `/usr/src/libmodbus-3.0.6'
make[1]: Leaving directory `/usr/src/libmodbus-3.0.6'
Then I started trying the direction in the readme of the plugin

Code: Select all

In general, plugin can be build as usual
./autogen.sh
./configure
make
make install

Code: Select all

[root@nagiosserver check_modbus-master]# ./autogen.sh
configure.ac:4: error: Autoconf version 2.67 or higher is required
configure.ac:4: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
So I installed latest autoconf:

Code: Select all

[root@nagiosserver src]# wget http://ftp.gnu.org/gnu/autoconf/http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
--2014-08-04 13:30:27--  http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1927468 (1.8M) [application/x-gzip]
Saving to: autoconf-latest.tar.gz


 0% [                                                                                                                                                         ] 0           --.-K/s              
 1% [>                                                                                                                                                        ] 23,819       115K/s              
 3% [===>                                                                                                                                                     ] 62,923       150K/s              
 5% [=======>                                                                                                                                                 ] 110,439      171K/s              
12% [==================>                                                                                                                                      ] 242,499      276K/s              
25% [======================================>                                                                                                                  ] 499,519      448K/s              
46% [=====================================================================>                                                                                   ] 888,599      673K/s              
79% [========================================================================================================================>                                ] 1,536,119   1007K/s              
100%[========================================================================================================================================================>] 1,927,468   1.10M/s   in 1.7s    

2014-08-04 13:30:29 (1.10 MB/s) - autoconf-latest.tar.gz saved [1927468/1927468]

[root@nagiosserver src]# tar -xzf autoconf-latest.tar.gz 
[root@nagiosserver src]# cd autoconf-
autoconf-2.69/          autoconf-latest.tar.gz  
[root@nagiosserver src]# cd autoconf-
autoconf-2.69/          autoconf-latest.tar.gz  
[root@nagiosserver src]# cd autoconf-
autoconf-2.69/          autoconf-latest.tar.gz  
[root@nagiosserver src]# cd autoconf-2.69/
[root@nagiosserver autoconf-2.69]# ls -l
total 1896
-rw-rw-r-- 1 root root  25205 Apr 25  2012 aclocal.m4
-rw-rw-r-- 1 root root   8052 Jan 21  2012 AUTHORS
drwxrwxr-x 2 root root   4096 Apr 25  2012 bin
-rw-rw-r-- 1 root root   1645 Jan 21  2012 BUGS
drwxrwxr-x 2 root root   4096 Apr 25  2012 build-aux
-rw-rw-r-- 1 root root   5407 Apr 25  2012 cfg.mk
-rw-rw-r-- 1 root root  21566 Apr 25  2012 ChangeLog
-rw-rw-r-- 1 root root  12943 Mar  5  2010 ChangeLog.0
-rw-rw-r-- 1 root root  68786 Mar  5  2010 ChangeLog.1
-rw-rw-r-- 1 root root 430071 Jan 21  2012 ChangeLog.2
-rw-rw-r-- 1 root root 855071 Apr 25  2012 ChangeLog.3
-rwxrwxr-x 1 root root 131992 Apr 25  2012 configure
-rw-rw-r-- 1 root root   7373 Apr 25  2012 configure.ac
-rw-rw-r-- 1 root root  17987 Mar  5  2010 COPYING
-rw-rw-r-- 1 root root   1865 Mar  5  2011 COPYING.EXCEPTION
-rw-rw-r-- 1 root root  35147 Mar  5  2010 COPYINGv3
drwxrwxr-x 2 root root   4096 Apr 25  2012 doc
-rw-rw-r-- 1 root root   4573 Apr 25  2012 GNUmakefile
-rw-rw-r-- 1 root root  15749 Mar  2  2012 INSTALL
drwxrwxr-x 8 root root   4096 Apr 25  2012 lib
drwxrwxr-x 2 root root   4096 Apr 25  2012 m4
-rw-rw-r-- 1 root root  58430 Apr 25  2012 maint.mk
-rw-rw-r-- 1 root root   5161 Feb 16  2012 Makefile.am
-rw-rw-r-- 1 root root  29348 Apr 25  2012 Makefile.in
drwxrwxr-x 2 root root   4096 Apr 25  2012 man
-rw-rw-r-- 1 root root  81635 Apr 25  2012 NEWS
-rw-rw-r-- 1 root root   2763 Mar  7  2012 README
drwxrwxr-x 2 root root   4096 Apr 25  2012 tests
-rw-rw-r-- 1 root root  21515 Jan 21  2012 THANKS
-rw-rw-r-- 1 root root  23570 Jan 21  2012 TODO
[root@nagiosserver autoconf-2.69]# make./configure ;make;make install;
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
configure: autobuild project... GNU Autoconf
configure: autobuild revision... 2.69
configure: autobuild hostname... nagiosserver.gentgrp.gent.be
configure: autobuild timestamp... 20140804T114327Z
checking whether /bin/sh -n is known to work... yes
checking for characters that cannot appear in file names... none
checking whether directories can have trailing spaces... yes
checking for expr... /usr/bin/expr
checking for GNU M4 that supports accurate traces... /usr/bin/m4
checking whether /usr/bin/m4 accepts --gnu... yes
checking how m4 supports trace files... --debugfile
checking for perl... /usr/bin/perl
checking whether /usr/bin/perl Fcntl::flock is implemented... yes
checking for emacs... no
checking for xemacs... no
checking for emacs... no
checking where .elc files should go... ${datadir}/emacs/site-lisp
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking whether make is case sensitive... yes
configure: creating ./config.status
config.status: creating tests/Makefile
config.status: creating tests/atlocal
config.status: creating man/Makefile
config.status: creating lib/emacs/Makefile
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating lib/Makefile
config.status: creating lib/Autom4te/Makefile
config.status: creating lib/autoscan/Makefile
config.status: creating lib/m4sugar/Makefile
config.status: creating lib/autoconf/Makefile
config.status: creating lib/autotest/Makefile
config.status: creating bin/Makefile
config.status: executing tests/atconfig commands
make  all-recursive
make[1]: Entering directory `/usr/src/autoconf-2.69'
Making all in bin
make[2]: Entering directory `/usr/src/autoconf-2.69/bin'
rm -f autom4te autom4te.tmp
srcdir=''; \
  test -f ./autom4te.in || srcdir=./; \
  sed -e 's|@SHELL[@]|/bin/sh|g' -e 's|@PERL[@]|/usr/bin/perl|g' -e 's|@PERL_FLOCK[@]|yes|g' -e 's|@bindir[@]|/usr/local/bin|g' -e 's|@pkgdatadir[@]|/usr/local/share/autoconf|g' -e 's|@prefix[@]|/usr/local|g' -e 's|@autoconf-name[@]|'`echo autoconf | sed 's,x,x,'`'|g' -e 's|@autoheader-name[@]|'`echo autoheader | sed 's,x,x,'`'|g' -e 's|@autom4te-name[@]|'`echo autom4te | sed 's,x,x,'`'|g' -e 's|@M4[@]|/usr/bin/m4|g' -e 's|@M4_DEBUGFILE[@]|--debugfile|g' -e 's|@M4_GNU[@]|--gnu|g' -e 's|@AWK[@]|gawk|g' -e 's|@RELEASE_YEAR[@]|'`sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' ../ChangeLog`'|g' -e 's|@VERSION[@]|2.69|g' -e 's|@PACKAGE_NAME[@]|GNU Autoconf|g' -e 's|@configure_input[@]|Generated from autom4te.in; do not edit by hand.|g' ${srcdir}autom4te.in >autom4te.tmp
chmod +x autom4te.tmp
chmod a-w autom4te.tmp
mv autom4te.tmp autom4te
cd ../lib && make  autom4te.cfg
make[3]: Entering directory `/usr/src/autoconf-2.69/lib'
rm -f autom4te.cfg autom4te.tmp
sed -e 's|@SHELL[@]|/bin/sh|g' -e 's|@PERL[@]|/usr/bin/perl|g' -e 's|@bindir[@]|/usr/local/bin|g' -e 's|@pkgdatadir[@]|/usr/local/share/autoconf|g' -e 's|@prefix[@]|/usr/local|g' -e 's|@autoconf-name[@]|'`echo autoconf | sed 's,x,x,'`'|g' -e 's|@autoheader-name[@]|'`echo autoheader | sed 's,x,x,'`'|g' -e 's|@autom4te-name[@]|'`echo autom4te | sed 's,x,x,'`'|g' -e 's|@M4[@]|/usr/bin/m4|g' -e 's|@AWK[@]|gawk|g' -e 's|@VERSION[@]|2.69|g' -e 's|@PACKAGE_NAME[@]|GNU Autoconf|g' ./autom4te.in >autom4te.tmp
chmod a-w autom4te.tmp
mv autom4te.tmp autom4te.cfg
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib'
cd ../lib/m4sugar && make  version.m4
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/m4sugar'
:;{ \
  echo '# This file is part of -*- Autoconf -*-.' && \
  echo '# Version of Autoconf.' && \
  echo '# Copyright (C) 1999, 2000, 2001, 2002, 2006, 2007, 2009' && \
  echo '# Free Software Foundation, Inc.' && \
  echo  &&\
  echo 'm4_define([m4_PACKAGE_NAME],      [GNU Autoconf])' && \
  echo 'm4_define([m4_PACKAGE_TARNAME],   [autoconf])' && \
  echo 'm4_define([m4_PACKAGE_VERSION],   [2.69])' && \
  echo 'm4_define([m4_PACKAGE_STRING],    [GNU Autoconf 2.69])' && \
  echo 'm4_define([m4_PACKAGE_BUGREPORT], [[email protected]])' && \
  echo 'm4_define([m4_PACKAGE_URL],       [http://www.gnu.org/software/autoconf/])' && \
  echo 'm4_define([m4_PACKAGE_YEAR],      ['`sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' ../../ChangeLog`'])'; \
} > version.m4-t
mv version.m4-t version.m4
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/m4sugar'
autom4te_perllibdir='..'/lib AUTOM4TE_CFG='../lib/autom4te.cfg'         ../bin/autom4te -B '..'/lib -B '..'/lib         --language M4sh --cache '' --melt ./autoconf.as -o autoconf.in
rm -f autoconf autoconf.tmp
srcdir=''; \
  test -f ./autoconf.in || srcdir=./; \
  sed -e 's|@SHELL[@]|/bin/sh|g' -e 's|@PERL[@]|/usr/bin/perl|g' -e 's|@PERL_FLOCK[@]|yes|g' -e 's|@bindir[@]|/usr/local/bin|g' -e 's|@pkgdatadir[@]|/usr/local/share/autoconf|g' -e 's|@prefix[@]|/usr/local|g' -e 's|@autoconf-name[@]|'`echo autoconf | sed 's,x,x,'`'|g' -e 's|@autoheader-name[@]|'`echo autoheader | sed 's,x,x,'`'|g' -e 's|@autom4te-name[@]|'`echo autom4te | sed 's,x,x,'`'|g' -e 's|@M4[@]|/usr/bin/m4|g' -e 's|@M4_DEBUGFILE[@]|--debugfile|g' -e 's|@M4_GNU[@]|--gnu|g' -e 's|@AWK[@]|gawk|g' -e 's|@RELEASE_YEAR[@]|'`sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' ../ChangeLog`'|g' -e 's|@VERSION[@]|2.69|g' -e 's|@PACKAGE_NAME[@]|GNU Autoconf|g' -e 's|@configure_input[@]|Generated from autoconf.in; do not edit by hand.|g' ${srcdir}autoconf.in >autoconf.tmp
chmod +x autoconf.tmp
chmod a-w autoconf.tmp
mv autoconf.tmp autoconf
rm -f autoheader autoheader.tmp
srcdir=''; \
  test -f ./autoheader.in || srcdir=./; \
  sed -e 's|@SHELL[@]|/bin/sh|g' -e 's|@PERL[@]|/usr/bin/perl|g' -e 's|@PERL_FLOCK[@]|yes|g' -e 's|@bindir[@]|/usr/local/bin|g' -e 's|@pkgdatadir[@]|/usr/local/share/autoconf|g' -e 's|@prefix[@]|/usr/local|g' -e 's|@autoconf-name[@]|'`echo autoconf | sed 's,x,x,'`'|g' -e 's|@autoheader-name[@]|'`echo autoheader | sed 's,x,x,'`'|g' -e 's|@autom4te-name[@]|'`echo autom4te | sed 's,x,x,'`'|g' -e 's|@M4[@]|/usr/bin/m4|g' -e 's|@M4_DEBUGFILE[@]|--debugfile|g' -e 's|@M4_GNU[@]|--gnu|g' -e 's|@AWK[@]|gawk|g' -e 's|@RELEASE_YEAR[@]|'`sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' ../ChangeLog`'|g' -e 's|@VERSION[@]|2.69|g' -e 's|@PACKAGE_NAME[@]|GNU Autoconf|g' -e 's|@configure_input[@]|Generated from autoheader.in; do not edit by hand.|g' ${srcdir}autoheader.in >autoheader.tmp
chmod +x autoheader.tmp
chmod a-w autoheader.tmp
mv autoheader.tmp autoheader
rm -f autoreconf autoreconf.tmp
srcdir=''; \
  test -f ./autoreconf.in || srcdir=./; \
  sed -e 's|@SHELL[@]|/bin/sh|g' -e 's|@PERL[@]|/usr/bin/perl|g' -e 's|@PERL_FLOCK[@]|yes|g' -e 's|@bindir[@]|/usr/local/bin|g' -e 's|@pkgdatadir[@]|/usr/local/share/autoconf|g' -e 's|@prefix[@]|/usr/local|g' -e 's|@autoconf-name[@]|'`echo autoconf | sed 's,x,x,'`'|g' -e 's|@autoheader-name[@]|'`echo autoheader | sed 's,x,x,'`'|g' -e 's|@autom4te-name[@]|'`echo autom4te | sed 's,x,x,'`'|g' -e 's|@M4[@]|/usr/bin/m4|g' -e 's|@M4_DEBUGFILE[@]|--debugfile|g' -e 's|@M4_GNU[@]|--gnu|g' -e 's|@AWK[@]|gawk|g' -e 's|@RELEASE_YEAR[@]|'`sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' ../ChangeLog`'|g' -e 's|@VERSION[@]|2.69|g' -e 's|@PACKAGE_NAME[@]|GNU Autoconf|g' -e 's|@configure_input[@]|Generated from autoreconf.in; do not edit by hand.|g' ${srcdir}autoreconf.in >autoreconf.tmp
chmod +x autoreconf.tmp
chmod a-w autoreconf.tmp
mv autoreconf.tmp autoreconf
rm -f ifnames ifnames.tmp
srcdir=''; \
  test -f ./ifnames.in || srcdir=./; \
  sed -e 's|@SHELL[@]|/bin/sh|g' -e 's|@PERL[@]|/usr/bin/perl|g' -e 's|@PERL_FLOCK[@]|yes|g' -e 's|@bindir[@]|/usr/local/bin|g' -e 's|@pkgdatadir[@]|/usr/local/share/autoconf|g' -e 's|@prefix[@]|/usr/local|g' -e 's|@autoconf-name[@]|'`echo autoconf | sed 's,x,x,'`'|g' -e 's|@autoheader-name[@]|'`echo autoheader | sed 's,x,x,'`'|g' -e 's|@autom4te-name[@]|'`echo autom4te | sed 's,x,x,'`'|g' -e 's|@M4[@]|/usr/bin/m4|g' -e 's|@M4_DEBUGFILE[@]|--debugfile|g' -e 's|@M4_GNU[@]|--gnu|g' -e 's|@AWK[@]|gawk|g' -e 's|@RELEASE_YEAR[@]|'`sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' ../ChangeLog`'|g' -e 's|@VERSION[@]|2.69|g' -e 's|@PACKAGE_NAME[@]|GNU Autoconf|g' -e 's|@configure_input[@]|Generated from ifnames.in; do not edit by hand.|g' ${srcdir}ifnames.in >ifnames.tmp
chmod +x ifnames.tmp
chmod a-w ifnames.tmp
mv ifnames.tmp ifnames
rm -f autoscan autoscan.tmp
srcdir=''; \
  test -f ./autoscan.in || srcdir=./; \
  sed -e 's|@SHELL[@]|/bin/sh|g' -e 's|@PERL[@]|/usr/bin/perl|g' -e 's|@PERL_FLOCK[@]|yes|g' -e 's|@bindir[@]|/usr/local/bin|g' -e 's|@pkgdatadir[@]|/usr/local/share/autoconf|g' -e 's|@prefix[@]|/usr/local|g' -e 's|@autoconf-name[@]|'`echo autoconf | sed 's,x,x,'`'|g' -e 's|@autoheader-name[@]|'`echo autoheader | sed 's,x,x,'`'|g' -e 's|@autom4te-name[@]|'`echo autom4te | sed 's,x,x,'`'|g' -e 's|@M4[@]|/usr/bin/m4|g' -e 's|@M4_DEBUGFILE[@]|--debugfile|g' -e 's|@M4_GNU[@]|--gnu|g' -e 's|@AWK[@]|gawk|g' -e 's|@RELEASE_YEAR[@]|'`sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' ../ChangeLog`'|g' -e 's|@VERSION[@]|2.69|g' -e 's|@PACKAGE_NAME[@]|GNU Autoconf|g' -e 's|@configure_input[@]|Generated from autoscan.in; do not edit by hand.|g' ${srcdir}autoscan.in >autoscan.tmp
chmod +x autoscan.tmp
chmod a-w autoscan.tmp
mv autoscan.tmp autoscan
rm -f autoupdate autoupdate.tmp
srcdir=''; \
  test -f ./autoupdate.in || srcdir=./; \
  sed -e 's|@SHELL[@]|/bin/sh|g' -e 's|@PERL[@]|/usr/bin/perl|g' -e 's|@PERL_FLOCK[@]|yes|g' -e 's|@bindir[@]|/usr/local/bin|g' -e 's|@pkgdatadir[@]|/usr/local/share/autoconf|g' -e 's|@prefix[@]|/usr/local|g' -e 's|@autoconf-name[@]|'`echo autoconf | sed 's,x,x,'`'|g' -e 's|@autoheader-name[@]|'`echo autoheader | sed 's,x,x,'`'|g' -e 's|@autom4te-name[@]|'`echo autom4te | sed 's,x,x,'`'|g' -e 's|@M4[@]|/usr/bin/m4|g' -e 's|@M4_DEBUGFILE[@]|--debugfile|g' -e 's|@M4_GNU[@]|--gnu|g' -e 's|@AWK[@]|gawk|g' -e 's|@RELEASE_YEAR[@]|'`sed 's/^\([0-9][0-9][0-9][0-9]\).*/\1/;q' ../ChangeLog`'|g' -e 's|@VERSION[@]|2.69|g' -e 's|@PACKAGE_NAME[@]|GNU Autoconf|g' -e 's|@configure_input[@]|Generated from autoupdate.in; do not edit by hand.|g' ${srcdir}autoupdate.in >autoupdate.tmp
chmod +x autoupdate.tmp
chmod a-w autoupdate.tmp
mv autoupdate.tmp autoupdate
make[2]: Leaving directory `/usr/src/autoconf-2.69/bin'
Making all in .
make[2]: Entering directory `/usr/src/autoconf-2.69'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/usr/src/autoconf-2.69'
Making all in lib
make[2]: Entering directory `/usr/src/autoconf-2.69/lib'
Making all in Autom4te
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/Autom4te'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/Autom4te'
Making all in m4sugar
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/m4sugar'
autom4te_perllibdir='../..'/lib AUTOM4TE_CFG='../../lib/autom4te.cfg'         ../../bin/autom4te -B '../..'/lib -B '../..'/lib        \
--language=m4sugar\
--freeze\
--output=m4sugar.m4f
autom4te_perllibdir='../..'/lib AUTOM4TE_CFG='../../lib/autom4te.cfg'         ../../bin/autom4te -B '../..'/lib -B '../..'/lib        \
--language=m4sh\
--freeze\
--output=m4sh.m4f
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/m4sugar'
Making all in autoconf
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/autoconf'
autom4te_perllibdir='../..'/lib AUTOM4TE_CFG='../../lib/autom4te.cfg'         ../../bin/autom4te -B '../..'/lib -B '../..'/lib        \
--language=autoconf\
--freeze\
--output=autoconf.m4f
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/autoconf'
Making all in autotest
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/autotest'
autom4te_perllibdir='../..'/lib AUTOM4TE_CFG='../../lib/autom4te.cfg'         ../../bin/autom4te -B '../..'/lib -B '../..'/lib        \
--language=autotest\
--freeze\
--output=autotest.m4f
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/autotest'
Making all in autoscan
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/autoscan'
echo '# Automatically Generated: do not edit this file' >autoscan.list
sed '/^[#]/!q' ./autoscan.pre                  >>autoscan.list
( \
  sed -n '/^[^#]/p' ./autoscan.pre; \
  autom4te_perllibdir='../..'/lib AUTOM4TE_CFG='../../lib/autom4te.cfg'         ../../bin/autom4te -B '../..'/lib -B '../..'/lib         --cache '' -M -l autoconf -t'AN_OUTPUT:$1: $2$3' \
) | LC_ALL=C sort                                      >>autoscan.list
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/autoscan'
Making all in emacs
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/emacs'
WARNING: Warnings can be ignored. :-)
if test "no" != no; then \
  set x; \
  list='autoconf-mode.el autotest-mode.el'; for p in $list; do \
    if test -f "$p"; then d=; else d="./"; fi; \
    set x "$@" "$d$p"; shift; \
  done; \
  shift; \
  EMACS="no" /bin/sh ../../build-aux/elisp-comp "$@" || exit 1; \
else : ; fi
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/emacs'
make[3]: Entering directory `/usr/src/autoconf-2.69/lib'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib'
make[2]: Leaving directory `/usr/src/autoconf-2.69/lib'
Making all in doc
make[2]: Entering directory `/usr/src/autoconf-2.69/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/src/autoconf-2.69/doc'
Making all in tests
make[2]: Entering directory `/usr/src/autoconf-2.69/tests'
autom4te_perllibdir='..'/lib AUTOM4TE_CFG='../lib/autom4te.cfg'         ../bin/autom4te -B '..'/lib -B '..'/lib         --language=M4sh ./wrapper.as -o wrapper.in
rm -f autoconf autoconf.tmp
input=wrapper.in; \
sed -e 's|@wrap_program[@]|autoconf|g' -e 's|@abs_top_srcdir[@]|/usr/src/autoconf-2.69|g' -e 's|@abs_top_builddir[@]|/usr/src/autoconf-2.69|g' -e "s|@configure_input[@]|Generated from $input.|g" wrapper.in >autoconf.tmp
chmod +x autoconf.tmp
chmod a-w autoconf.tmp
mv -f autoconf.tmp autoconf
rm -f autoheader autoheader.tmp
input=wrapper.in; \
sed -e 's|@wrap_program[@]|autoheader|g' -e 's|@abs_top_srcdir[@]|/usr/src/autoconf-2.69|g' -e 's|@abs_top_builddir[@]|/usr/src/autoconf-2.69|g' -e "s|@configure_input[@]|Generated from $input.|g" wrapper.in >autoheader.tmp
chmod +x autoheader.tmp
chmod a-w autoheader.tmp
mv -f autoheader.tmp autoheader
rm -f autom4te autom4te.tmp
input=wrapper.in; \
sed -e 's|@wrap_program[@]|autom4te|g' -e 's|@abs_top_srcdir[@]|/usr/src/autoconf-2.69|g' -e 's|@abs_top_builddir[@]|/usr/src/autoconf-2.69|g' -e "s|@configure_input[@]|Generated from $input.|g" wrapper.in >autom4te.tmp
chmod +x autom4te.tmp
chmod a-w autom4te.tmp
mv -f autom4te.tmp autom4te
rm -f autoreconf autoreconf.tmp
input=wrapper.in; \
sed -e 's|@wrap_program[@]|autoreconf|g' -e 's|@abs_top_srcdir[@]|/usr/src/autoconf-2.69|g' -e 's|@abs_top_builddir[@]|/usr/src/autoconf-2.69|g' -e "s|@configure_input[@]|Generated from $input.|g" wrapper.in >autoreconf.tmp
chmod +x autoreconf.tmp
chmod a-w autoreconf.tmp
mv -f autoreconf.tmp autoreconf
rm -f autoscan autoscan.tmp
input=wrapper.in; \
sed -e 's|@wrap_program[@]|autoscan|g' -e 's|@abs_top_srcdir[@]|/usr/src/autoconf-2.69|g' -e 's|@abs_top_builddir[@]|/usr/src/autoconf-2.69|g' -e "s|@configure_input[@]|Generated from $input.|g" wrapper.in >autoscan.tmp
chmod +x autoscan.tmp
chmod a-w autoscan.tmp
mv -f autoscan.tmp autoscan
rm -f autoupdate autoupdate.tmp
input=wrapper.in; \
sed -e 's|@wrap_program[@]|autoupdate|g' -e 's|@abs_top_srcdir[@]|/usr/src/autoconf-2.69|g' -e 's|@abs_top_builddir[@]|/usr/src/autoconf-2.69|g' -e "s|@configure_input[@]|Generated from $input.|g" wrapper.in >autoupdate.tmp
chmod +x autoupdate.tmp
chmod a-w autoupdate.tmp
mv -f autoupdate.tmp autoupdate
rm -f ifnames ifnames.tmp
input=wrapper.in; \
sed -e 's|@wrap_program[@]|ifnames|g' -e 's|@abs_top_srcdir[@]|/usr/src/autoconf-2.69|g' -e 's|@abs_top_builddir[@]|/usr/src/autoconf-2.69|g' -e "s|@configure_input[@]|Generated from $input.|g" wrapper.in >ifnames.tmp
chmod +x ifnames.tmp
chmod a-w ifnames.tmp
mv -f ifnames.tmp ifnames
make[2]: Leaving directory `/usr/src/autoconf-2.69/tests'
Making all in man
make[2]: Entering directory `/usr/src/autoconf-2.69/man'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/src/autoconf-2.69/man'
make[1]: Leaving directory `/usr/src/autoconf-2.69'
make  install-recursive
make[1]: Entering directory `/usr/src/autoconf-2.69'
Making install in bin
make[2]: Entering directory `/usr/src/autoconf-2.69/bin'
make[3]: Entering directory `/usr/src/autoconf-2.69/bin'
test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
 /usr/bin/install -c autom4te autoconf autoheader autoreconf ifnames autoscan autoupdate '/usr/local/bin'
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/usr/src/autoconf-2.69/bin'
make[2]: Leaving directory `/usr/src/autoconf-2.69/bin'
Making install in .
make[2]: Entering directory `/usr/src/autoconf-2.69'
make[3]: Entering directory `/usr/src/autoconf-2.69'
make[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/autoconf" || /bin/mkdir -p "/usr/local/share/autoconf"
 /usr/bin/install -c -m 644 ./INSTALL '/usr/local/share/autoconf'
make[3]: Leaving directory `/usr/src/autoconf-2.69'
make[2]: Leaving directory `/usr/src/autoconf-2.69'
Making install in lib
make[2]: Entering directory `/usr/src/autoconf-2.69/lib'
Making install in Autom4te
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/Autom4te'
make[4]: Entering directory `/usr/src/autoconf-2.69/lib/Autom4te'
make[4]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/autoconf/Autom4te" || /bin/mkdir -p "/usr/local/share/autoconf/Autom4te"
 /usr/bin/install -c -m 644 C4che.pm ChannelDefs.pm Channels.pm Configure_ac.pm FileUtils.pm General.pm Getopt.pm Request.pm XFile.pm '/usr/local/share/autoconf/Autom4te'
make[4]: Leaving directory `/usr/src/autoconf-2.69/lib/Autom4te'
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/Autom4te'
Making install in m4sugar
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/m4sugar'
make[4]: Entering directory `/usr/src/autoconf-2.69/lib/m4sugar'
make[4]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/autoconf/m4sugar" || /bin/mkdir -p "/usr/local/share/autoconf/m4sugar"
 /usr/bin/install -c -m 644 m4sugar.m4 foreach.m4 m4sh.m4 '/usr/local/share/autoconf/m4sugar'
test -z "/usr/local/share/autoconf/m4sugar" || /bin/mkdir -p "/usr/local/share/autoconf/m4sugar"
 /usr/bin/install -c -m 644 version.m4 m4sugar.m4f m4sh.m4f '/usr/local/share/autoconf/m4sugar'
make[4]: Leaving directory `/usr/src/autoconf-2.69/lib/m4sugar'
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/m4sugar'
Making install in autoconf
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/autoconf'
make[4]: Entering directory `/usr/src/autoconf-2.69/lib/autoconf'
make[4]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/autoconf/autoconf" || /bin/mkdir -p "/usr/local/share/autoconf/autoconf"
 /usr/bin/install -c -m 644 autoconf.m4 general.m4 status.m4 oldnames.m4 specific.m4 autoheader.m4 autoupdate.m4 autotest.m4 autoscan.m4 lang.m4 c.m4 erlang.m4 fortran.m4 functions.m4 go.m4 headers.m4 types.m4 libs.m4 programs.m4 '/usr/local/share/autoconf/autoconf'
test -z "/usr/local/share/autoconf/autoconf" || /bin/mkdir -p "/usr/local/share/autoconf/autoconf"
 /usr/bin/install -c -m 644 autoconf.m4f '/usr/local/share/autoconf/autoconf'
make[4]: Leaving directory `/usr/src/autoconf-2.69/lib/autoconf'
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/autoconf'
Making install in autotest
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/autotest'
make[4]: Entering directory `/usr/src/autoconf-2.69/lib/autotest'
make[4]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/autoconf/autotest" || /bin/mkdir -p "/usr/local/share/autoconf/autotest"
 /usr/bin/install -c -m 644 autotest.m4 general.m4 specific.m4 '/usr/local/share/autoconf/autotest'
test -z "/usr/local/share/autoconf/autotest" || /bin/mkdir -p "/usr/local/share/autoconf/autotest"
 /usr/bin/install -c -m 644 autotest.m4f '/usr/local/share/autoconf/autotest'
make[4]: Leaving directory `/usr/src/autoconf-2.69/lib/autotest'
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/autotest'
Making install in autoscan
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/autoscan'
make[4]: Entering directory `/usr/src/autoconf-2.69/lib/autoscan'
make[4]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/autoconf/autoscan" || /bin/mkdir -p "/usr/local/share/autoconf/autoscan"
 /usr/bin/install -c -m 644 autoscan.list '/usr/local/share/autoconf/autoscan'
make[4]: Leaving directory `/usr/src/autoconf-2.69/lib/autoscan'
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/autoscan'
Making install in emacs
make[3]: Entering directory `/usr/src/autoconf-2.69/lib/emacs'
make[4]: Entering directory `/usr/src/autoconf-2.69/lib/emacs'
make[4]: Nothing to be done for `install-exec-am'.
make[4]: Leaving directory `/usr/src/autoconf-2.69/lib/emacs'
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib/emacs'
make[3]: Entering directory `/usr/src/autoconf-2.69/lib'
make[4]: Entering directory `/usr/src/autoconf-2.69/lib'
make[4]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/autoconf" || /bin/mkdir -p "/usr/local/share/autoconf"
 /usr/bin/install -c -m 644 autom4te.cfg '/usr/local/share/autoconf'
make[4]: Leaving directory `/usr/src/autoconf-2.69/lib'
make[3]: Leaving directory `/usr/src/autoconf-2.69/lib'
make[2]: Leaving directory `/usr/src/autoconf-2.69/lib'
Making install in doc
make[2]: Entering directory `/usr/src/autoconf-2.69/doc'
make[3]: Entering directory `/usr/src/autoconf-2.69/doc'
make[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/info" || /bin/mkdir -p "/usr/local/share/info"
 /usr/bin/install -c -m 644 ./autoconf.info ./standards.info '/usr/local/share/info'
 install-info --info-dir='/usr/local/share/info' '/usr/local/share/info/autoconf.info'
 install-info --info-dir='/usr/local/share/info' '/usr/local/share/info/standards.info'
make[3]: Leaving directory `/usr/src/autoconf-2.69/doc'
make[2]: Leaving directory `/usr/src/autoconf-2.69/doc'
Making install in tests
make[2]: Entering directory `/usr/src/autoconf-2.69/tests'
make[3]: Entering directory `/usr/src/autoconf-2.69/tests'
make[3]: Nothing to be done for `install-exec-am'.
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/usr/src/autoconf-2.69/tests'
make[2]: Leaving directory `/usr/src/autoconf-2.69/tests'
Making install in man
make[2]: Entering directory `/usr/src/autoconf-2.69/man'
make[3]: Entering directory `/usr/src/autoconf-2.69/man'
make[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/man/man1" || /bin/mkdir -p "/usr/local/share/man/man1"
 /usr/bin/install -c -m 644 ./autoconf.1 ./autoheader.1 ./autom4te.1 ./autoreconf.1 ./autoscan.1 ./autoupdate.1 ./ifnames.1 ./config.guess.1 ./config.sub.1 '/usr/local/share/man/man1'
make[3]: Leaving directory `/usr/src/autoconf-2.69/man'
make[2]: Leaving directory `/usr/src/autoconf-2.69/man'
make[1]: Leaving directory `/usr/src/autoconf-2.69'
[root@nagiosserver autoconf-2.69]# cd ..
[root@nagiosserver src]# ls -l
total 2456
drwxrwxr-x  9 root root     4096 Aug  4 13:43 autoconf-2.69
-rw-r--r--  1 root root  1927468 Apr 25  2012 autoconf-latest.tar.gz
drwxr-xr-x  7 root root     4096 Aug  4 13:24 check_modbus-master
drwxr-xr-x. 2 root root     4096 Sep 23  2011 debug
drwxr-xr-x. 2 root root     4096 Sep 23  2011 kernels
drwxr-xr-x  6 1000 users    4096 Aug  4 13:04 libmodbus-3.0.6
-rw-r--r--  1 root root   504757 May 16 23:50 libmodbus-3.0.6.tar.gz
-rw-r--r--  1 root root    55569 Aug  4 13:01 master
[root@nagiosserver src]# cd check_modbus-master/
[root@nagiosserver check_modbus-master]# ./autogen.sh 
configure.ac:51: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2590: _AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2606: AC_COMPILE_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from...
m4/attributes.m4:38: CC_CHECK_CFLAGS_SILENT is expanded from...
m4/attributes.m4:67: CC_CHECK_CFLAG_APPEND is expanded from...
m4/attributes.m4:78: CC_CHECK_CFLAGS_APPEND is expanded from...
configure.ac:51: the top level
configure.ac:51: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2590: _AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2606: AC_COMPILE_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from...
m4/attributes.m4:38: CC_CHECK_CFLAGS_SILENT is expanded from...
m4/attributes.m4:67: CC_CHECK_CFLAG_APPEND is expanded from...
m4/attributes.m4:78: CC_CHECK_CFLAGS_APPEND is expanded from...
configure.ac:51: the top level
configure.ac:51: warning: AC_LANG_CONFTEST: no AC_LANG_SOURCE call detected in body
../../lib/autoconf/lang.m4:193: AC_LANG_CONFTEST is expanded from...
../../lib/autoconf/general.m4:2590: _AC_COMPILE_IFELSE is expanded from...
../../lib/autoconf/general.m4:2606: AC_COMPILE_IFELSE is expanded from...
../../lib/m4sugar/m4sh.m4:639: AS_IF is expanded from...
../../lib/autoconf/general.m4:2031: AC_CACHE_VAL is expanded from...
m4/attributes.m4:38: CC_CHECK_CFLAGS_SILENT is expanded from...
m4/attributes.m4:67: CC_CHECK_CFLAG_APPEND is expanded from...
m4/attributes.m4:78: CC_CHECK_CFLAGS_APPEND is expanded from...
configure.ac:51: the top level
configure.ac:18: installing `./config.guess'
configure.ac:18: installing `./config.sub'
configure.ac:7: installing `./install-sh'
configure.ac:7: installing `./missing'
src/Makefile.am: installing `./depcomp'
Ready to run ./configure
[root@nagiosserver check_modbus-master]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking for library containing modbus_set_slave... -lmodbus
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking modbus.h usability... no
checking modbus.h presence... no
checking for modbus.h... no
checking for unistd.h... (cached) yes
checking for int16_t... yes
checking for int32_t... yes
checking for int8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint8_t... yes
checking for modbus_new_tcp_pi... yes
checking if gcc supports -Wall flag... yes
checking if gcc supports -Wextra flag... yes
checking if gcc supports -Wpedantic flag... no
checking if gcc supports -Wc++-compat flag... yes
checking if gcc supports -Wmissing-declarations flag... yes
checking if gcc supports -Wmissing-prototypes flag... yes
checking if gcc supports -Wformat-security flag... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating m4/Makefile
config.status: executing depfiles commands
After installing autoconf, I managed to proceed with the check_modbus installation, but got stuck again trying to make and make install the plugin:

Code: Select all

[root@nagiosserver check_modbus-master]# make
Making all in src
make[1]: Entering directory `/usr/src/check_modbus-master/src'
gcc -DPACKAGE_NAME=\"check_modbus\" -DPACKAGE_TARNAME=\"check_modbus\" -DPACKAGE_VERSION=\"0.47\" -DPACKAGE_STRING=\"check_modbus\ 0.47\" -DPACKAGE_BUGREPORT=\"Andrej.Skvortzov-at-gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"check_modbus\" -DVERSION=\"0.47\" -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MODBUS_NEW_TCP_PI=1 -I.     -g -O2 -Wall -Wextra -Wc++-compat -Wmissing-declarations -Wmissing-prototypes -Wformat-security -MT command_line.o -MD -MP -MF .deps/command_line.Tpo -c -o command_line.o command_line.c
In file included from command_line.h:31,
                 from command_line.c:35:
check_modbus.h:31:20: error: ranges.h: No such file or directory
In file included from command_line.h:31,
                 from command_line.c:35:
check_modbus.h:59: error: field warn_range has incomplete type
check_modbus.h:60: error: field crit_range has incomplete type
command_line.c: In function print_settings:
command_line.c:159: warning: implicit declaration of function fprint_range
command_line.c: In function parse_command_line:
command_line.c:554: warning: implicit declaration of function parse_range
make[1]: *** [command_line.o] Error 1
make[1]: Leaving directory `/usr/src/check_modbus-master/src'
make: *** [all-recursive] Error 1
[root@nagiosserver check_modbus-master]# make install
Making install in src
make[1]: Entering directory `/usr/src/check_modbus-master/src'
gcc -DPACKAGE_NAME=\"check_modbus\" -DPACKAGE_TARNAME=\"check_modbus\" -DPACKAGE_VERSION=\"0.47\" -DPACKAGE_STRING=\"check_modbus\ 0.47\" -DPACKAGE_BUGREPORT=\"Andrej.Skvortzov-at-gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"check_modbus\" -DVERSION=\"0.47\" -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MODBUS_NEW_TCP_PI=1 -I.     -g -O2 -Wall -Wextra -Wc++-compat -Wmissing-declarations -Wmissing-prototypes -Wformat-security -MT command_line.o -MD -MP -MF .deps/command_line.Tpo -c -o command_line.o command_line.c
In file included from command_line.h:31,
                 from command_line.c:35:
check_modbus.h:31:20: error: ranges.h: No such file or directory
In file included from command_line.h:31,
                 from command_line.c:35:
check_modbus.h:59: error: field warn_range has incomplete type
check_modbus.h:60: error: field crit_range has incomplete type
command_line.c: In function print_settings:
command_line.c:159: warning: implicit declaration of function fprint_range
command_line.c: In function parse_command_line:
command_line.c:554: warning: implicit declaration of function parse_range
make[1]: *** [command_line.o] Error 1
make[1]: Leaving directory `/usr/src/check_modbus-master/src'
make: *** [install-recursive] Error 1
[root@nagiosserver check_modbus-master]# locate check_modbus
[root@nagiosserver check_modbus-master]# check_modbus
-bash: check_modbus: command not found
[root@nagiosserver check_modbus-master]# man check_modbus
No manual entry for check_modbus
As I have no idea where things went wrong, I tried following the procedure in http://leshcatlabs.net/2014/04/15/power ... th-nagios/

Code: Select all

1. Via root shell, navigate to some comfortable place like /usr/src/.

[root@ /]# cd /usr/src/

2. Download and extract libmodbus library and useful check_modbus app that will query info to Nagios for us:

[root@ src]# wget https://github.com/AndreySV/check_modbus/archive/master.zip  mirror
[root@ src]# wget http://libmodbus.org/download/libmodbus-3.0.6.tar.gz  mirror

3. Untar libmodbus archive, enter libmodbus directory and install it:
[root@ libmodbus-3.0.6]# ./configure;make;make install;

4. In same fashion install check_modbus:
[root@ check_modbus-master]# ./configure LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include;
[root@ check_modbus-master]# make;make install;

Code: Select all

[root@nagiosserver check_modbus-master]# ./configure LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include;
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether make sets $(MAKE)... (cached) yes
checking for library containing modbus_set_slave... -lmodbus
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking modbus.h usability... no
checking modbus.h presence... no
checking for modbus.h... no
checking for unistd.h... (cached) yes
checking for int16_t... yes
checking for int32_t... yes
checking for int8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint8_t... yes
checking for modbus_new_tcp_pi... yes
checking if gcc supports -Wall flag... yes
checking if gcc supports -Wextra flag... yes
checking if gcc supports -Wpedantic flag... no
checking if gcc supports -Wc++-compat flag... yes
checking if gcc supports -Wmissing-declarations flag... yes
checking if gcc supports -Wmissing-prototypes flag... yes
checking if gcc supports -Wformat-security flag... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating m4/Makefile
config.status: executing depfiles commands
[root@nagiosserver check_modbus-master]# make;make install;
Making all in src
make[1]: Entering directory `/usr/src/check_modbus-master/src'
gcc -DPACKAGE_NAME=\"check_modbus\" -DPACKAGE_TARNAME=\"check_modbus\" -DPACKAGE_VERSION=\"0.47\" -DPACKAGE_STRING=\"check_modbus\ 0.47\" -DPACKAGE_BUGREPORT=\"Andrej.Skvortzov-at-gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"check_modbus\" -DVERSION=\"0.47\" -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MODBUS_NEW_TCP_PI=1 -I.   -I/usr/local/include  -g -O2 -Wall -Wextra -Wc++-compat -Wmissing-declarations -Wmissing-prototypes -Wformat-security -MT command_line.o -MD -MP -MF .deps/command_line.Tpo -c -o command_line.o command_line.c
In file included from command_line.h:31,
                 from command_line.c:35:
check_modbus.h:31:20: error: ranges.h: No such file or directory
In file included from command_line.h:31,
                 from command_line.c:35:
check_modbus.h:59: error: field warn_range has incomplete type
check_modbus.h:60: error: field crit_range has incomplete type
command_line.c: In function print_settings:
command_line.c:159: warning: implicit declaration of function fprint_range
command_line.c: In function parse_command_line:
command_line.c:554: warning: implicit declaration of function parse_range
make[1]: *** [command_line.o] Error 1
make[1]: Leaving directory `/usr/src/check_modbus-master/src'
make: *** [all-recursive] Error 1
Making install in src
make[1]: Entering directory `/usr/src/check_modbus-master/src'
gcc -DPACKAGE_NAME=\"check_modbus\" -DPACKAGE_TARNAME=\"check_modbus\" -DPACKAGE_VERSION=\"0.47\" -DPACKAGE_STRING=\"check_modbus\ 0.47\" -DPACKAGE_BUGREPORT=\"Andrej.Skvortzov-at-gmail.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"check_modbus\" -DVERSION=\"0.47\" -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MODBUS_NEW_TCP_PI=1 -I.   -I/usr/local/include  -g -O2 -Wall -Wextra -Wc++-compat -Wmissing-declarations -Wmissing-prototypes -Wformat-security -MT command_line.o -MD -MP -MF .deps/command_line.Tpo -c -o command_line.o command_line.c
In file included from command_line.h:31,
                 from command_line.c:35:
check_modbus.h:31:20: error: ranges.h: No such file or directory
In file included from command_line.h:31,
                 from command_line.c:35:
check_modbus.h:59: error: field warn_range has incomplete type
check_modbus.h:60: error: field crit_range has incomplete type
command_line.c: In function print_settings:
command_line.c:159: warning: implicit declaration of function fprint_range
command_line.c: In function parse_command_line:
command_line.c:554: warning: implicit declaration of function parse_range
make[1]: *** [command_line.o] Error 1
make[1]: Leaving directory `/usr/src/check_modbus-master/src'
make: *** [install-recursive] Error 1
Any help to make this plugin working is highly appreciated!

Willem
Nagios XI 5.8.1
https://outsideit.net
tmcdonald
Posts: 9117
Joined: Mon Sep 23, 2013 8:40 am

Re: check_modbus on Nagios XI installation issues

Post by tmcdonald »

It actually looks like it compiled properly the first time. Is there a binary of the plugin in /usr/src/libmodbus-3.0.6 by chance?

If not, try running the following to find it:

Code: Select all

find / -name check_modbus
Former Nagios employee
User avatar
WillemDH
Posts: 2320
Joined: Wed Mar 20, 2013 5:49 am
Location: Ghent
Contact:

Re: check_modbus on Nagios XI installation issues

Post by WillemDH »

Trevor,

Code: Select all

find / -name check_modbus
gives no result.

Willem
Nagios XI 5.8.1
https://outsideit.net
tmcdonald
Posts: 9117
Joined: Mon Sep 23, 2013 8:40 am

Re: check_modbus on Nagios XI installation issues

Post by tmcdonald »

What OS and version is this? It installed alright on CentOS 6.5
Former Nagios employee
User avatar
WillemDH
Posts: 2320
Joined: Wed Mar 20, 2013 5:49 am
Location: Ghent
Contact:

Re: check_modbus on Nagios XI installation issues

Post by WillemDH »

Hi Trevor,

Thank you for trying. I installed it on my test box, which is on VMWare image 6.5, with almost nothing on it. Maybe I was not doing it right? I don't have many experience with the configure, make, make install. Can you tell me how you installed it? Did you also had to update your autoconf before you could proced?

Grtz

Willem
Nagios XI 5.8.1
https://outsideit.net
User avatar
WillemDH
Posts: 2320
Joined: Wed Mar 20, 2013 5:49 am
Location: Ghent
Contact:

Re: check_modbus on Nagios XI installation issues

Post by WillemDH »

Trevor,

Suddenly started thinking you probably installed 0.46. I downloaded 0.47 from GitHub. So I tried reinstalling with 0.46 and the installation succeeded! But I stumbled on some other issues before I could really run the plugin and I'd like to know your opinion before I continue installing this on my production server.

After make and make install, I noticed the plugin was installed in /usr/local/bin instead of /usr/local/nagios/libexec

Could this cause an issue? Is there any way to make it install to /usr/local/nagios/libexec?

When trying to start the plugin for the first time, I got the following error:

Code: Select all

/usr/local/bin/check_modbus
/usr/local/bin/check_modbus: error while loading shared libraries: libmodbus.so.5: cannot open shared object file: No such file or directory
After doing some online research, I found a 'fix', but I'd like to be sure this is ok to do on my Nagios XI production server. I found the fix in this article: http://lonesysadmin.net/2013/02/22/erro ... ject-file/

So I added /usr/local/lib to /etc/ld.so.conf

after which apparently I could execute the plugin:

Code: Select all

ldconfig -p | grep localnano /etc/ld.so.confcatusr/local/bin/check_modbusnano
locate libmodbus.so.5/usr/local/bin/check_modbus
/usr/local/bin/check_modbus: Could not parse arguments
Check ModBus version 0.46
Build date: 06.08.2014

-v  --verbose       Print additional (debug) information (settings, modbus debug etc).
                    Specify multiple times to increase verbosity level.
-h  --help          Print this help
-H  --ip=           IP address or hostname
-p  --port=         [ TCP Port number. Default 502 ]
-S  --serial=       Serial port to use
-b  --serial_bps=   [ Serial port speed. Default 9600 ]
    --serial_mode=  [ RS mode of serial port. Default 0 ]
                            0 - RS232
                            1 - RS485
    --serial_parity=  [ Serial port parity settings. Default none ]
                            Allowed values: none/N, even/E, odd/O
    --serial_data_bits=  [ Serial port number of data bits. Default 8 ]
                            Allowed values: 5, 6, 7, 8
    --serial_stop_bits=  [ Serial port number of stop bits. Default 1 ]
                            Allowed values: 1, 2
--file=             use binary dump file as input source 
-d  --device=       [ Device modbus number. Default 1 ]
-a  --address=      [ Register/bit address reference. Default 1 ]
-t  --try=          [ Number of tries. Default 1 ]
-F  --format=       [ Data format. Default 1 ]
                        1 -  int16_t 
                        2 - uint16_t 
                        3 -  int32_t 
                        4 - uint32_t 
                        5 -  int64_t 
                        6 - uint64_t 
                        7 -  float   
                        8 -  double  
-s  --swapbytes     [ Swap bytes in each incomming word ]
-i  --inverse       [ Use inversed words order ]
-f  --function=     Number of functions
                        1 - Read coils
                        2 - Read input discretes
                        3 - Read multiple registers
                        4 - Read input registers
-w  --warning=      [ Warning range ]
-c  --critical=     [ Critical range ]
-n  --null          [ If the query will get zero, return the critical signal ]
-N  --not_null      [ If the query will get no zero, return the critical signal ]

-m  --perf_min=     [ Minimum value for performance data]
-M  --perf_max=     [ Maximum value for performance data]
-P  --perf_data     [ Enable to show performance data. By default performance data is disabled]
-L  --perf_label=   [ Label for performance data]

--dump              [ Dump register and bits values instead of analize their values ]
--dump_size=        [ Number of registers/bits in output dump ]
--dump_format=      [ Format of dump output. Default 1]
                        1 - binary
                        2 - hex
                        3 - decimal
--dump_file=        [ Output dump file ]

--lock_file_in =    [ Lock file for input operation (access to dump file or serial device ]
--lock_file_out =   [ Lock file for output operations (for example to access dump file) ]

 Examples:
          ./check_modbus --ip=192.168.1.123 -d 1 -a 13 -f 4 -w 123.4 -c 234.5
          ./check_modbus --ip=192.168.1.123 -d 1 -a 15 -f 4 -w 2345 -c 1234
          ./check_modbus --ip=plc01 --try=5 -d 2 -a 20 -f 2 -n
          ./check_modbus --ip=plc01 --try=5 -d 2 -a 1 -f 4 --dump --dump_format 1 --dump_size 20
          ./check_modbus --file=file.dump -F 7 -f 4 -a 20 -w 100
          ./check_modbus --serial=/dev/ttyS0 -d 2 -a 7 -f 4 -n
It just doesn't feel right. Is there a cleaner way to make it work? Maybe I should make libmodbus also install to a different directory? How should I do this? And to which directory?

Grtz

Willem
Nagios XI 5.8.1
https://outsideit.net
tmcdonald
Posts: 9117
Joined: Mon Sep 23, 2013 8:40 am

Re: check_modbus on Nagios XI installation issues

Post by tmcdonald »

We were working with the same version, except I already had that line in my ld.so.conf file ;) That's why I never saw the same issue as you when running it. I added that ages ago for an unrelated issue and I believe I might have even read the same article. And as it states, that solution is the "Absolutely Simple, Best Fix Ever" and hasn't caused me any issues. If anything, *slightly* more time could potentially be spent looking for shared libs when a dynamically-linked binary is run... Honestly I wouldn't worry about it.
Former Nagios employee
User avatar
WillemDH
Posts: 2320
Joined: Wed Mar 20, 2013 5:49 am
Location: Ghent
Contact:

Re: check_modbus on Nagios XI installation issues

Post by WillemDH »

trevor,

Got the plugin working. But having issues monitoring the Diris A40. The only documntation I have is http://www.socomec.be/documentation-diris-a40_en.html

Tried all kinds of combination of parameters. This Modbus over tcp seems pretty complex.. :?

Any chance there is someone at Nagios support with some knowledge of modbus or Siemens Diris A40?

Code: Select all

Check ModBus version 0.46
Build date: 07.08.2014

-v  --verbose       Print additional (debug) information (settings, modbus debu
                    Specify multiple times to increase verbosity level.
-h  --help          Print this help
-H  --ip=           IP address or hostname
-p  --port=         [ TCP Port number. Default 502 ]
-S  --serial=       Serial port to use
-b  --serial_bps=   [ Serial port speed. Default 9600 ]
    --serial_mode=  [ RS mode of serial port. Default 0 ]
                            0 - RS232
                            1 - RS485
    --serial_parity=  [ Serial port parity settings. Default none ]
                            Allowed values: none/N, even/E, odd/O
    --serial_data_bits=  [ Serial port number of data bits. Default 8 ]
                            Allowed values: 5, 6, 7, 8
    --serial_stop_bits=  [ Serial port number of stop bits. Default 1 ]
                            Allowed values: 1, 2
--file=             use binary dump file as input source
-d  --device=       [ Device modbus number. Default 1 ]
-a  --address=      [ Register/bit address reference. Default 1 ]
-t  --try=          [ Number of tries. Default 1 ]
-F  --format=       [ Data format. Default 1 ]
                        1 -  int16_t
                        2 - uint16_t
                        3 -  int32_t
                        4 - uint32_t
                        5 -  int64_t
                        6 - uint64_t
                        7 -  float
                        8 -  double
-s  --swapbytes     [ Swap bytes in each incomming word ]
-i  --inverse       [ Use inversed words order ]
-f  --function=     Number of functions
                        1 - Read coils
                        2 - Read input discretes
                        3 - Read multiple registers
                        4 - Read input registers
-w  --warning=      [ Warning range ]
-c  --critical=     [ Critical range ]
-n  --null          [ If the query will get zero, return the critical signal ]
-N  --not_null      [ If the query will get no zero, return the critical signal

-m  --perf_min=     [ Minimum value for performance data]
-M  --perf_max=     [ Maximum value for performance data]
-P  --perf_data     [ Enable to show performance data. By default performance ded]
-L  --perf_label=   [ Label for performance data]

--dump              [ Dump register and bits values instead of analize their va
--dump_size=        [ Number of registers/bits in output dump ]
--dump_format=      [ Format of dump output. Default 1]
                        1 - binary
                        2 - hex
                        3 - decimal
--dump_file=        [ Output dump file ]

--lock_file_in =    [ Lock file for input operation (access to dump file or ser
--lock_file_out =   [ Lock file for output operations (for example to access du

Examples:
          ./check_modbus --ip=192.168.1.123 -d 1 -a 13 -f 4 -w 123.4 -c 234.5
          ./check_modbus --ip=192.168.1.123 -d 1 -a 15 -f 4 -w 2345 -c 1234
          ./check_modbus --ip=plc01 --try=5 -d 2 -a 20 -f 2 -n
          ./check_modbus --ip=plc01 --try=5 -d 2 -a 1 -f 4 --dump --dump_formate 20
          ./check_modbus --file=file.dump -F 7 -f 4 -a 20 -w 100
          ./check_modbus --serial=/dev/ttyS0 -d 2 -a 7 -f 4 -n

Code: Select all

check_modbus --ip=10.10.10.10 - p 502 -a 51023 -f 4 -F 7 --serial_mode=1 -v -d 3
---------------------------------------------
Settings:
ip:          10.10.10.10
port:        502

verbosity:   1
device:      3
address:     51022
function:    4
tries:       1

inverse:     0
format:      7
swap bytes:  0

warning:     0.000000
critical:    0.000000
null:        0
not null:    0

perf_data:   0
perf_label:  NULL
perf_min:    0.000000
perf_max:    0.000000

dump:        0
dump_format: 0
dump_size:   0
dump_file :  stdout

lock_file_in :NULL
lock_file_out:NULL
---------------------------------------------
process
init_connection
init_connection rc: 0
read_data
read_data rc: 8
Read failed: Connection timed out
process rc: 8

Code: Select all

check_modbus --ip=10.10.10.10 - p 502 -a C750 -f 4 -F 7 --serial_mode=1 -v -d 3
---------------------------------------------
Settings:
ip:          10.10.10.10
port:        502

verbosity:   1
device:      3
address:     -1
function:    4
tries:       1

inverse:     0
format:      7
swap bytes:  0

warning:     0.000000
critical:    0.000000
null:        0
not null:    0

perf_data:   0
perf_label:  NULL
perf_min:    0.000000
perf_max:    0.000000

dump:        0
dump_format: 0
dump_size:   0
dump_file :  stdout

lock_file_in :NULL
lock_file_out:NULL
---------------------------------------------
process
init_connection
init_connection rc: 0
read_data
read_data rc: 8
Read failed: Illegal data address
process rc: 8
So when using deciamls, I get a timeout, when using hexadecimal, I get Illega data address. Whe o why can't this crappy device not just use snmp like everyone else?

Grtz

Willem
Nagios XI 5.8.1
https://outsideit.net
tmcdonald
Posts: 9117
Joined: Mon Sep 23, 2013 8:40 am

Re: check_modbus on Nagios XI installation issues

Post by tmcdonald »

Page 11 of this doc:

http://www.socomec.be/webdav/site/Socom ... _RS485.pdf

shows that 51023 (C74F) is not a listed address, but 51024 (C750) is. What address/description are you looking for? It looks like you mixed up the hex/decimal values. Try it with 51024 and see what you get. Also maybe bump up the verbose output with -vvvv.
Former Nagios employee
Locked