Zabbix 1.8の例に人間の顔をしたDebianパッケージ

私はこの記事を2つのことで書くことを余儀なくされました。まず、「 膝の上にdebian-packageを作成する 」などの記事の後、住民のほとんどは、debian-packageが変態のための変態によって発明されたと確信するだろうという感じがあります。 次に、zabbix 1.8がリリースされました。これは、ニュースから判断して、管理インターフェースの使いやすさの問題に最終的に取り組んだ素晴らしい監視システムです。



これらの2つのイベントを統合するのは、zabbix 1.8がまだubuntuリポジトリにないことであり、本番サーバー上のソースソースから何かをコンパイルしてインストールすることは、当然のことながら、価値のない紳士の仕事です。 一般に、debianパッケージの作成方法を示す理由があります。



さあ、始めましょう:)



apt-get install dh-make devscripts cdbs libmysqlclient-dev libcurl4-gnutls-dev

wget sunet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8/zabbix-1.8.tar.gz

tar zxvf zabbix-1.8.tar.gz

cd zabbix-1.8

dh_make --createorig









dh_makeから、作成するパッケージのタイプを尋ねられたら、「b」(cdbs)と答える必要があります。 その結果、すべての場合において、debianディレクトリに多数のファイルを含むテンプレートパッケージが作成されます(そのほとんどは後で削除します)。



パッケージの作成は、まだ少しのシャーマニズムと魔法です。 実際のところ、zabbixよりも単純なプログラムは、この段階でパッケージ化を完了することができます。 つまり ./configure && make installだけを実行してプログラムをインストールする必要がある場合は、すべて準備ができているので、アセンブルしてインストールできます。 Zabbixはもう少し複雑なオプションなので、さらにいくつかのステップがあります。







まず、debian /制御ファイルを開き、パッケージの作成者として自分自身を指定し、同時にzabbixのインストールでサーバーに来るパッケージをリストします。 これを行うには、「Depends」という行を見つけて、最後に「fping、adduser、apache2、php5、php5-mysql、php5-gd」を追加します。



通常、configureスクリプトはパラメーターなしで呼び出すことができ、実行可能な構成を生成しますが、zabbixの場合はそうではありません。サーバー部分とエージェントを別々のオプションでコンパイルできるようにする必要があります。 私たちの場合、これはdebian / rulesファイルで設定され、その最後に以下を追加します:

DEB_CONFIGURE_USER_FLAGS := --enable-server --with-mysql --with-libcurl









バイナリファイルは、ディレクトリ/ usr / binおよび/ usr / sbinに単独で配置され、phpインターフェイスと設定ファイルは手動で設定する必要があります。 これを行う最も簡単で視覚的な方法は、debian / installファイルを作成し、その中のすべてを次のように記述することです。

frontends/php/* usr/share/zabbix/

misc/conf/zabbix_server.conf etc/zabbix









さらに、通常の操作では、zabbixにはログファイルとロックを保存するディレクトリも必要です。 それらの作成も簡単です-debian / dirsファイルにリストしてください:

/var/log/zabbix-server

/var/run/zabbix-server









これで、スクリプト次第です。 zabbixソースには初期化スクリプト(misc / init.d / debian / zabbix-server)がありますが、ファイル処理なしでは機能しません。 したがって、debian / init(最終システムでは/etc/init.d/zabbix-magic)という名前で保存する必要があるubuntuのスクリプト( ここから )に置き換える方が良いでしょう。



logrotateを構成するには、構成を適切な場所に配置するだけです。

cat > debian/logrotate

/var/log/zabbix-server/zabbix_server.log {

daily

rotate 7

compress

missingok

notifempty

create 0640 zabbix zabbix

sharedscripts

}

^D









Webインターフェースを備えたパッケージ自体がapache configを設定する場合、非常に便利です。

mkdir misc/apache2-vhosts

cat > misc/apache2-vhosts/zabbix

<VirtualHost *>

ServerName zabbix.example.com

ServerAdmin admin@example.com



DocumentRoot /usr/share/zabbix



CustomLog /var/log/apache2/zabbix_access.log combined

ErrorLog /var/log/apache2/zabbix_error_log

</VirtualHost>

^D

echo "misc/apache2-vhosts/zabbix etc/apache2/sites-available" >> debian/install









まだまだあります。 誰かがzabbixユーザーを作成し、起動時にintスクリプトを登録し、権利を修正する必要があります。 これを行う最も簡単な方法は、ポストインストールスクリプトを使用することです。そのためには、テンプレートを取得する必要があります。

mv debian/postinst.ex debian/postinst

vim debian/postinst









「configure)」行の後、「;;」の前 以下を書いてください:

#

useradd zabbix || echo "User zabbix was not added"



#

chown zabbix:zabbix /var/log/zabbix-server /var/run/zabbix-server



# - -:

chown www-data /usr/share/zabbix/conf

chmod 775 /usr/share/zabbix/conf



# :

update-rc.d zabbix-server defaults



# :

a2ensite zabbix

invoke-rc.d apache2 reload









詳細は1つ残っています。標準のPHP設定では、Zabbixインターフェースは起動しないため、max_execution_timeといくつかのパラメーターを編集する必要があります。 ホームトレントダウンロードサーバー用のパッケージを準備している場合は、もちろん、php.iniを直接修正する方が簡単です。 ただし、これらの設定もパッケージに入れる方がイデオロギー的には正しいです。 次の方法で実行できます。



mkdir misc/php.conf

cat > misc/php.conf/zabbix.ini

post_max_size = 16M

max_execution_time = 300

mbstring.func_overload = 2

^D



echo "misc/php.conf/zabbix.ini etc/php5/conf.d" >> debian/install









ここで、必要なログおよびpidファイルへのパスがそこに示されるように、デフォルトの構成を修正する必要があります。



そして、一般に、それですべてです。 debuildコマンドを使用してパッケージをビルドし、dpkg -i <package.deb>およびapt-get install -fを使用してインストールできます。



Debianは、とりわけ、アプリケーションの移植に便利で思慮深い環境であることを実証できたと思います。 新しいパッケージの作成は、1つのインストールについて説明している場合でも、リポジトリにないプログラムをインストールする代わりになります。



トピックが興味深い場合、続行できます。 今回は多くのことが舞台裏に残されました-ヘルパースクリプトとは何ですか、CDBS、パッケージの依存関係をデバッグする方法、pbuilderが私のお気に入りのツールの1つである理由。



PSあなたがあなた自身のオープンソースプロジェクトを持っているなら、私はそのパッケージングを手伝うことができます、連絡してください。



PPS: この投稿をテーマ別のブログに転送してください。 カルマをありがとう! 自分自身を動かした:)



UPD ::私のブログの記事の若干更新されたバージョン: alexey.sveshnikov.ru/blog/2010/03/29/zabbix-debianization



All Articles