RedHat OpenshiftにZabbix 2.4をインストールします

最近、予算が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 #DBSchema=zabbix DBUser=zabbix DBPassword=<> DBSocket=/var/lib/openshift/$OPENSHIFT_APP_UUID/mysql/socket/mysql.sock ]\>vi /var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/etc/zabbix_agentd.conf PidFile=/tmp/zabbix_agentd.pid LogFile=/tmp/zabbix_agentd.log LogFileSize=5 DebugLevel=3 Server=127.13.151.129 ServerActive=127.13.151.129:30051 ListenPort=30050 ListenIP=127.13.151.129 StartAgents=3 Hostname=Zabbix server
      
      





実行して確認します:



 /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 #24 started [escalator #1] 82321:20150904:153339.334 server #25 started [proxy poller #1] 82323:20150904:153339.335 server #26 started [self-monitoring #1] [zabbix-chinacoolhacker.rhcloud.com zabbix]\> tail -2 /tmp/zabbix_agentd.log 111422:20150904:154248.644 agent #4 started [listener #3] 111423:20150904:154248.644 agent #5 started [active checks #1]
      
      





実行可能コードは機能し、フロントエンドに移動できます。



次に、組み込みのオープンシフト機能を使用することにしました-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 #!/bin/bash ### config pidof_prog="/sbin/pidof" ### zabbix_agentd_prog=/var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/sbin/zabbix_agentd zabbix_agentd_conf=/var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/etc/zabbix_agentd.conf zabbix_server_prog=/var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/sbin/zabbix_server zabbix_server_conf=/var/lib/openshift/$OPENSHIFT_APP_UUID/app-root/data/zabbix/etc/zabbix_server.conf ### agentstatlog=/tmp/status/agentstat.log serverstatlog=/tmp/status/serverstat.log ### ### server lifekeeper ### serverststat=`$pidof_prog $zabbix_server_prog` if [ "$serverststat" ] then echo "`date` : server pids: $serverststat" >> $serverstatlog; else echo "restarting server at `date`" >> $serverstatlog; $zabbix_server_prog -c $zabbix_server_conf; sleep 3 echo "`date` SERVER started with pids: `$pidof_prog $zabbix_server_prog` " >> $serverstatlog; fi ### agent lifekeeper ### agentstat=`$pidof_prog $zabbix_agentd_prog` if [ "$agentstat" ] then echo "`date` : agent pids: $agentstat" >> $agentstatlog; else echo "restarting agent at `date`" >> $agentstatlog; $zabbix_agentd_prog -c $zabbix_agentd_conf; sleep 3 echo "`date` agent started with pids: `$pidof_prog $zabbix_agentd_prog` " >> $agentstatlog; fi # ]\> vi daily/zabbix.sh #!/bin/bash cp /tmp/status/agentstat.log /tmp/status/agentstat.log.`date +%Y-%m-%d` && echo '' > /tmp/status/agentstat.log cp /tmp/status/serverstat.log /tmp/status/serverstat.log.`date +%Y-%m-%d` && echo '' > /tmp/status/serverstat.log find /tmp/status/ -mtime +7 -exec rm {} \;
      
      





システムにzabbixプロセスが存在しない場合、クラウンで自動的に開始されます。



PS

このインストールは、OpenShiftサーバーに直接インストールされたエージェントから実行されるUserParamaterに基づくWebシナリオおよびカスタムチェックに適しています。

Disenが正しく指摘したように、セキュリティ上の理由から、サーバーのzabbix-agentポートをインターネット公開することはお勧めしません



All Articles