これらの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