目次

概要

前提

組み込み用Linuxディストリビューション「MontaVista Linux」で動作するZabbix Agentのコンパイル手順。
構築用の実機として、玄人志向の「玄箱HG」を使用する。

環境

Hardware玄箱HG
CPUPowerQUICC II / MPC82xx / rev.16.20 (pvr 8081 1014)
OSMontaVista Linux / Linux version 2.4.17_mvl21
ZABBIXzabbix-3.0.28

導入手順

環境準備

初期状態では開発環境が組み込まれていないため、玄箱付属のCD-ROMからコンパイル済みのバイナリをシステムに組み込む必要がある。

  • 1. 玄箱付属のCD-ROMの「binary」配下を/mnt/share以下にコピーする
  • 2. コピーしたバイナリを展開する(全てが必要という訳ではないが、細かいトラブルを避けるため全て展開する)
    cd /mnt/share/binary

    tar xfvz gcc-2.95.3.tar.gz -C /
    tar xfvz make-3.79.1.tar.gz -C /
    tar xfvz glibc-2.2.3.tar.gz -C /
    tar xfvz ntp-4.0.99g.tar.gz -C /
    tar xfvz g++-2.95.3.tar.gz -C /
    tar xfvz autoconf-2.13.tar.gz -C /
    tar xfvz automake-1.4p4.tar.gz -C /
    tar xfvz binutils-2.10.91.0.2.tar.gz  -C /
    tar xfvz bison-1.28.tar.gz  -C /
    tar xfvz bzip2-1.0.2.tar.gz -C /
    tar xfvz diff-2.7.tar.gz  -C /
    tar xfvz flex-2.5.4.tar.gz -C /
    tar xfvz gdb-5.1.tar.gz -C /
    tar xfvz gettext-0.10.35.tar.gz -C /
    tar xfvz libgdbm-1.7.3.tar.gz -C /
    tar xfvz libstdc++2.10-2.95.3.tar.gz -C /
    tar xfvz m4-1.4.tar.gz -C /
    tar xfvz patch-2.5.4.tar.gz -C /
    tar xfvz perl-5.6.1.tar.gz -C /
    tar xfvz python-2.0.tar.gz -C /
    tar xfvz textutils-2.0.tar.gz -C /

ユーザ作成

エージェントプログラムを稼動させる専用のユーザを作成する。

groupadd -g 300 zabbix
useradd -u 300 -g zabbix -d /usr/local/zabbix -s /sbin/nologin zabbix

ディレクトリ作成

デーモンを動作させる上で必要なディレクトリを作成する。

mkdir /var/log/zabbix
chown -fR zabbix.zabbix /var/log/zabbix

コンパイル

Zabbixのソースコードは、configure内にエージェントのソースコードも格納されているため、これをコンパイルして使用する。

tar zabbix-3.0.28.tar.gz
cd zabbix-3.0.28

configureオプションでエージェントのコンパイルのみを指定する。
インストール先は/usr/local/zabbixとし、バージョンを変更する際に容易に切り替えができる構造を作るための仕込みを行う。

./configure  --enable-agent --prefix=/usr/local/zabbix
make
make install

make install後、/usr/local/zabbix配下に以下の様なファイルが配置される。

  • bin:
    zabbix_get
    zabbix_sender
  • etc:
    zabbix_agentd.conf
    zabbix_agentd.conf.d
  • sbin:
    zabbix_agentd
  • share:
    man

ログ保管用ディレクトリを作成する。

mkdir /usr/local/zabbix/log
chown zabbix.zabbix /usr/local/zabbix/log

サービス登録

systemd向けの設定は同梱されていないため、適当な起動ファイルを参考に作成する。

  • zabbix_agentd.init
    #! /bin/sh
    #
    # chkconfig: 2345 23 23
    #
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/zabbix/bin:/usr/local/zabbix/sbin
    
    FLAGS="defaults 10050"
    
    test -f /usr/local/zabbix/sbin/zabbix_agentd || exit 0
    
    case "$1" in
           start)
                   echo -n "Starting Zabbix Agent : zabbix_agentd"
                   start-stop-daemon --start --quiet --exec /usr/local/zabbix/sbin/zabbix_agentd
                   echo "."
                   ;;
           stop)
                   echo -n "Stopping Zabbix Agent : zabbix_agentd"
                   start-stop-daemon --stop --quiet --exec /usr/local/zabbix/sbin/zabbix_agentd 
                   echo "."
                   ;;
           restart|force-reload)
                   echo -n "Restarting Zabbix Agent : zabbix_agentd... "
                   start-stop-daemon --stop --quiet --exec /usr/local/zabbix/sbin/zabbix_agentd
                   sleep 2
                   start-stop-daemon --start --quiet --exec /usr/local/zabbix/sbin/zabbix_agentd
                   echo "done."
                   ;;
           *)
                   echo "Usage: /etc/init.d/zabbix_agentd {start|stop|restart|force-reload}"
                   exit 1
                   ;;
    esac
    
    exit 0

設定

Zabbix Agentの動作を設定する。

  • /usr/local/zabbix/etc/zabbix_agentd.conf(差分のみ)
    LogFile=/usr/local/zabbix/log/zabbix_agentd.log
    EnableRemoteCommands=1
    Server=127.0.0.1,[Zabbix Server IP]
    ServerActive=[Zabbix Server IP]
    HostnameItem=system.hostname

起動

エージェントを起動する。

./zabbix_agentd.init

自動起動する場合には、起動スクリプトを/etc/init.d配下に保存して以下の手順を行う。

  • 1. file確認
    file /etc/init.d/zabbix_agentd 
    /etc/init.d/zabbix_agentd: Bourne shell script text executable
  • 2. リンクの作成
    cd /etc/cd rc.d/rc2.d/
    ln -s ../init.d/zabbix_agentd S98zabbix_agentd

問題

サービスの再起動が出来ない問題

未解決な問題として、起動したzabbix_agentdを停止すると、OSを再起動するまで起動することが出来なくなる問題を確認している。
サービスの停止を行うと以下の様なメッセージがログに出力され、以後起動しなくなる。

  • /usr/local/zabbix/log/zabbix_agentd.log
      219:20190706:230523.489 Got signal [signal:15(SIGTERM),sender_pid:223,sender_uid:0,reason:0]. Exiting ...
      214:20190706:230523.492 One child process died (PID:219,exitcode/signal:1). Exiting ...
      zabbix_agentd [214]: Error waiting for process with PID 219: [10] No child processes
      214:20190706:230523.505 Zabbix Agent stopped. Zabbix 3.0.28 (revision 0867a35b15).
      214:20190706:230523.505 Got signal [signal:11(SIGSEGV),reason:196609,refaddr:(nil)]. Crashing ...
      214:20190706:230523.506 ====== Fatal information: ======
      214:20190706:230523.506 program counter not available for this architecture
      214:20190706:230523.507 === Registers: ===
      214:20190706:230523.507 register dump not available for this architecture
      214:20190706:230523.508 === Backtrace: ===
      214:20190706:230523.510 17: /usr/local/zabbix/sbin/zabbix_agentd(zbx_backtrace+0x48) [0x1002dfb8]
      214:20190706:230523.510 16: /usr/local/zabbix/sbin/zabbix_agentd(print_fatal_info+0x6c) [0x1002e120]
      214:20190706:230523.511 15: /usr/local/zabbix/sbin/zabbix_agentd(print_fatal_info+0x218) [0x1002e2cc]
      214:20190706:230523.511 14: /lib/libpthread.so.0(pthread_kill+0x2f4) [0xfd62e3c]
      214:20190706:230523.512 13: [0x7fffe8ac]
      214:20190706:230523.512 12: [0x300191f0]
      214:20190706:230523.513 11: /usr/local/zabbix/sbin/zabbix_agentd(zbx_mutex_destroy+0x4c) [0x1002ce0c]
      214:20190706:230523.513 10: /usr/local/zabbix/sbin/zabbix_agentd(zabbix_close_log+0x3c) [0x10027e18]
      214:20190706:230523.513 9: /usr/local/zabbix/sbin/zabbix_agentd(zbx_free_service_resources+0x140) [0x100149d0]
      214:20190706:230523.514 8: /usr/local/zabbix/sbin/zabbix_agentd(zbx_on_exit+0x24) [0x10014a18]
      214:20190706:230523.514 7: /usr/local/zabbix/sbin/zabbix_agentd(print_fatal_info+0x5a0) [0x1002e654]
      214:20190706:230523.515 6: /lib/libpthread.so.0(pthread_kill+0x2f4) [0xfd62e3c]
      214:20190706:230523.515 5: [0x7fffee98]
      214:20190706:230523.516 4: [0x100691f0]
      214:20190706:230523.516 3: /usr/local/zabbix/sbin/zabbix_agentd(MAIN_ZABBIX_ENTRY+0x35c) [0x10014804]
      214:20190706:230523.517 2: /usr/local/zabbix/sbin/zabbix_agentd(daemon_start+0x2c4) [0x1002d81c]
      214:20190706:230523.517 1: /usr/local/zabbix/sbin/zabbix_agentd(main+0x1dc) [0x10014c00]
      214:20190706:230523.517 0: /lib/libc.so.6(__libc_start_main+0x160) [0xfdba3a8]
      214:20190706:230523.518 === Memory map: ===
      214:20190706:230523.519 0fd2d000-0fd38000 r-xp 00000000 03:01 147880     /lib/libnss_files-2.2.3.so
      214:20190706:230523.519 0fd38000-0fd3d000 ---p 0000b000 03:01 147880     /lib/libnss_files-2.2.3.so
      214:20190706:230523.520 0fd3d000-0fd48000 rwxp 00000000 03:01 147880     /lib/libnss_files-2.2.3.so
      214:20190706:230523.520 0fd58000-0fd68000 r-xp 00000000 03:01 147885     /lib/libpthread-0.9.so
      214:20190706:230523.521 0fd68000-0fd7f000 rwxp 00000000 03:01 147885     /lib/libpthread-0.9.so
      214:20190706:230523.521 0fd7f000-0fd80000 rwxp 00000000 00:00 0
      214:20190706:230523.522 0fd90000-0fea1000 r-xp 00000000 03:01 147875     /lib/libc-2.2.3.so
      214:20190706:230523.522 0fea1000-0feb0000 ---p 00111000 03:01 147875     /lib/libc-2.2.3.so
      214:20190706:230523.523 0feb0000-0fecb000 rwxp 00110000 03:01 147875     /lib/libc-2.2.3.so
      214:20190706:230523.523 0fecb000-0fed0000 rwxp 00000000 00:00 0
      214:20190706:230523.523 0fee0000-0feef000 r-xp 00000000 03:01 147886     /lib/libresolv-2.2.3.so
      214:20190706:230523.524 0feef000-0fef0000 ---p 0000f000 03:01 147886     /lib/libresolv-2.2.3.so
      214:20190706:230523.524 0fef0000-0ff00000 rwxp 00000000 03:01 147886     /lib/libresolv-2.2.3.so
      214:20190706:230523.525 0ff00000-0ff03000 rwxp 00000000 00:00 0
      214:20190706:230523.525 0ff13000-0ff1a000 r-xp 00000000 03:01 147887     /lib/librt-2.2.3.so
      214:20190706:230523.526 0ff1a000-0ff23000 ---p 00007000 03:01 147887     /lib/librt-2.2.3.so
      214:20190706:230523.527 0ff23000-0ff2a000 rwxp 00000000 03:01 147887     /lib/librt-2.2.3.so
      214:20190706:230523.527 0ff2a000-0ff35000 rwxp 00000000 00:00 0
      214:20190706:230523.528 0ff45000-0ff48000 r-xp 00000000 03:01 147877     /lib/libdl-2.2.3.so
      214:20190706:230523.528 0ff48000-0ff55000 ---p 00003000 03:01 147877     /lib/libdl-2.2.3.so
      214:20190706:230523.529 0ff55000-0ff58000 rwxp 00000000 03:01 147877     /lib/libdl-2.2.3.so
      214:20190706:230523.529 0ff68000-0ffa4000 r-xp 00000000 03:01 147506     /lib/libm-2.2.3.so
      214:20190706:230523.529 0ffa4000-0ffa8000 ---p 0003c000 03:01 147506     /lib/libm-2.2.3.so
      214:20190706:230523.530 0ffa8000-0fff0000 rwxp 00030000 03:01 147506     /lib/libm-2.2.3.so
      214:20190706:230523.530 10000000-10051000 r-xp 00000000 03:01 115305     /usr/local/zabbix/sbin/zabbix_agentd
      214:20190706:230523.531 10060000-10062000 rwxp 00050000 03:01 115305     /usr/local/zabbix/sbin/zabbix_agentd
      214:20190706:230523.531 10062000-1006a000 rwxp 00000000 00:00 0
      214:20190706:230523.532 30000000-30017000 r-xp 00000000 03:01 147869     /lib/ld-2.2.3.so
      214:20190706:230523.532 30017000-3001a000 rw-p 00000000 00:00 0
      214:20190706:230523.533 30026000-3002b000 rwxp 00016000 03:01 147869     /lib/ld-2.2.3.so
      214:20190706:230523.533 3002b000-3004f000 rw-s 00000000 00:05 0          /SYSV6c014311 (deleted)
      214:20190706:230523.534 7ffed000-80000000 rwxp fffee000 00:00 0
      214:20190706:230523.535 ================================

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-07-07 (日) 01:41:24 (134d)