Tocyukiのブログ

ギターと柔術とプログラミングが好き!

AWS上にEC2 + RDS(MySQL)の構成でZabbix4.0を構築する

というわけで、監視周りも改善させていくぞ〜!

というのも現在の業務でのZabbixの構成が以下のような感じで各ロケーションにZabbixサーバーを構築し、設定もそれぞれのロケーションに構築しているZabbixサーバーで行っているという状況。

f:id:tocguitar1:20180812151759p:plain

現在、本番運用しているデータセンターが3箇所あり、基本的には同じアプリケーションを運用しているので、各データセンターにZabbix Serverがいると結構めんどくさい。

めんどくさいポイント&デメリットしては以下が挙げられる。

  • 同じアプリの監視を追加・修正するのに全部のZabbixサーバーの設定を変更しなければならない
  • バージョンアップも各Zabbixサーバーで行わなければならず、現状適切にバージョンアップされていない(2.2とかのZabbixが存在していたりする笑)
  • 各データセンターの監視データの確認をそれぞれのZabbixサーバーで見なければいけない。(超めんどくさい!)
  • スクリーンの作成も各Zabbixサーバーで行わなければいけない。(めんどくさすぎてスクリーン作られていない笑)
  • アラート通知の設定も各Zabbixサーバーでやらなければいけない。
  • 以上に挙げたようにめんどくさすぎて監視内容や通知手段、設定内容等に各Zabbixサーバーで差があり、もう監視どころじゃねぇ!

という感じで挙げたらキリがないのですが、そんな感じなのでこういう構成にしようと思います。

f:id:tocguitar1:20180812154055p:plain

構成としてはZabbix Proxy構成に変更するという感じですかね。

AWS環境をもうひとつのデータセンターと見立てて、そこを中心とした運用システムを構築していきたいなぁという目論見であります。

環境

というわけで以下の環境でZabbixサーバーを構築してきます。

  • Zabbix4.0alpha
  • EC2(CentOS7.5)
  • RDS(MySQL5.7)

構築手順

Zabbixのインストール

  • RPMのインストール
$ sudo rpm -i https://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
  • Zabbixサーバー、フロント、エージェント、MySQLのインストール
$ sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get mysql

DB設定

  • データベースの作成
$ mysql -u root -h mysql.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 447
Server version: 5.7.22-log Source distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.03 sec)

MySQL [(none)]> grant all on zabbix.* to zabbix@`%` identified by '<Password>';
Query OK, 0 rows affected, 1 warning (0.06 sec)
  • テーブル作成および初期データの登録
$ sudo zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -u root -h mysql.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p zabbix
  • zabbix_server.confにDB接続情報を記載
$ sudo diff /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.org
92d91
< DBHost=mysql.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
127d125
< DBPassword=<Password>

その他設定

  • Zabbixの自動起動設定およびZabbixの起動
$ systemctl start zabbix-server
$ systemctl status zabbix-server
  • httpdの設定ファイルでタイムゾーンを設定
$ sudo vi /etc/httpd/conf.d/zabbix.conf
- # php_value date.timezone Europe/Riga
+ php_value date.timezone Asia/Tokyo
  • あとはhttp:// IPアドレス or サーバー名/zabbixにアクセスし、初期設定を行う!

そんな感じで

あとは各ロケーションにZabbix Proxyを配置して実際に監視データを取得していきたいと思います〜!

参考

dev.classmethod.jp