LoginSignup
13
12

More than 5 years have passed since last update.

ansible-galaxy で zabbix server を超簡単にインストールする

Last updated at Posted at 2015-08-23

Zabbix サーバーをansible-galaxy でインストールした時のメモです。

Zabbix のように沢山のコンポーネント(Apache,php,MySQL)を必要とするものは、インストールも面倒ですし、途中で設定を間違えるとうまく動かなかったりするので、そろそろ手動でセットアップするのは避けたいところです。

Ansible を覚えたので自前でPlaybookを書くことも考えましたが、車輪の再発明をするのもなんなので、ansible-galaxy でどこまで行けるかやってみました。

#Zabbix のPlaybookがあるかどうか調べる
github で"ansible zabbix" で探すと、以下のレポジトリが見つかりました。

  • ahelal/ansible-zabbix
  • dj-wasabi/ansible-zabbix-server
  • Open-Future-Belgium/Zabbix-Server-Ansible

今回は、CentOS 7にインストールするのでなるべく最近更新されているもので、
dj-wasabi/ansible-zabbix-server
にしました。
コンソールマシンは、Ubuntuを使いました。
Ansible を先にインストールしておいてください。
selinux,firewalldは先に止めておきます。

#ansible-galaxy でPlaybookを取ってきます。

shell
$ sudo ansible-galaxy install dj-wasabi.zabbix-agent
$ sudo ansible-galaxy install dj-wasabi.zabbix-server

(同時に依存関係のある geerlingguy.apache も一緒に入ります)
DBは、MySQL(CentOS 7ではMariadb)にするつもりなので、

shell
$ sudo ansible-galaxy install geerlingguy.mysql

も追加

本当は、コマンドでインストールするのではなくて、requirements.txtというファイルに書いて、以下のようにするほうがよさそうです。こちらの方が、git管理できるのでいいですね。

shell
ansible-galaxy install -r requirements.txt

#インストール時に利用するディレクトリを作成
後のことも考えてgitで管理しておくためにディレクトリを作成します。

shell
$ mkdir install-zabbix

インストール時の固有パラメータ用ディレクトリを作成

shell
$ mkdir install-zabbix/vars

#インベントリーファイルを作成
https://github.com/dj-wasabi/ansible-zabbix-server#example-playbook を見ると hosts: zabbix-server とあるので以下のようにしました。

shell
$ cd install-zabbix
cat > hosts
[zabbix-server]
192.0.2.0
^D

#playbookを作成
Galaxyを使うのでPlaybookは最小でOK

install-zabbix-server.yml
- hosts: zabbix-server
  sudo: yes
  vars_files:
    - vars/main.yml
  roles:
     - { role: geerlingguy.mysql }
     - { role: geerlingguy.apache }
     - { role: dj-wasabi.zabbix-server, 
           zabbix_url: zabbix-server.example.jp,
           zabbix_timezone: Asia/Tokyo,
           database_type: mysql,
           database_type_long: mysql }

zabbix_urlは、VirtualHostのURLになります。
zabbix_timezoneは、日本時間にします。
database_type、database_type_logは、mysqlにします。
これらの設定は、この後に出てくる vars/main.yml に記入してもいいのですが、playbookに直接書いてみました。

#CentOS 7 Mariadb 対応
CentOS 7で標準インストールされるのはMariadbです。geerlingguy.mysql は、MySQL用なのでそのままだとエラーが出ます。
https://github.com/geerlingguy/ansible-role-mysql#mariadb-usage
に沿ってMariadb用の設定を追加します。
cd vars

vars/main.yml
mysql_packages:
  - mariadb
  - mariadb-server
  - mariadb-libs
  - MySQL-python
  - perl-DBD-MySQL
mysql_daemon: mariadb
mysql_log_error: /var/log/mariadb/mariadb.log
mysql_syslog_tag: mariadb
mysql_pid_file: /var/run/mariadb/mariadb.pid

#Ansible を実行します。

shell
$ ansible-playbook -i ./hosts ./install-zabbix-server.yml

この時にエラーが出るようならば、設定に失敗しています。
修正してリトライしてください。

#Apacheのconfigを2.4向けに修正
そのままだとApacheのconfigが 2.2向けなのでアクセスコントロールでエラーがでます。

Upgrading to 2.4 from 2.2 - Apache HTTP Server Version 2.4
http://httpd.apache.org/docs/2.4/upgrading.html
に従って、Order,Allow,Denyを書き換えます。

エラーが出る設定

/etc/httpd/conf.d/apache_vhost.conf
---中略---
  <Directory "/usr/share/zabbix">
    AllowOverride None
    Order Allow,Deny
    Allow from all
  </Directory>
---中略---

正しい設定

/etc/httpd/conf.d/apache_vhost.conf
---中略---
  <Directory "/usr/share/zabbix">
    AllowOverride None
    Require all granted
  </Directory>
---中略---

他のOrderの部分も修正します。
後は、httpd と zabbix が正しく動作しているか確認して、ブラウザーからアクセスします。

ログイン画面が出たら、
ID:admin
PW:zabbix
でログインします。
パスワードは変更しておきましょう。

補足:
install-zabbix-server.yml で設定できるパラメータは、以下を参照。
/etc/ansible/roles/dj-wasabi.zabbix-server/defaults/main.yml
(https://github.com/dj-wasabi/ansible-zabbix-server/blob/master/defaults/main.yml でもOK )

/etc/ansible/roles/dj-wasabi.zabbix-server/defaults/main.yml
---中略---
server_dbname: zabbix-server
server_dbuser: zabbix-server
server_dbpassword: zabbix-server
---中略---

についてはセキュリティの観点から install-zabbix-server.yml に違う値を設定しておいた方がいいと思う。Zabbixのバージョンは以下で指定する。

/etc/ansible/roles/dj-wasabi.zabbix-server/defaults/main.yml
zabbix_version: 2.4

ディレクトリ構成は以下の通りでした。

~/src/install-zabbix
$ tree
├── README
├── hosts
├── install-zabbix-server.yml
└── vars
  └── main.yml

要望があれば、werner dijkerman さんのplaybookによる zabbix-agent をインストールして、zabbix-api からホスト登録についても投稿します。

参考URL:
Zabbix 2.4 を yumでインストール(CentOS6.5) | あぱーブログ
https://blog.apar.jp/linux/334/
Installing zabbix-agent with Ansible – werner-dijkerman.nl
http://werner-dijkerman.nl/2015/03/06/installing-zabbix-agent-with-ansible/
Configure Zabbix Server on CentOS 6.6 with Ansible - Jürgen's Blog
http://jurgenvm.blogspot.jp/2014/12/configure-zabbix-server-on-centos-66.html
Installing zabbix-agent with Ansible – werner-dijkerman.nl
http://werner-dijkerman.nl/2015/03/06/installing-zabbix-agent-with-ansible/

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12