2016年10月20日木曜日

Ansibleで Zabbix Proxy を構築して、監視対象を拡張する方法 (インストール方法、設定)

photo by Blake Patterson
Zabbixのサーバーから直接つながらないサーバ監視に、Zabbix Proxyを使って情報取得させてみました!
意外と日本語ドキュメントが充実していなかったので残しておきます~

もくじ



想定イメージ

Firewallの配下にあるサーバーをネットワーク越しにって、いう教科書通りではなく・・・
すでに別セグメントから、監視を行っていてさらに別ネットワークにあるサーバーを監視したかったのです。

構築環境

  • CentOS 7
  • Zabbix Proxy 3.0.x
  • MariaDB
  • Ansible
  • dj-wasabi/ansible-zabbix-proxy
dj-wasabi/ansible-zabbix-proxy

Ansibleを使った「Zabbix Proxy」の構築

ansible-galaxy install dj-wasabi.zabbix-proxy -p . # -p はroleの場所指定
cd dj-wasabi.zabbix-proxy
ansible-galaxy install geerlingguy.mysql

inventoryファイル作成

  • inventory
[mysql]
zabbix-proxy ansible_ssh_host=192.168.X.X
mysqlと、外部から接続したかったのでその設定を入れました。

mysqlの設定

geerlingguy.mysql/defaults/main.yml
を参考に
geerlingguy.mysql/vars/main.yml を作成して編集

主に、パスワード部分の変更ですね。
mysql_root_password: hogehogeなど


Zabbix Proxyの設定

dj-wasabi.zabbix-proxy/defaults/main.yml
を参考に
dj-wasabi.zabbix-proxy/vars/main.yml を編集

主に、zabbix-serverの変更ですね。
zabbix_server_host: 192.168.1.X


paybookの作成

  • playbook.yml
- hosts: zabbix-proxy
  sudo: yes
  roles:
     - { role: dj-wasabi.zabbix-proxy, zabbix_server_host: 192.168.1.X, database_type: mysql, database_type_long: mysql }

Ansibleの実行

ansible-playbook playbook.yml -i inventory -c ssh
  • パスワード必要な場合
ansible-playbook playbook.yml -i inventory -c ssh --ask-pass --ask-sudo-pass

あれよあれよとできる

CentOS7なので、
  • MariaDB入れて
  • MariaDBセットアップ(root)
  • Zabbix Proxy入れて
  • MariaDBセットアップ(zabbix-proxy)
なんかをやってくれますー

Zabbix Serverに「Zabbix Proxy」を設定

管理ユーザーで
管理 ⇒ プロキシ ⇒ プロキシ作成
ここで。 inventoryファイルで指定したこの名前「zabbix-proxy」が必要になってきます!

この後は、ホストの設定で「プロキシによる監視」で先ほど作成した「zabbix-server」を指定

参考サイト

AnsibleのPlaybookやRoleは中身をよく見ておいた方がいいです~
mysqlの設定はまだ変えようと思います。
dj-wasabi/ansible-zabbix-proxy

書籍

Zenback