Bash ヒアドキュメントとMySQLをうまく使おう!


MySQLとヒアドキュメントをうまく使いこなされば、さくっとSQLをファイルを作ることができます。はじめは戸惑いますが慣れれば簡単です。数百回はやったかも(^^;)



続きを読む “Bash ヒアドキュメントとMySQLをうまく使おう!”

MySQLのユーザー情報を一括で設定するshellとか・・


適当感は否定できないですが・・・MySQLサーバのユーザー設定を一括で行うshellです。当該shellは、
・root
なんでもありの神様アカウント
・sysadm
データベース管理全般(DBA用)
・sysusr
サービスで利用するアカウント
・slave
レプリケーションで利用するアカウント

の4アカウントのパスワードを設定します。たぶん、MySQLインストールの初期設定程度にしか使わないですが、それでもMySQLを利用するシステムって複数台同時にセットアップなんてことをやるかと思いましたのでそういう方には便利かな?とか思って掲載しました。

続きを読む “MySQLのユーザー情報を一括で設定するshellとか・・”

MySQL: 不要なバイナリログを削除(パージ)する shell


MySQLでレプリケーションってMASTERが吐き出すバイナリログをリレーしてレプリケーションをするわけなのですが、そのままにしておくとMasterにバイナリログがどんどん溜っていきディスクを圧迫してきます。自動削除の機能もあるのだけど・・MASTERのバイナリログをSLAVEが処理しているかなんて見ないで削除してしまう(そもそもレプリケーションのための設定ではない)ので、ちょっと怖いなあーといった感じですね。
そんなこんなで、全てのSLAVEが処理済のバイナリログを削除(purge)するshellを作ってみました。最近shellばっかり作っているな・・。


続きを読む “MySQL: 不要なバイナリログを削除(パージ)する shell”

KeepAlived+MySQLレプリケーションを利用した高可用性インフラの構築


そもそレプリケーションの構成的にどうなの?とかいう話は別として、単純にやってみたいからやってみました(笑
まず、MySQL レプリケーション(シングルMASTER – マルチSLAVE)ってすごいよね?
データベース参照負荷の高いアプリでは、SLAVEをガンガン増やして、ロードバランサー(keepalived)のvip経由でアクセスしちゃえば、簡単にスケールアウトできちゃうわけだから。仮に複数あるSLAVEサーバのうち1台が故障したとしても、他のSLAVEが生きているかぎり、簡単にロードバランサーから関連ノードを切り離してしまえば、サービスを停止することなく、データベースのメンテナンスができちゃうもんね。

では、MASTERサーバが障害に陥った場合はどうするのか?
ここのリカバリに関してはどうしても時間かかっちゃいますのでなんとか短く復帰できないか?なんていうのを考えてみました。ちなみに動作全く未保障

続きを読む “KeepAlived+MySQLレプリケーションを利用した高可用性インフラの構築”

lvs:内部ロードバランサー クライアント自動設定shell


題名長いすね・・たとえば、MySQLのSLAVEを利用した内部ロードバランサーを構築した場合など、振り分け先のリアルサーバにちょっとした細工をする必要があるのですが、慣れればいいのですが私はこの手のものは、なかなか慣れないのですべてスクリプト化しちゃいます。ようは、実行してはい終わりって感じにしたい。Keepalived LVSにつきましては、大昔に、「負荷分散について考えてみる②: keepalivedの設定」でこの話に触れている部分がありますので参考にしてみてくださいね。でも今回のスクリプトは前回の設定内容とは大きく違います。今回の設定スクリプトはnicの設定をいじる方法でやっております。実際こちらのほうが楽です。

続きを読む “lvs:内部ロードバランサー クライアント自動設定shell”

統合監視ツール:zabbix ~①server インストール


このサイトも気づいたときには、サーバが20台くらいある状態で、もはや一台二台サーバダウンしていたとしても、数週間、いや数ヶ月知らなかったなんてこともあり、そう、管理はぐだぐだなんです。せめてサーバが落ちたときくらい、メールかなんか飛ばして確認しようよなんてことを思いつつ、今回は、zabbixを導入することにしました。このあたりの知識はそうとう疎い人間で、インストールですら四苦八苦したぐらいなので、実際、設定なんて話になったらもっと面倒なんだろうなと思っていますが。せめてインストールだけでも、簡単にしたかったので、今回は、最新版である、1.8.4を yumでインストールし、起動起動するところまで書きますです。なお、当環境にはすでにMySQLはインストールされている状態なので、その部分については割愛します。

以下インストール手順です。

* リポジトリのダウンロード

mkdir /usr/local/src/zabbix
cd /usr/local/src/zabbix/
wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/zabbix-jp-release-5-3.noarch.rpm
rpm -ivh zabbix-jp-release-5-3.noarch.rpm

* zabbinのバージョンを切り替える(1.8を選択)

alternatives --config zabbix-jp-release

4 プログラムがあり 'zabbix-jp-release' を提供します。

選択       コマンド
-----------------------------------------------
1           /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo
2           /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo
*+ 3           /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo
4           /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:4

* 1.8系に変更されたか確認する

alternatives --display zabbix-jp-release
zabbix-jp-release - ステータスは手動です。
リンクは現在 /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo を指しています。
/usr/share/zabbix-jp-release/zabbix-jp-1.1.repo - 優先項目 10
/usr/share/zabbix-jp-release/zabbix-jp-1.4.repo - 優先項目 20
/usr/share/zabbix-jp-release/zabbix-jp-1.6.repo - 優先項目 40
/usr/share/zabbix-jp-release/zabbix-jp-1.8.repo - 優先項目 30
現在の「最適」バージョンは /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo です。

* zabbix のインストールを行います

yum install -y zabbix.x86_64 zabbix-agent.x86_64 zabbix-server.x86_64 zabbix-server-mysql.x86_64 zabbix-web.x86_64 zabbix-web-mysql.x86_64

今回データベースには、MySQL 5.1を利用しております。

* 初期データベースの登録

mysql -u root
create database zabbix default character set utf8;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
quit;

* 各種 zabbix用のddlを投入する

mysql -uroot zabbix < /usr/share/doc/zabbix-server-1.8.4/schema/mysql.sql
mysql -uroot zabbix < /usr/share/doc/zabbix-server-1.8.4/data/data.sql
mysql -uroot zabbix < /usr/share/doc/zabbix-server-1.8.4/data/images_mysql.sql

* apacheのインストールをする

yum -y install httpd
/etc/init.d/httpd start
/sbin/chkconfig httpd on

* web画面からの、zabbixインストール

mv /etc/zabbix/zabbix.conf.php /etc/zabbix/zabbix.conf.php.save
chmod 777 /etc/zabbix

* zabbix サーバ/エージェントの起動

/etc/init.d/zabbix-server start
/sbin/chkconfig zabbix-server on
/sbin/chkconfig/zabbix-agent on
/sbin/chkconfig zabbix-agent on

* zabbixのwebセットアップ
http://インストールzabbix/ にアクセスすると以下のような画面が表示されます

ライセンス規約をよく読んで、Agree

必要なモジュール一覧とか推薦するバージョンとかがでます。

zabbixで利用する、データベースの接続定義情報を入力します

zabbixサーバで利用するサーバポートを指定します特に理由がない限りそのままでも良いでしょう

最終確認画面です。間違いないか確認してください

途中割愛いたしますが、インストールに成功しますと、ログイン画面が表示されます。デフォルトのパスワードは、”zabbix”です。

以上でインストールはおしまです。次回設定方法を書こうかと思っておりますが、他のサイト様で書かれている手順書を熟読したほうがいいかもしれません。

shellと組み合わせて使うmysqlコマンドとかのメモ


色々と組み合わせて使えば、mysqlの運用が楽になるかもしれません。使えそうなものをピックアップしてみました。運用の側面からも、監視の側面からも、shellは覚えておいたほうが良いと思います。まあ、みさなまはもっとかっこいいことをやっているかもしれませんが、自分の中で、あぁこれ便利だなあと思って作ったshellを一部抜粋して掲載しております。もっと効率の良い方法がありましたら、教えてください。SQL的なポイントとしては、concat(文字列結合) 列関数と、information_schemaを利用することで、一括系のSQLが簡単に作成できるところが利点だと思っています。
続きを読む “shellと組み合わせて使うmysqlコマンドとかのメモ”