目次~
#Contents
*概要 [#zdbebd39]
**前提 [#u4fa77d0]
組み込み用Linuxディストリビューション「MontaVista Linux」で動作するZabbix Agentのコンパイル手順。~
構築用の実機として、玄人志向の「玄箱HG」を使用する。~

**環境 [#d91ab439]
|Hardware|玄箱HG|
|CPU|PowerQUICC II / MPC82xx / rev.16.20 (pvr 8081 1014)|
|OS|MontaVista Linux / Linux version 2.4.17_mvl21|
|ZABBIX|zabbix-3.0.28|


*導入手順 [#vdba311d]
**環境準備 [#r2b518f2]
初期状態では開発環境が組み込まれていないため、玄箱付属の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 /

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

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

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

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

**コンパイル [#k1af3a09]
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

**サービス登録 [#jf01f674]
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

**設定 [#bd53c560]
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


**起動 [#a1221e20]
エージェントを起動する。

 ./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

*問題 [#cc0cde0e]
***サービスの再起動が出来ない問題 [#o08bf136]
未解決な問題として、起動した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
   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