最近、予算が0ルーブルの独自の「クラウド」監視サーバーが必要でした。 ソリューションとして、オープンシフトプラットフォームのzabbixが選択されました。 このオプションは、バックアップの基本的な監視、またはUserParameterを介したWebシナリオとカスタムスクリプトを使用した小さなポータルの監視に適しています。
建設的な批判を得るためなど、この実験をコミュニティと共有することにしました。
もちろん、最初のことは
openshiftに登録すること
です 。 Zabbixには、mysqlおよびcrontabカートリッジセットを備えたアプリケーションが必要です。 次のようになります。

「すぐにアプリケーションにログインしますか?」をクリックして、すぐにOpenShiftサーバーに接続することができます。 OpenShift
公開キーストアに公開ssh
キーを配置する必要があります。
公式サイトから最新バージョンのzabbixをダウンロードしてください。 OpenShiftサーバーで、zabbix実行可能ファイルをアセンブルするためのディレクトリを作成し、そこにソースを入力し、解凍してアセンブルします。
]\>mkdir -p /tmp/BUILD ; cd /tmp/BUILD ; wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.6/zabbix-2.4.6.tar.gz ; tar xf zabbix-2.4.6.tar.gz ; cd zabbix-2.4.6 ; > mkdir /var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix ]\>./configure --enable-server --enable-java --with-mysql --with-libcurl --enable-agent --with-ssh2 --prefix=/var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix ]\> make ]\> make install
サーバーとエージェントを構成して、OpenShift環境で動作するようにします。 ここで、構成ファイルの$ OPENSHIFT_APP_UUIDと$ OPENSHIFT_PHP_IPを対応するアプリケーションに置き換える必要があります。
]\> export | grep OPENSHIFT_PHP_IP declare -x OPENSHIFT_PHP_IP="127.13.151.129" ]\> export | grep OPENSHIFT_APP_UUID declare -x OPENSHIFT_APP_UUID="55e9bc400c1e66a589000029" ]\>vi /var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/etc/zabbix_server.conf ListenIP=$OPENSHIFT_PHP_IP ListenPort=30051 LogFile=/tmp/zabbix_server.log LogFileSize=5 DebugLevel=3 PidFile=/tmp/zabbix_server.pid DBHost=localhost DBName=zabbix
実行して確認します:
/var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/sbin/zabbix_server -c /var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/etc/zabbix_server.conf /var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/sbin/zabbix_agentd -c /var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/etc/zabbix_agentd.conf
ログを調べます。
[zabbix-chinacoolhacker.rhcloud.com zabbix]\> tail -3 /tmp/zabbix_server.log 82320:20150904:153339.334 server
実行可能コードは機能し、フロントエンドに移動できます。
次に、組み込みのオープンシフト機能を使用することにしました-gitでデプロイします。 サイトのローカルホスト「空白」に自分自身をクローンしました。
% git clone ssh://55e9bc400c1e66a589000029@zabbix-chinacoolhacker.rhcloud.com/~/git/zabbix.git/
設定を編集し、便利なGUIを使用して、zabbixフロントエンドを設定するための2つのオプションがあります。 両方のオプションは機能していますが、再起動すると、gitaに加えて加えられた変更が失われる危険性があります。そのため、configを使用してそれを行うのは難しくありません。 フロントエンドのコンテンツをzabbixアーカイブからコピーしました。 setup.phpを削除して、攻撃者がインストールを変更したり、必要に応じて構成を編集したりできないようにしました。
c@pentahon:~/ZABBIX/zabbix % rm -f setup.php c@pentahon:~/ZABBIX/zabbix % cd conf c@pentahon:~/ZABBIX/zabbix/conf % mv zabbix.conf.php.example zabbix.conf.php c@pentahon:~/ZABBIX/zabbix/conf % vi zabbix.conf.php // Zabbix GUI configuration file. global $DB; $DB["TYPE"] = 'MYSQL'; $DB["SERVER"] = 'localhost'; $DB["PORT"] = '0'; $DB["DATABASE"] = 'zabbix'; $DB["USER"] = 'zabbix'; $DB["PASSWORD"] = 'oDWp7akWrxWiMAIRCoYJ'; // Schema name. Used for IBM DB2 and PostgreSQL. $DB["SCHEMA"] = ''; $ZBX_SERVER = '127.13.151.129'; $ZBX_SERVER_PORT = '30051'; $ZBX_SERVER_NAME = 'Overseer'; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; ?>
サイトのルートに.htaccessを作成します。
c@pentahon:~/ZABBIX/zabbix/conf % cd .. c@pentahon:~/ZABBIX/zabbix % vi .htaccess php_value upload_max_filesize 20M php_value date.timezone Europe/Moscow php_value post_max_size 20M php_value max_execution_time 300 php_value max_input_time 300 php_value max_input_time 300 php_value mysql.default_socket "/var/lib/stickshift/$OPENSHIFT_APP_UUID/mysql-5.1/socket/mysql.sock"
Gitのすべて!
git add * git add .htaccess git commit -m "zabb" git push
プッシュが成功したら、Webインターフェースにアクセスできます(ログイン\パスワード-admin \ zabbix、変更することを忘れないでください!)そして、監視を設定します:

エージェントが機能し、メトリックが収集されるようにするには、IPとポートの設定を変更する必要があります。

次に、クラウンにいくつかのタスクを追加する必要があります-クラッシュの場合にサーバーとエージェントのアプリケーションを再起動します。 Crontabは/var/lib/openshift/55e9bc400c1e66a589000029/app-root/runtime/repo/.openshift/cronにあります。 ファイルを作成します。
mkdir /tmp/status ]\> vi minutely/zabbixwatchog.sh
システムにzabbixプロセスが存在しない場合、クラウンで自動的に開始されます。
PS
このインストールは、OpenShiftサーバーに直接インストールされたエージェントから実行されるUserParamaterに基づくWebシナリオおよびカスタムチェックに適しています。
Disenが正しく指摘したように、セキュリティ上の理由から、サーバーのzabbix-agentポートをインターネット
に公開することは
お勧めしません !