実戦投入力を上げていこう。何事も運用に乗らなければ意味がない。それは私生活でも仕事でもそう。筋トレも柔術もロードバイクも継続的に運用されて時間経過によるステージアップを積み重ねなければ。仕事でも運用改善に注力して、ひとつづつ確実に導入したものを運用にのせて改善していく。
— としゆき (@Tocyuki) 2018年8月11日
というわけで、監視周りも改善させていくぞ〜!
というのも現在の業務でのZabbixの構成が以下のような感じで各ロケーションにZabbixサーバーを構築し、設定もそれぞれのロケーションに構築しているZabbixサーバーで行っているという状況。
現在、本番運用しているデータセンターが3箇所あり、基本的には同じアプリケーションを運用しているので、各データセンターにZabbix Serverがいると結構めんどくさい。
めんどくさいポイント&デメリットしては以下が挙げられる。
- 同じアプリの監視を追加・修正するのに全部のZabbixサーバーの設定を変更しなければならない
- バージョンアップも各Zabbixサーバーで行わなければならず、現状適切にバージョンアップされていない(2.2とかのZabbixが存在していたりする笑)
- 各データセンターの監視データの確認をそれぞれのZabbixサーバーで見なければいけない。(超めんどくさい!)
- スクリーンの作成も各Zabbixサーバーで行わなければいけない。(めんどくさすぎてスクリーン作られていない笑)
- アラート通知の設定も各Zabbixサーバーでやらなければいけない。
- 以上に挙げたようにめんどくさすぎて監視内容や通知手段、設定内容等に各Zabbixサーバーで差があり、もう監視どころじゃねぇ!
という感じで挙げたらキリがないのですが、そんな感じなのでこういう構成にしようと思います。
構成としては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を配置して実際に監視データを取得していきたいと思います〜!