SlideShare a Scribd company logo
Zabbix+Group replication
ブリンガー
自己紹介
HN:ブリンガー
(Qiitaとかはbringer1092)
職業:提督
年齢:37
経歴:秋葉原店員、NW・インフラ・(クラウド)エンジニア、転職活動中
興味あること:Zabbix、MySQL、Docker、Hinemos
嫌いなこと:ノーインフラ(エンジニア)時代、無茶なスケジュール
InnoDB Cluster発表時
これでZabbixが閲覧ユーザが爆増増えても耐えられる仕組みが作れそう!
MySQL-MHAは会社に1から導入するにはちょっと大変だったし
これとMySQL Document Storeを併用したら
当初の構想
どういうケースを想定しているか
・アプリケーションが1台のMySQLサーバしか考えられていない物
・今まで(Virtual)IPで書き込み、読み込み処理を分けていたサービス
認証、課金はProxySQLのパスワード制約があるため
ProxySQLを飛ばしHAproxyにSELECTはスレーブをまず参照し、データがなければマ
スターに参照するなど別実装を推奨
Maxscaleではなくなった理由
https://mariadb.com/kb/en/mariadb-enterprise/named-server-filter/
This is the server where matching queries will be router. The server should be in
use by the service which uses this filter.
これは、一致するクエリがルーティングするサーバです。サーバーは、このフィルターを
使用するサービスで使用されている必要があります。
英語はきちんと読みましょう
書き込み・読み込みサービス
Server1指定
:3306
MySQLマスター
server1
MySQLスレーブ
server3
図解
MySQLスレーブ
server2
^select.*
フィルタ適応
server2,3指定NG NG
色々複雑なことしなくてもいいのではないか?
・PHPなんだからphp-mysqlndならmysqlnd_ms使って書き込みと読み込み分けられる
よね?
というツッコミはあると思います。
ですがもっと柔軟でないとアプリ次第で困ることがあります
・マルチマスターで動かせは?
とあると思いますが同期が遅れているサーバをどうやって検出するか、競合が起きない
アプリであるのかマルチマスターでも課題はあります
変わりにProxySQLを採用
利点:
複数フィルタ適応可能など柔軟なSQLのフィルタルールが作成可能
どのフィルタにマッチしたか統計が取れる
欠点:
簡単に説明するとコンフィグがコンフィグファイル、SQLite、メモリと3段階あり面倒
MysqlコマンドでSQLiteに接続するため勘違いしやすい
Note:ProxySQL currently doesn’t encrypt passwords.(実装する気はありそう)
MysqlRouterではなくなった理由
ONLINE判定がない
モニタリングがない
サンプルでHAproxyが使われている
http://lefred.be/content/mysql-group-replication-as-ha-solution/
HAproxyなら
利点:
汎用ロードバランサではあるがHTTPであればL7として動作可能
OKなら200が返ってくるなら万が一シングルマスターなのに高負荷でマスターが2台に
万が一なってもプロクシ側で検知が出来、haproxyを落とせる
モニタがある。GUIでもCUIでも簡単に見られるのは便利
欠点:
公式推奨のnbproc=1だと性能の頭打ちがある
最終的に
every 5sec Script(plan)
:6446
200 ok 2server
HAproxy forced down
200 ok 0server alert
And select
session table
全テーブルにPRIMARY KEYかUNIQ KEYが必要
Zabbixだと4つのテーブル(history、history_str、history_uint、dbversion)
でPKもUKも存在しなかった。
ALTER TABLEを実施する必要があります。
ただし、新規にPKを追加する場合はオンラインDDLが可能なようです(※要検証)
本番データを食べさせて動作させてみて
Zabbixではこういう振り分けになりました。番号順に評価されます
1.^SELECT以外を書き込みポートに振り分け
2. sessionという文字があれば書き込みポートに振り分け
3. zabbixユーザのアクセスは読み込みポートに振り分け
4.^SELECTを書き込みポートに振り分け
Mysql_query_rules{ ( {
rule_id=1
active=1
username=”zabbix”
match_pattern=”^SELECT”
destination_hostgroup=0
negate_match_pattern=1
apply=1
} ) }
1番から評価
設定を有効にするか
接続ユーザ
一致する条件
どのホスト(グループ単位)に送信するか
条件にNOTに一致しない場合
このフィルタで終わらせるか
ProxySQLのSQLルールが柔軟で助かる
接続ユーザ、schema、接続元IP、ポートでも振り分け可能
いくつものルールを適応できるapply=0(次も評価)、flagOUT=xx(次の処理を指定)、
flagIN=xx(前の処理を指定)
大文字小文字は気にしなくて良さげ
クエリ書き換えもどうしても必要なら5.7側よりプロクシでやらせたほうがいいかな
どの正規表現規格に準拠しているかわからないのが難点
proxysqlのトラブルシュート
クエリがルールに適応されているか
select active,hits, mysql_query_rules.rule_id, match_digest, match_pattern, replace_pattern, cache_ttl, apply,flagIn,flagOUT FROM mysql_query_rules NATURAL
JOIN stats.stats_mysql_query_rules ORDER BY mysql_query_rules.rule_id;
サーバが接続されているか
SELECT * FROM monitor.mysql_server_connect_log ORDER BY time_start DESC LIMIT 6;
サーバが生きているか
SELECT * FROM monitor.mysql_server_ping_log ORDER BY time_start DESC LIMIT 6;
悩み
何かあったらGTIDとグループレプリケーションの両方の知識が必要になる
mysqldumpで--single-transactionが使えるようにならないとDBだけで4台必要
group_replication2台目以降の接続にdry-runが欲しい(こけた時にマスターのhaproxy
判定まで影響したことが)
group_replicationの前提条件が多すぎて(13項目)移管するならコンフィグチェックツー
ルが欲しくなる

More Related Content

PPTX
ハンズのDynamoDBクラウドパターン
PDF
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
PPTX
AIやマイクロサービスを活用したDynamoDB節約術
PDF
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」
PPTX
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
PDF
レガシーなアプリにWeb apiを実装してなみだ目になったのでちょっといろいろ教えてください
PDF
20141004 青森ハンズオン Azure概要
PDF
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...
ハンズのDynamoDBクラウドパターン
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
AIやマイクロサービスを活用したDynamoDB節約術
ソフトウェアパッケージベンダーのためのクラウドソリューション「SQL Anywhere OnDemand Edition」
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
レガシーなアプリにWeb apiを実装してなみだ目になったのでちょっといろいろ教えてください
20141004 青森ハンズオン Azure概要
[G-Tech2014講演資料] Microsoft Azureで負荷分散された仮想マシンを作ってみよう ~Amazon Web Servicesと比べな...

What's hot (19)

PPTX
Node.jsで使えるファイルDB"NeDB"のススメ
PPTX
Data Factoryの勘所・大事なところ
PDF
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
PPTX
Node.jsに縁のない職場でnode.jsを使い始める戦術
PDF
クラウドを活用した システム開発は適材適所
PPTX
今から始めるDocument db
PDF
初めてのMongo db
PPTX
Cedec2014モバイル初のNoSQLを使ってみよう
PDF
Open il vol4
PPTX
ここがつらいよAws batch
PDF
しみじみサーバーレス
PPTX
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
PDF
20121103 wc osaka_handson
PDF
NoSQLデータベースと位置情報
PDF
OSS/linux on Azureの活用方法と勘所
PDF
コマンド1発でAzureにDC/OS環境を作る方法
PDF
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
PDF
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
PDF
Windows Server 2012 R2 Hyper-V と Windows Azure 勘所
Node.jsで使えるファイルDB"NeDB"のススメ
Data Factoryの勘所・大事なところ
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Node.jsに縁のない職場でnode.jsを使い始める戦術
クラウドを活用した システム開発は適材適所
今から始めるDocument db
初めてのMongo db
Cedec2014モバイル初のNoSQLを使ってみよう
Open il vol4
ここがつらいよAws batch
しみじみサーバーレス
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
20121103 wc osaka_handson
NoSQLデータベースと位置情報
OSS/linux on Azureの活用方法と勘所
コマンド1発でAzureにDC/OS環境を作る方法
INF-018_OS の中で SDN 抗争勃発!? ~主役を争う VXLAN vs NVGRE~
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
Windows Server 2012 R2 Hyper-V と Windows Azure 勘所
Ad

Viewers also liked (20)

PDF
Docker Enables DevOps - Boston
PDF
[B34] MySQL最新ロードマップ – MySQL 5.7とその先へ by Ryusuke Kajiyama
PPTX
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
PDF
Ansible with AWS
PDF
Spider DeNA Technology Seminar #2
PDF
Sharding and Scale-out using MySQL Fabric
PPTX
MySQL InnoDB Cluster 미리보기 (remote cluster test)
PDF
MySQL InnoDB Cluster - Group Replication
PDF
Nuvola: a tale of migration to AWS
PPTX
MySQL Replication Evolution -- Confoo Montreal 2017
PDF
Building Scalable High Availability Systems using MySQL Fabric
PDF
Using Ansible for Deploying to Cloud Environments
PDF
Automate with Ansible basic (3/e)
PDF
MySQL 5.7とレプリケーションにおける改良
PDF
StackEngine Demo - Docker Austin
PDF
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
PDF
From devOps to front end Ops, test first
PDF
Ansible 實戰:top down 觀點
PDF
Automation with Ansible and Containers
PDF
StackEngine Problem Space Demo
Docker Enables DevOps - Boston
[B34] MySQL最新ロードマップ – MySQL 5.7とその先へ by Ryusuke Kajiyama
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
Ansible with AWS
Spider DeNA Technology Seminar #2
Sharding and Scale-out using MySQL Fabric
MySQL InnoDB Cluster 미리보기 (remote cluster test)
MySQL InnoDB Cluster - Group Replication
Nuvola: a tale of migration to AWS
MySQL Replication Evolution -- Confoo Montreal 2017
Building Scalable High Availability Systems using MySQL Fabric
Using Ansible for Deploying to Cloud Environments
Automate with Ansible basic (3/e)
MySQL 5.7とレプリケーションにおける改良
StackEngine Demo - Docker Austin
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
From devOps to front end Ops, test first
Ansible 實戰:top down 觀點
Automation with Ansible and Containers
StackEngine Problem Space Demo
Ad

Similar to Zabbix+group replication (20)

PDF
MHA for MySQLとDeNAのオープンソースの話
PDF
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
PDF
ソーシャルゲームにおけるAWS/MongoDB利用事例
PDF
Fluentd casual
PDF
PHPで大規模ブラウザゲームを開発してわかったこと
PDF
Webサーバ勉強会#5
PDF
Enter the-dolphine
KEY
1台から500台までのMySQL運用(YAPC::Asia編)
PDF
MySQLやSSDとかの話 後編
PDF
さいきんのMySQLに関する取り組み(仮)
KEY
Web Operations and Perl kansai.pm#14
PDF
MySQL 5.5 Update #denatech
PDF
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
PDF
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
PPTX
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
KEY
ソーシャルゲームログ解析基盤のMongoDB活用事例
PDF
LINEのMySQL運用について
PDF
Introducing MySQL MHA (JP/LT)
PDF
tcpdump & xtrabackup @ MySQL Casual Talks #1
PDF
MySQL 5.6新機能解説@dbtechshowcase2012
MHA for MySQLとDeNAのオープンソースの話
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるAWS/MongoDB利用事例
Fluentd casual
PHPで大規模ブラウザゲームを開発してわかったこと
Webサーバ勉強会#5
Enter the-dolphine
1台から500台までのMySQL運用(YAPC::Asia編)
MySQLやSSDとかの話 後編
さいきんのMySQLに関する取り組み(仮)
Web Operations and Perl kansai.pm#14
MySQL 5.5 Update #denatech
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
ソーシャルゲームログ解析基盤のMongoDB活用事例
LINEのMySQL運用について
Introducing MySQL MHA (JP/LT)
tcpdump & xtrabackup @ MySQL Casual Talks #1
MySQL 5.6新機能解説@dbtechshowcase2012

Zabbix+group replication