
概要
監視サーバを建てるべく、Azure上にCentOSのインスタンスを用意して
Ansibleで手早くZabbix3.0をインストールします。AnsibleのPlaybookはGithubで公開します。
github.com/sios-tech/ansible-zabbix-rhel7
CentOSインスタンスの用意
インスタンスについては執筆時点でCentOS7.2がありましたのでこちらを利用します。
また今回は検証の為に、グローバル環境からアクセスしたいので、
インスタンスを用意した後にネットワークセキュリティグループで利用するポートを開けておきます。
Ansible Playbookについて
Ansibleについてはサーバサイドにインストールして自ホストに対してPlaybookを実行します。
これでZabbix Server兼Ansible Serverを構築し、監視対象ホストへ一括Zabbix Agentを
インストールしたらスマートかなと思い、まずは今回Zabbix Serverを構築します。
またPlaybookについては以下のような具合です。
- Zabbix Server3.0の標準インストールに加え、日本語の言語パッケージを追加
- CentOS7 or RHEL7に対応
- バックエンドはMySQL(MariaDB)、standalone構成
- Zabbix動作に必要なパッケージは無ければyumインストール
- Apache、MySQL、SELinux、firewalld(またはiptables)のチュニーングは考慮外
- Playbookの実行はrootユーザもしくは一般ユーザの場合はsudoが使える前提
今回検証した環境
- CentOS Linux release 7.2.1511 (Core) (on Azure)
- Zabbix 3.0
構築
AnsibleとGitをインストールします。
[code lang=text]
$ sudo yum install -y git
$ sudo yum install -y epel-release
$ sudo yum install –enablerepo=epel ansible
$ sudo sed -i "s/^enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo
$ git –version
$ ansible –version
[/code]
GitHubからAnsible Playbookを取得します。
[code lang=text]
$ git clone https://github.com/sios-tech/ansible-zabbix-rhel7.git
$ cd ansible-zabbix-rhel7
[/code]
ZabbixServerの環境情報を定義します。
(デフォルトで問題ありませんが、最低限MySQL Zabbix用DBのパスワードは変更しておきます。)
[code lang=text]
vi ./group_vars/zabbix-server-mysql-standalone
[/code]
[code lang=text]
# Here are variables related to the ZABBIX-Server installation
# /etc/php.ini
dateTimezone: Asia/Tokyo
#
# ZABBIX repository specified to use in the installation
#
zabbixRepository: http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
zabbixRpmGpgKey: http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
#
# Database settings and ZABBIX configuration
# '/etc/zabbix/zabbix.conf','/etc/zabbix/web/zabbix.conf.php'
#
ListenPort: 10051
LogFile: /var/log/zabbix/zabbix_server.log
DBHost: localhost
DBName: zabbix
DBUser: zabbix
DBPassword:
DBPort: 3306
DBSocket: /var/lib/mysql/mysql.sock
[/code]
Ansible playbookの実行先を指定。今回は自ホスト宛( localhost )
[code lang=text]
vi ./hosts
[/code]
[code lang=text]
[zabbix-server-mysql-standalone]
127.0.0.1
[/code]
Ansible playbookの実行
[code lang=text]
$ sudo ansible-playbook -u ./zabbix-server-mysql-standalone.yml
# 公開鍵認証の場合は以下の様に、秘密鍵(pem)を指定します。
# $ sudo ansible-playbook –private-key= -u ./zabbix-server-mysql-standalone.yml
[/code]
実行完了後、 http:///zabbix
にアクセスします。
( 初期ユーザは Admin / zabbix )
日本語への変更は、画面右上ユーザアイコン -> [Language] -> プルダウンで[Japanese(ja_JP)]を選択します。
最後に
おそらくサービス単位でAzureのリソースグループをカテゴライズすると思いますが、
単一のZabbix Serverで監視するために各リソースグループにZabbix Proxyを構築
して統合監視するのもスマートかなと思います。
また、バックエンドのDBをAzureのDBサービスやAzureCLIを介して故障履歴はログ収集は
Azureのストレージサービスを利用するということも今後試してみたいと思います。
—
Kentaro Morone


コメント投稿