【20回】Crystal Signal PiとZabbixで機器の稼働監視

今回やったこと

以前クリスタルシグナルパイの組み立て・ミドルウェアのインストールを行って、イルミネーションとしてしか使っていなかったので、パトランプとしても使えるようにしました。

ほとんどのサーバやネットワーク機器はSNMPで稼働情報を監視サーバに送信する機能がついています。
(※家庭用ネットワーク機器には無いものもあります)
それらの情報を取得監視して、障害が発生したらクリスタルシグナルパイを光らせるようにしました。

  1. クリスタルシグナルパイを新規インストール
  2. Zabbixのインストール
  3. アラート時の設定
  4. 動作テスト

クリスタルシグナルパイのインストール

以前(18回)でインストールしましたが、Raspbian OSのレポジトリが更新され、PHP5からPHP7がデフォルトバージョンになった為、通常にインストールできませんでした。
おそらく近日中に公式のインストールスクリプトが更新されると思いますが、現時点での方法を記載しておきます

事前にOSのアップデート

  • パッケージリストの更新
  • パッケージの更新
  • OSの更新
  • ラズベリーパイのファームウェアの更新
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo rpi-update

クリスタルシグナルパイのミドルウェアのインストール

インストール用スクリプトではPHP5をインストールしようとしますが、この記事の執筆時点ではPHP7.0に変更になっていました。
そのため、インストール用スクリプトではPHPがインストールされず、ブラウザでコントロールパネルを表示させるとPHPのソースコードが表示されてしまいました。
解決方法として手動でPHPをインストールし、インストール用スクリプトでフルインストールし直すと、正常に動作するようになりました。
おそらく一時的なものだと思いますが・・・・^^;(アップデートを待ってます♪)

$ curl -O https://raw.githubusercontent.com/infiniteloop-inc/crystal-signal/master/install.sh
$ sudo bash install.sh
$ sudo apt-get install php
$ sudo bash install.sh fullinstall

2017/12/13日メモ
既にこの不具合は修正されていました。
上記の1行目のみでインストールが可能です。
さらに、スマホ対応のCSSの要望を開発者に連絡した所、公式に対応していただけました。

Zabbixのインストール

Zabbixのインストールは色々悩まされました。が、結局以下の様な方法で無事にインストールできました

必要なパッケージのインストール

$ sudo apt-get install zabbix-server-mysql zabbix-frontend-php
$ sudo apt-get install zabbix-agent
$ sudo apt-get install php-mysql

データベースの作成

MySQL(MariaDB)にZabbix用のデータベースを作成します。

3行目の「パスワード」はご自身が設定したいパスワードに変更してください

$ sudo mysql -u root -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'パスワード';
mysql> exit

初期テーブルのインポート

作成したデータベースにZabbixの初期テーブルなどのデータをインポートします

$ cd /usr/share/zabbix-server-mysql
$ zcat schema.sql.gz | mysql -v -uzabbix -p zabbix
$ zcat images.sql.gz | mysql -v -uzabbix -p zabbix
$ zcat data.sql.gz | mysql -v -uzabbix -p zabbix

フロントエンドのPHPファイルを公開用ディレクトリにコピー

$ sudo mkdir /var/www/html/zabbix
$ sudo cp -arf /usr/share/zabbix/* /var/www/html/zabbix/
$ sudo chown -R www-data:www-data /var/www/html/zabbix/*

zabbix-serverの設定ファイル編集

$ sudo vi /etc/zabbix/zabbix_server.conf

以下の項目を編集

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=パスワード

zabbixサーバの再起動

$ sudo service zabbix-server restart

php.iniの編集

設定ファイルの編集

$ sudo vi /etc/php/7.0/apache2/php.ini

以下の項目を編集

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Tokyo

apacheの再起動

$ sudo ln -s /usr/share/doc/zabbix-frontend-php/examples/apache.conf /etc/apache2/conf-available/zabbix.conf
$ sudo a2enconf zabbix
$ sudo service apache2 restart

ブラウザからアクセスして設定

http://ホストネーム/zabbix/

にアクセスしてウィザードにそって設定します。
私の環境ではMySQLのパスワードだけ設定したものを入力するだけでほかはデフォルトで大丈夫でした。

設定ファイルの作成

ウィザードの最後に設定ファイルを作成するように促されます。
生成された設定ファイルをダウンロードして指定された場所(/var/www/html/zabbix/conf/)に作成します

ログイン確認

初期アカウントを使用してログインします。

初期ユーザ:Admin
初期パスワード:zabbix

アラート時の設定

監視対象機器にトラブルが発生したときにクリスタルシグナルパイが光るように設定していきます。

アラート時の発光スクリプト作成

$ sudo vi /var/lib/crystal-signal/scripts/alert.sh

スクリプトの内容

#!/bin/bash
/usr/bin/curl -s "http://picrystal.local/ctrl/?color=248,0,0&mode=2&repeat=20&period=530&json=0" > /dev/null

実行権限の付与

$ sudo chmod 755 /var/lib/crystal-signal/scripts/alert.sh

アクションの設定

ブラウザからZabbixの設定をします。

設定 → アクション から「アクションの作成」

  1. アクションの名前を入力
  2. アクションの実行条件の設定
    このあたりの条件はお好みに変更してください。
    Bの初期値は「トリガーの値 = 障害」でしたが、頻繁に発生してしまったので下図の様にしました。
  3. アクションの実行内容の設定

動作テスト

動作テストは、実際にzabbixに監視対象を追加し、対象端末にsnmp設定をしたあとで、監視対象機器の電源を落としてテストしました。

今回の作業についてあとがき

zabbixのインストールですが、最初apt-getでインストールしたところ、バージョン2.2がインストールされました。その時にはzabbix-serverとzabbix-agentが自動起動してくれない状況で、ソースパッケージからのインストールに変更したりなど試行錯誤していました。(何回もOSをインストールしなおしました^^;)

何度目かのOS再インストール後にクリスタルシグナルパイのコントロールパネルが正常に表示されなくなり、余計に混乱しました^^;
どうやら、作業している途中でパッケージリストが更新されたようで、zabbixも3.0.7がapt-getからインストールできるようになってました。

今回、色々やりすぎて抜けている作業項目があるかもしれませんm(_ _)m

参考サイト

コメント

タイトルとURLをコピーしました