無事インストールすることができたが、相変わらずインストール手順が煩雑で面倒である。
この手のソフトウェアは、インストール直後の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を押下。
すべての項目が緑色のOKになっていることを確認して、右下のNext stepを押下。
“Password”の項目が空になっているので、”install_zabbix.sh”のスクリプト7行目で設定した”zabbix_pass”の値を入力。
Next stepを押下。
“Name”はZabbix上での監視ホスト名。特に好みが無ければ、空のままNext stepを押下。(デフォルトのNameが入る)
「設定が完了したよ」というメッセージが表示されるのでFinishを押下。
これ以降、以下のURLにアクセスするとログイン画面が表示される。
http://”ZabbixをインストールしたサーバのIP”/zabbix
以下の初期アカウントを入力してSign inを押下。
・Username: admin
・Password: zabbix
ログインが完了するとダッシュボードが出てくる。右上の電源アイコンの横にあるアバターアイコン(Profile)を押下。
ピンバック: CentOS 7にZabbix 3.0をインストールしてみる | 俺的備忘録 〜なんかいろいろ〜