Zabbix 3.0をCentOS 7に最速インストールするシェルスクリプトを作った

Zabbix 3.0をCentOS 7に最速インストールするシェルスクリプトを作ったhosiiのメモ帳2016年2月16日、Zabbix 3.0がリリースされたので早速インストールしてみた。
無事インストールすることができたが、相変わらずインストール手順が煩雑で面倒である。

この手のソフトウェアは、インストール直後のLinuxにインストールしようとするとミドルウェアの設定やらDBの設定やらやることが多いので、これら手順を極力自動化するためのシェルスクリプトを書いてみた。

前提条件

・Zabbix 3.0のインストール先OSはCentOS 7.2
・OSのインストールイメージはMinimalバージョン(CentOS-7-x86_64-Minimal-1511.iso)
・OSからインターネットに接続できること

使い方

・install_zabbix.sh
Zabbix3.0および関連ミドルウェアをインストールするシェルスクリプト。
後述のソースコード中にパスワードやらのパラメータがあるので、実行前に自分の環境に合わせて変更する。
root権限のあるユーザで実行する。
エラー処理は特に入れていないので悪しからず。

・my.cnf
MariaDBのコンフィグファイル。デフォルのコンフィグファイルをスクリプト中で弄ると処理が複雑になるので、
ここだけ外出しにした。

install_zabbix.sh

コマンドをベタ書きにしたスクリプトなので、このまま手打ちで実行も可能。配置場所はどこにおいてもOK。
MariaDB、firewalld、systemctlをそれぞれMySQL、iptables、serviceに置き換えればCentOS6系でも動くはず。

・5行目:DB上のrootユーザのパスワード。自分の好きなものに設定。
・7行目:DB上のzabbixユーザのパスワード。自分の好きなものに設定。
・9行目:上書き用MariaDBの設定ファイルの場所を指定。このファイルでデフォルトの設定を上書く。

install_zabbix.sh

#!/bin/sh

### パラメータの設定
# MariaDBのrootユーザパスワード
db_pass='password'
# MariaDBのzabbixユーザパスワード
zabbix_pass='password'
# MariaDBの上書き用設定ファイル場所
my_cnf='/tmp/my.cnf'

### SELINUXの無効化
setenforce Permissive
sed -ie "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

### 必要なパッケージ類のインストール
yum -y install epel-release
yum -y install httpd php php-devel php-mysql php-xml php-mbstring php-mcrypt php-gd zlib-devel mariadb-devel mariadb-server libxml2 libxml2-devel net-snmp net-snmp-devel libcurl libcurl-devel firewalld

### phpのタイムゾーン設定
sed -ie 's|;date\.timezone =|date.timezone = Asia/Tokyo|' /etc/php.ini

### MariaDBの設定ファイルを置換
cp -p /etc/my.cnf /etc/my.cnf.bak_`date +%Y%m%d%H%M%S`
\cp /tmp/my.cnf /etc/my.cnf
chown root:root /etc/my.cnf
chmod 644 /etc/my.cnf

### MariaDBの起動と自動起動有効化
systemctl start mariadb
systemctl enable mariadb

### MariaDBセットアップ
# mysql_secure_installationと同等の内容
mysql -uroot -e "UPDATE mysql.user SET Password=PASSWORD('${db_pass}') WHERE User='root';"
mysql -uroot -e "FLUSH PRIVILEGES;"
mysql -uroot -p${db_pass} -e "DELETE FROM mysql.user WHERE User='';"
mysql -uroot -p${db_pass} -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"
mysql -uroot -p${db_pass} -e "DROP DATABASE test;"
mysql -uroot -p${db_pass} -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test¥¥_%'"
mysql -uroot -p${db_pass} -e "FLUSH PRIVILEGES;"

### Zabbix Server / Agentのインストール
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

### DBとDBユーザの作成
mysql -u root -p${db_pass} -e "CREATE DATABASE zabbix CHARACTER SET utf8;"
mysql -u root -p${db_pass} -e "GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost identified by '${zabbix_pass}';"
mysql -u root -p${db_pass} -e "FLUSH PRIVILEGES;"

### DBテーブルの作成
zabbix_version=`zabbix_server -V | head -n1 | cut -d" " -f 3`
zcat /usr/share/doc/zabbix-server-mysql-${zabbix_version}/create.sql.gz | mysql -uroot -p${db_pass} zabbix

### Zabbixコンフィグ内DBユーザパスワード設定
sed -i -e "s/# DBPassword=/DBPassword=${zabbix_pass}/" /etc/zabbix/zabbix_server.conf

### Firewalldの起動と自動起動設定
systemctl start firewalld
systemctl enable firewalld

### ファイアウォールのポート開放
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-port=10050/tcp --zone=public --permanent
firewall-cmd --add-port=10051/tcp --zone=public --permanent
firewall-cmd --reload

### その他必要なサービスの起動と自動起動設定
systemctl start httpd
systemctl enable httpd

systemctl start zabbix-server
systemctl enable zabbix-server

systemctl start zabbix-agent
systemctl enable zabbix-agent

my.cnf

MariaDBの設定ファイル。特にこだわりがなければ”/tmp/my.cnf”に配置を推奨。
DBのストレージエンジンにInnoDB、文字コードにUTF-8を使うよう設定している。

my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user = mysql
skip-character-set-client-handshake
character-set-server=utf8
default-storage-engine=InnoDB

[mysql]
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

WebUI上の初期設定と日本語設定

“install_zabbix.sh”を実行した後は、WebUIの設定を行う。
まずは、ブラウザ上で以下のURLにアクセス。
http://”ZabbixをインストールしたサーバのIP”/zabbix

今時なお洒落な画面が出てくるので、右下のNext stepを押下。

1

すべての項目が緑色のOKになっていることを確認して、右下のNext stepを押下。
2

“Password”の項目が空になっているので、”install_zabbix.sh”のスクリプト7行目で設定した”zabbix_pass”の値を入力。
Next stepを押下。
3

“Name”はZabbix上での監視ホスト名。特に好みが無ければ、空のままNext stepを押下。(デフォルトのNameが入る)
4

設定値の一覧を確認し、Next stepを押下。
5

「設定が完了したよ」というメッセージが表示されるのでFinishを押下。
6

これ以降、以下のURLにアクセスするとログイン画面が表示される。
http://”ZabbixをインストールしたサーバのIP”/zabbix

以下の初期アカウントを入力してSign inを押下。
・Username: admin
・Password: zabbix

7

ログインが完了するとダッシュボードが出てくる。右上の電源アイコンの横にあるアバターアイコン(Profile)を押下。
8

LanguageをJapanese(ja_JP)に変更。ページ下部のUpdateを押下。
9

今度は日本語でダッシュボードが表示される。以上で最低限の初期設定は完了。お疲れ様でした。
10

Zabbix 3.0をCentOS 7に最速インストールするシェルスクリプトを作った」への1件のフィードバック

  1. ピンバック: CentOS 7にZabbix 3.0をインストールしてみる | 俺的備忘録 〜なんかいろいろ〜

コメントを残す

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