Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

zabbix_agent staticライブラリ化

ライブラリ静的化させて既存システムに入っているライブラリ郡を更新したく無い場合や、
バイナリをばら撒いて叩くだけで動かしたい場合など。

稼働しているアプリケーションのサポート条件として
インストールライブラリが指定されている場合などの時に
zabbix_agentを使いたい場合などに。

今回はzabbix_server側は
別サーバで既に"rpmインストール"している所からテストした。
今回の話からはzabbix_serverのインストール等についてはこちらに記載はしていないのでご了承を。

作成環境

CentOS 6系
Digital Oceanを使い新規で環境作成

Digital Oceanを真っ新から立ち上げて作業する場合は、
wgetなど含め無いのでyumでinstallが必要ですが
この辺りも記載はしていません。

作る

1.zabbixのソースを持ってくる

*2015/11/20現在 latestの2.4.7(移植記事なので日付がだいぶ前です)

# wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.7/zabbix-2.4.7.tar.gz

2.unarchiveする

# ls -l zabbix-2.4.7.tar.gz`
-rw-r--r-- 1 root root 15012768 Nov 12 05:42 zabbix-2.4.7.tar.gz
#
# tar zxvf zabbix-2.4.7.tar.gz
# cd zabbix-2.4.7

3.configureする

zabbixのオンラインマニュアルを見ると
static-link作成時は、--enable-static にしろと記載がある
またagentやsenderは --enable-agent を付けろとの事
その他のoptionは ./configure -h で確認可能である
実行後errorが出ていなければokであろう

# ./configure --enable-static --enable-agent

エラーが出た場合の対処例2つほど

失敗例1:この場合は大抵Cコンパイラが入ってないなど
# ./configure --enable-static --enable-agent
configure: error: in `/root/zabbix-2.4.7':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
対処:入ってない場合はgcc等をいれましょう
# yum install -y gcc
失敗例2:お前のシステムだとstatic linkの物を作れないと怒られる
# ./configure --enable-static --enable-agent
checking size of void *... 8
checking if static linking is possible... no
configure: error: static linking is not possible on this system
対処:static-link作成の際のライブラリ群をinstall
# yum install -y glibc-static

4. makeでビルド

error等でなければ大丈夫であろう

# make

5.インストールはせずにビルドしたものを確認する

以下の様にstaticになりライブラリが実行ファイルに同封されているようであれば、
入れたい環境に持っていき配置などする

# pwd
/zabbix-2.4.7
#
# file ./src/zabbix_agent/zabbix_agentd
./src/zabbix_agent/zabbix_agentd: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.18, not stripped
#
# ldd ./src/zabbix_agent/zabbix_agentd
not a dynamic executable

6.最後に起動の確認

zabbix-server(rpmインストール)がされているサーバ(CentOS6系)からagentが使えるかを確認する
今回は直接実行して使う事の動作確認
configのPATHはrpmインストールと同じPATHを使用
ちなみに、zabbix_agentdのオプション類はmanで確認可能
*configのPATHはconfigre時に指定できた気もする
*zabbix_agentd.confの中身は適宜設定を
*プロセスを起動するにあたり、zabbixユーザが必要

# ./zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
# ps -ef | grep agent
zabbix   13350     1  0 05:53 ?        00:00:00 ./zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix   13351 13350  0 05:53 ?        00:00:00 ./zabbix_agentd: collector [idle 1 sec]
zabbix   13352 13350  0 05:53 ?        00:00:00 ./zabbix_agentd: listener #1 [waiting for connection]
zabbix   13353 13350  0 05:53 ?        00:00:00 ./zabbix_agentd: listener #2 [waiting for connection]
zabbix   13354 13350  0 05:53 ?        00:00:00 ./zabbix_agentd: listener #3 [waiting for connection]
zabbix   13355 13350  0 05:53 ?        00:00:00 ./zabbix_agentd: active checks #1 [idle 1 sec]
root     13358 12720  0 05:53 pts/1    00:00:00 grep agent

その他

  • senderも同様にstatic化になっていると思いますのでご利用される方はどうぞ
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?