【検証用】Zabbix4.0-preをAnsibleで自動構築してみた


※2018/10/02追記※

本日Zabbix4.0LTSが正式にリリースされたので、
リポジトリも追加しておきました。

下記の手順とREADME.md記載の内容で構築できますので、
ご利用頂ければ幸いです。

目的

インフラCI構築技術習得の一環のため、Ansibleの学習を最近行っています。
そこで手動構築経験のあるZabbixの最新版(β版)を自動構築できないかと思い、
やってみました。

CentOS7へPlaybookを実行すると以下の状態が完成するように設定しております。
Zabbix 4.0-preの検証などにお使い頂ければありがたいです。

 ・zabbix_server (Zabbix) 4.0.0beta1 一台構成

 ・zabbix_agentはZabbix Serverのみに入るようにPlaybook及び
  zabbix_agentd.confを編集しています。必要であれば適宜編集してください。

作業概要

■Zabbixモジュールダウンロード公式ページ
https://www.zabbix.com/jp/download?zabbix=4.0&os_distribution=centos&os_version=7&db=MySQL

■Github(PlaybookダウンロードURL)
https://github.com/HOBO1108/zabbix40a-ansible

上記URLからPlaybookをGit CloneするかダウンロードしてAnsible実行サーバへ配置していきます。

↓↓は私のAnsible実行サーバのディレクトリ構造です。

Ansible_ZabbixPlaybookのディレクトリ構造
[root@stma01s zabbix40a]# pwd
/root/zabbix40a
[root@stma01s zabbix40a]# tree --charset=C
.
|-- inventory
|   `-- inventory.ini
|-- roles
|   |-- common
|   |   |-- handlers
|   |   |   `-- main.yml
|   |   |-- tasks
|   |   |   |-- check.yml
|   |   |   `-- main.yml
|   |   |-- templates
|   |   |   `-- chrony.conf.j2
|   |   `-- vars
|   |       `-- main.yml
|   |-- zabbix_agent
|   |   |-- tasks
|   |   |   `-- main.yml
|   |   `-- templates
|   |       |-- zabbix.conf.php.j2
|   |       `-- zabbix_agentd.conf.j2
|   `-- zabbix_server
|       |-- tasks
|       |   `-- main.yml
|       `-- templates
|           |-- snmptrapd.conf.j2
|           `-- zabbix.conf.php.j2
|-- site.yml
|-- zabbix_agent.yml
`-- zabbix_server.yml

13 directories, 15 files
[root@stma01s zabbix40a]#

Playbook実行完了後に[http://{zabbix serverのIPアドレス}/zabbix]に
URL接続するとログイン画面が開きます。

ID : Admin
Password : zabbix

でログインすれば終わりです。

あとは日本語設定やエージェントの有効設定などを行ってください。

参考資料

■zabbix3.0(server/agent)のansible-playbookを作ってみた(その2)
→Zabbix自動構築Playbookを作成する際に非常に参考になりました。
上記URLのPlaybookと異なるのはリポジトリやzabbix-mysqlのURL、zabbix_agented.confの設定部分だけで、ほぼ公開されている内容を使って構築できました。

大変参考になりました。ありがとうございます。

■注目の構成管理ツールAnsibleを徹底活用する 記事一覧
→掲載時期は既に二年前と古いものの、初学者用としてわかりやすくまとめてくれているので、Ansibleの構築と基本操作を学ぶのに大変参考になりました。

以上です。

感想(余談)

Ansibleは触り始めてまだ10日も経っておりませんが、シンプルかつ豊富なモジュール、そしてエージェントレスでの簡易な仕組みも相まって、すぐに基本的な使い方は習得できました。

また今回は、インターネット上に存在したAnsibleのコードを拝借して少し編集しただけですので、構築完了までに全く時間がかかりませんでした。

Zabbixを手動で構築するとなると、設定項目やインストールするものも多く、どこかでつまづくことが多かったです。ちなみに私は去年初めてZabbixサーバを構築した際は約15時間(土日潰れました)かかりましたが、今回はCentOS構築から始めても約30分で完了し飛躍的に構築速度が向上しました。

さらに、Ansibleは冪等性もあるため、サーバの作り直し時間も大幅に短縮されます。
今後はスナップショットによる戻しも含めて約5分で済みます。
 ※CentOS7はVMWare ESXiのVMとして起動させてます。

ということで、Ansible+Zabbixでの検証環境構築は激しくオススメです。
ものすごい簡単ですよ。ぜひZabbixを検証されたい方は学習することをオススメします。