7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ZabbixAdvent Calendar 2019

Day 23

AWSのRHEL環境とRDSでZabbixを構築

Last updated at Posted at 2018-09-16

状況

現状使用しているZabbixサーバとZabbix用RDSを東京リージョンにリプレースする。
EC2とRDSを引っ越しするだけならAMIやスナップショットのコピーで済むが、
折角だからEC2, RDSをスペックアップする。

既存のZabbixサーバを構築した前任者の方はもういらっしゃらず、設定内容の詳細がありませんでした。
備忘録+同じような事をしようとしている方の助けになればと思い投稿します。

この記事では監視先サーバの zabbix agent や fluentd の設定には触れません

作成する環境

  • OS : AWS Red Hat Enterprise Linux Server release 7.5 (Maipo)
  • DB : AWS RDS MySQL 5.6.40
  • Zabbixサーバ:3.0 LTS

EC2インスタンスの作成手順

yumのアップデート
EC2
$ sudo yum update
$ sudo reboot
言語設定
EC2
$ sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime
$ sudo vi /etc/locale.conf
LANG=ja_JP.UTF-8

// サーバーを再起動
$ sudo reboot
インストールするZabbixのリポジトリを登録
EC2
$ sudo yum install https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
$ sudo yum install https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
登録したリポジトリを有効化
EC2
sudo yum-config-manager --enable rhui-REGION-rhel-server-optional
Zibbix関連のパッケージをインストール
EC2
$ sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent php-mbstring mysql mysql-devel mysql-server mysql-utilities zabbix-get
Zabbixサーバ上のMySQLの設定
EC2
// MySQLサーバを起動
$ sudo systemctl enable mysqld
$ sudo systemctl start mysqld

// 自動生成されたパスワードを確認 (末尾に表示される文字列が自動生成されたパスワード)
$ cat /var/log/mysqld.log | grep 'password is generated'
2018-09-16T11:09:09.021670Z 1 [Note] A temporary password is generated for root@localhost: >s7%da.rdq5U

// ローカルのMySQLにログイン
$ mysql -uroot --password='>s7%da.rdq5U'
Mysql
// 新規パスワードを登録
SET PASSWORD = 'Password@1';

// データベースを作成
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'Password@1';
flush privileges;
quit
EC2
// Zabbix用のテーブル作成
$ zcat /usr/share/doc/zabbix-server-mysql-3.0.22/create.sql.gz | mysql -uroot --password='Password@1' zabbix
SELinuxの制限を解除
EC2
$ sudo setsebool -P httpd_can_connect_zabbix on
$ sudo setsebool -P zabbix_can_network on
PHPのタイムゾーン設定
EC2
$ sudo vi /etc/httpd/conf.d/zabbix.conf

// コメントアウトを外して値を東京に変更
php_value date.timezone Asia/Tokyo
yumのアップデートが掛からないようにリポジトリを無効化
EC2
$ sudo vi /etc/yum.repos.d/zabbix.repo

[zabbix]
enabled=0
[zabbix-non-supported]
enabled=0
各サービスの開始・自動起動デーモンを有効化
EC2
// zabbix-server
$ sudo systemctl enable zabbix-server
$ sudo systemctl start zabbix-server

// zabbix-agent
$ sudo systemctl enable zabbix-agent
$ sudo systemctl start zabbix-agent

// httpd
$ sudo systemctl enable httpd
$ sudo systemctl start httpd

管理画面にアクセス

http://13.xxx.43.xxx/zabbix/
インスタンスのグローバルIPの末尾に「/zabbix」を追加しアクセスする
アクセスできない場合はセキュリティグループを確認してみましょう
スクリーンショット 2018-09-16 20.31.21.png
「Next Step」で次の画面へ
スクリーンショット 2018-09-16 20.41.27.png
全ての項目が「OK」になっている事を確認して「Next Step」で次の画面へ
スクリーンショット 2018-09-16 20.47.35.png
ローカルDBに設定した下記の内容を入力し「Next Step」

項目
Database host localhost
Database port 0
Database name zabbix
User zabbix
Password Password@1
スクリーンショット 2018-09-16 20.50.08.png 「Name」は管理画面上でのZabbixサーバの呼び方のため空白でもOK スクリーンショット 2018-09-16 20.52.34.png 最後に入力内容の確認画面が表示される 問題なければ「Next Step」 スクリーンショット 2018-09-16 20.53.41.png 「Finish」でログイン画面に遷移する スクリーンショット 2018-09-16 21.00.27.png 初期Username:Admin 初期Password:zabbix

設定が完了するとZabbixサーバが参照するDBの情報を設定する /etc/zabbix/zabbix_server.conf が生成される

Zabbix管理画面ログイン後

下部に 「 Zabbixサーバーが起動していません(画面のリフレッシュを行ってステータスを再確認してください) 」と表示される場合
→ /etc/zabbix/web/zabbix.conf.php の$ZBX_SERVERの値が'localhost'になっている
→ IPアドレスで記載する必要がある
参考:https://www.codelab.jp/blog/?p=1149

RDSを作成

項目
インスタンス名 zabbixrds
エンドポイント zabbixrds.xxxxx.ap-northeast-1.rds.amazonaws.com
DB名 zabbix
ユーザ名 zabbix_master
PASS PASSWORD
EC2経由で新RDSへログインし初期設定
EC2
// RDSのMySQLにログイン
$ mysql -h zabbixrds.xxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u zabbix_master -p
MySQL
// DB情報を登録
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix_master@localhost identified by 'PASSWORD';
flush privileges;
quit
旧RDSからデータをエクスポートする

EC2経由で旧RDSのMySQLへログインし下記コマンドを実行

EC2
// エクスポート
$ mysqldump -u 旧RDSのユーザ名 -p -h old_rds.xxxxx.ap-southeast-1.rds.amazonaws.com -P 3306 --single-transaction --routines zabbixdb > /tmp/dump.sql
新RDSに上記のデータをインポート

EC2経由で実行

EC2
// 新RDSのMySQLにログイン
$ mysql -u zabbix_master -p -h zabbixrds.xxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 zabbix
MySQL
// データをインポート
source /tmp/dump.sql

参照するDBをRDSへ変更

Zabbixサーバが参照するDBの設定
EC2
$sudo vi /etc/zabbix/zabbix_server.conf

DBHost=zabbixrds.xxxxx.ap-northeast-1.rds.amazonaws.com
DBName=zabbix
DBUser=zabbix_master
DBPassword=PASSWORD
WEB(管理画面)が参照するDBの設定
EC2
$ sudo vi /etc/zabbix/web/zabbix.conf.php

$DB['SERVER']   = 'zabbixrds.xxxxx.ap-northeast-1.rds.amazonaws.com';
$DB['PORT']     = '3306';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix_master';
$DB['PASSWORD'] = 'PASSWORD';
SELinuxを無効化する (無効化しないとRDSとの接続ができない)
EC2
$ vi /etc/selinux/config
SELINUX=disabled

$ reboot
EC2のセキュリティグループにRDSからの接続を追加
タイプ プロトコル ポート範囲 ソース 備考
HTTP TCP 80 54.xxx.220.xxx/32(EC2のグローバルIP) EC2用
カスタムTCPルール TCP 10050 54.xxx.220.xxx/32(EC2のグローバルIP) zabbixポート用
MYSQL/Aurora TCP 3306 54.xxx.220.xxx/32(EC2のグローバルIP) RDS用
カスタムTCPルール TCP 24224 (監視先サーバのグローバルIP) fluentd用

参考ページ

7
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?