Ubuntu15.04へのzabbix2.4.5のインストール

Ubuntu15.04へzabbixをapt-getでインストールしようとしたところ、2.2.7がインストールされたので、オフィシャルサイトで配布しているdebパッケージを用いてインストールしました。

目的

  • Zabbix2.4.xをインストール
  • メール送信はgmailを利用
  • ウェブサーバはApache
  • 手順の使いまわしの為に、スクリプトベースの手順にする

前提条件

  • Ubuntu15.04のインストール直後を想定
  • sshでのログインが可能なこと

参考サイト

事前準備

Ubuntu15.04をインストールした直後を想定しているので、下記を実施します。インターフェースは1つだけである想定で、interfacesファイルをバックアップした上で上書きしてしいるので、環境にあっていない場合には、適宜手動で編集してください。

  • IPアドレスの固定化(ウェブサーバが動的IPだと困るので)
  • パッケージの最新化
  • IPv6の無効化
  • sshdのDNSの逆引きを無効にする
sudo apt-get update
sudo apt-get upgrade

export MY_IP=172.20.1.252
export MY_NETWORK=`echo $MY_IP | sed -e "s/[0-9]*$/0/g"`
export MY_GATEWAY=`echo $MY_IP | sed -e "s/[0-9]*$/1/g"`
export MY_BROADCAST=`echo $MY_IP | sed -e "s/[0-9]*$/255/g"`
export MY_NETMASK=255.255.255.0
export MY_NAMESERVERS=172.20.1.1

# interfacesの設定
sudo cp /etc/network/interfaces /etc/network/interfaces.bak

# ヒアドキュメント使っているので、次の_EOF_まで、まとめてコピペ実行すること
sudo tee /etc/network/interfaces <<_EOF_ > /dev/null
auto lo
  iface lo inet loopback

auto eth0
  iface eth0 inet static
  address $MY_IP
  netmask $MY_NETMASK
  network $MY_NETWORK
  broadcast $MY_BROADCAST
  gateway $MY_GATEWAY
  dns-nameservers $MY_NAMESERVERS
_EOF_

sudo su -
echo "UseDNS no" >> /etc/ssh/sshd_config
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf

reboot

 

必要なパッケージを事前にまとめてインストールする

Mysqlのインストール時にrootのパスワードを求められたらお好きなパスワードを設定してください。dbconfig-commonインストール時に自動設定をするかと聞かれたら、右側のしないを選んでください。

sudo apt-get install mysql-server mysql-client \
  libmysqlclient-dev apache2 libapache2-mod-php5 php5-mysqlnd dbconfig-common

cd /tmp
wget http://repo.zabbix.com/zabbix/2.4/ubuntu/pool/main/z/zabbix/zabbix-frontend-php_2.4.5-1+trusty_all.deb
wget http://repo.zabbix.com/zabbix/2.4/ubuntu/pool/main/z/zabbix/zabbix-agent_2.4.5-1+trusty_amd64.deb
wget http://repo.zabbix.com/zabbix/2.4/ubuntu/pool/main/z/zabbix/zabbix-server-mysql_2.4.5-1+trusty_amd64.deb

sudo dpkg -i zabbix-*.deb

# 必要に応じて、上記でダウンロードしたファイルを削除してください。

MySQLのロケールを変更してredmine用のDBを作る

Ubuntu15.04のMySQLは、それ以前のものと設定ファイルが異なっています。具体的には、今までは/etc/mysql/my.cnfを設定していましたが、/etc/mysql/my.cnfはただのインクルードのみになり、その中身は/etc/mysql/mysql.conf.d/mysqld.cnfに移っています。

# 下記のMYSQL_ROOT_PASSはMySQLインストール時に
# 設定したパスワードに置き換えてください。
export ZABBIX_DB_PASS=`openssl rand -hex 10`
export MYSQL_ROOT_PASS=mysqlpass

sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak
sudo sed -i "s/\[client\]/[client]\ndefault-character-set=utf8/g" \
  /etc/mysql/mysql.conf.d/mysqld.cnf
sudo sed -i "s/\[mysqld\]/[mysqld]\ncharacter-set-server=utf8/g" \
  /etc/mysql/mysql.conf.d/mysqld.cnf
sudo service mysql restart

# utf8になっている事を確認する。
mysql -uroot -p$MYSQL_ROOT_PASS \
  -e "show variables like 'character_set%';"
# +--------------------------+----------------------------+
# | Variable_name            | Value                      |
# +--------------------------+----------------------------+
# | character_set_client     | utf8                       |
# | character_set_connection | utf8                       |
# | character_set_database   | utf8                       |
# | character_set_filesystem | binary                     |
# | character_set_results    | utf8                       |
# | character_set_server     | utf8                       |
# | character_set_system     | utf8                       |
# | character_sets_dir       | /usr/share/mysql/charsets/ |
# +--------------------------+----------------------------+

# zabbix用のDB作成と権限付与
mysql -uroot -p$MYSQL_ROOT_PASS -e "drop database if exists zabbix;"
mysql -uroot -p$MYSQL_ROOT_PASS -e "CREATE DATABASE zabbix character set utf8;"
mysql -uroot -p$MYSQL_ROOT_PASS -e "grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '$ZABBIX_DB_PASS'"
mysql -uroot -p$MYSQL_ROOT_PASS -e "flush privileges"
mysql -uzabbix -p$ZABBIX_DB_PASS -e "show databases"

# 下記の警告が出るが、DB自体の作成は出来ているので、無視して。
# Warning: Using a password on the command line interface can be insecure.

# MySQLのセキュリティ設定を行う。
# 具体的には、rootのパスワード設定とゲストアカウントの無効化、
# それと、リモートからのrootログインの無効化。
# 最初は、mysqlをインストールした時と同じパスワードを回答し、
# それ以降はEnterキーを4回押すのみ。
sudo mysql_secure_installation

# zabbix用のデータをDBに投入する。
cd /usr/share/zabbix-server-mysql/
mysql -uzabbix -p$ZABBIX_DB_PASS zabbix < schema.sql
mysql -uzabbix -p$ZABBIX_DB_PASS zabbix < images.sql
mysql -uzabbix -p$ZABBIX_DB_PASS zabbix < data.sql

zabbix-serverのセットアップ

zabbix_server.confにDBに接続する為のユーザー名、パスワード、データベース名を設定します。最後に、echo $ZABBIX_DB_PASSしているのは、その後のzabbixのweb画面から、初期設定をする際に必要なので表示させています。

sudo sed -i "s/^DBUser=/DBUser=zabbix/g" /etc/zabbix/zabbix_server.conf
sudo sed -i "s/^DBPassword=/DBPassword=$ZABBIX_DB_PASS/g" /etc/zabbix/zabbix_server.conf
sudo sed -i "s/^DBName=/DBName=zabbix/g" /etc/zabbix/zabbix_server.conf

sudo service zabbix-server  restart

Gmail経由での日本語メール送信セットアップ

下記の通り、日本語メール送信の為のスクリプトをダウンロードします。後は、TLS必須のSMTPサーバーを使ってアラートメール送信を参考に、gmailのパラメータを書き換えてください。この手順はメール送信にローカルのメールサーバを利用する場合にはスキップしても構いません。

cd /tmp
wget https://raw.githubusercontent.com/zabbix-jp/plugins/master/notification/sendmessage-smtp-php/sendmessage_smtp_php.sh
sudo mv sendmessage_smtp_php.sh /usr/share/zabbix/
sudo chmod 755 /usr/share/zabbix/sendmessage_smtp_php.sh
sudo vi /usr/share/zabbix/sendmessage_smtp_php.sh

Apacheとphpのセットアップ

phpのパラメータを幾つか修正しないと、zabbixの初期セットアップでパラメータが間違っていると警告が出るので、事前に設定しておきます。

Apacheはバーチャルホストでzabbixをホスティングするように設定しておきます。

sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak
sudo sed -i "s/^post_max_size =.*/post_max_size = 16M/g" /etc/php5/apache2/php.ini
sudo sed -i "s/^max_execution_time =.*/max_execution_time = 300/g" /etc/php5/apache2/php.ini
sudo sed -i "s/^max_input_time =.*/max_input_time = 300/g" /etc/php5/apache2/php.ini
sudo sed -i "s/^max_execution_time =.*/max_execution_time = 300/g" /etc/php5/apache2/php.ini

sudo sed -i 's/;date.timezone =/date.timezone = "Asia\/Tokyo"/g' /etc/php5/apache2/php.ini
sudo sed -i 's/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/g' /etc/php5/apache2/php.ini

# ここで、VirtualHostに設定するホスト名(FQDN)を組み立てています。
# 面倒だったら、export MY_FQDN="my.zabbix.local"のように、
# ダイレクトに指定してしまってください。
export MY_HOSTNAME=`hostname`
export MY_FQDN="zabbix.$MY_HOSTNAME.local"
 
# zabbix用のバーチャルホストを追加する。
# sites-availableに設定を入れて、sites-enableに有効にする設定へのシンボリックリンクを張る
sudo tee /etc/apache2/sites-available/$MY_FQDN.conf  <<_EOF_ > /dev/null
   <VirtualHost *:80>
      ServerName $MY_FQDN
      DocumentRoot /usr/share/zabbix/
      <Directory /usr/share/zabbix/>
         AllowOverride all
         Options -MultiViews
         Require all granted
      </Directory>
   </VirtualHost>
_EOF_
 
sudo ln -s /etc/apache2/sites-available/$MY_FQDN.conf /etc/apache2/sites-enabled/$MY_FQDN.conf

sudo service apache2 restart

echo "下記のURLにブラウザでアクセスする"
echo "http://$MY_FQDN/"

# zabbixセットアップで使う。
echo $ZABBIX_DB_PASS

zabbixの初期セットアップ~日本語化

上記で出力したURLにブラウザでアクセスします。hostsを書いておかないと、アクセスできないと思うので、適宜、hostsを書いてください。windowsならC:\Windows\System32\drivers\etc\hostsです。

zabbix2.410

初期画面は、Nextを押すだけ。

zabbix2.411

各種設定値に問題が無い事を確認し、Nextを押す。

zabbix2.412

DBの接続情報を入れる。URLをechoで出力した後に、DBのパスワードも出力していたので、その文字列をコピペしてください。次に、Test Connectionを押して、問題なければ、Nextが押せるようになります。

zabbix2.413

DB接続テストが問題なく出来たら、Nextを押す。

zabbix2.414

zabbix serverについての設定値を入れて、Nextを押す。

zabbix2.415

インストール情報のサマリなので、問題なければNextを押す。

zabbix2.416

最後に、Finishを押すと、インストール完了。

zabbix2.417

ログイン画面に遷移するので、初期パスワードadmin/zabbixを指定してログインする。

zabbix2.418

このままだと、日本語化されていないので、画面右上のProfileを押して、日本語化しましょう。

zabbix2.419

パスワードの行をクリックすると、パスワードを更新可能です。その下のLanguageでJapanese(ja_JP)を選択する事で、zabbixの日本語化も出来ます。最後に、Updateを押すのを忘れずに。

zabbix2.420

日本語化された画面。

zabbixでのgmail経由でのメール送信

zabbix2.421

管理>メディアタイプ>メディアタイプの作成を選びます。

zabbix2.422

上記のように、sendmessage_smtp_php.shと、名前、スクリプト名に入れて、追加を押します。

zabbix2.423

新しいメディアタイプを作成したら、使っていない物に関しては、無効化しておきましょう。

zabbix2.424

無効化の確認画面。OKを押します。

zabbix2.425

管理>ユーザー>対象ユーザーを選択します。

zabbix2.426

対象ユーザーのメディアタブを選択。

zabbix2.427

追加を選択して、先ほど追加したsendmessage_smtp_php.shを指定する。

zabbix2.428

送信先には、メール送信したいメールアドレスを記入。

zabbix2.429

メールの情報が登録出来たら、最後に忘れずに更新を押します。

最後に

ここまでで、zabbix2.4.xの初期セットアップが完了です。後は、オフィシャルサイトのドキュメントを参照して、必要な設定を行ってください。

タグ , , . ブックマークする パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください