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です。
初期画面は、Nextを押すだけ。
各種設定値に問題が無い事を確認し、Nextを押す。
DBの接続情報を入れる。URLをechoで出力した後に、DBのパスワードも出力していたので、その文字列をコピペしてください。次に、Test Connectionを押して、問題なければ、Nextが押せるようになります。
DB接続テストが問題なく出来たら、Nextを押す。
zabbix serverについての設定値を入れて、Nextを押す。
インストール情報のサマリなので、問題なければNextを押す。
最後に、Finishを押すと、インストール完了。
ログイン画面に遷移するので、初期パスワードadmin/zabbixを指定してログインする。
このままだと、日本語化されていないので、画面右上のProfileを押して、日本語化しましょう。
パスワードの行をクリックすると、パスワードを更新可能です。その下のLanguageでJapanese(ja_JP)を選択する事で、zabbixの日本語化も出来ます。最後に、Updateを押すのを忘れずに。
日本語化された画面。
zabbixでのgmail経由でのメール送信
管理>メディアタイプ>メディアタイプの作成を選びます。
上記のように、sendmessage_smtp_php.shと、名前、スクリプト名に入れて、追加を押します。
新しいメディアタイプを作成したら、使っていない物に関しては、無効化しておきましょう。
無効化の確認画面。OKを押します。
管理>ユーザー>対象ユーザーを選択します。
対象ユーザーのメディアタブを選択。
追加を選択して、先ほど追加したsendmessage_smtp_php.shを指定する。
送信先には、メール送信したいメールアドレスを記入。
メールの情報が登録出来たら、最後に忘れずに更新を押します。
最後に
ここまでで、zabbix2.4.xの初期セットアップが完了です。後は、オフィシャルサイトのドキュメントを参照して、必要な設定を行ってください。