月別アーカイブ: 9月 2012

MySQLで過去x日間と言う条件を書く

 MySQLで指定日数前の日付を取得する場合、

DATE(DATE_ADD(NOW(), INTERVAL -日数 DAY))

で取得出来る。

createdateに日付を入れていて、最近7日以内に作られたレコードを求める場合、

SELECT * FROM my_table WHERE createdate >= DATE(DATE_ADD(NOW(), INTERVAL -7 DAY))

みたいになる。 ちなみに -0 DAYなら今日になる。

 関連して、日付の曜日を取得する場合、

WEEKDAY(日付)

で取得する。 0が月曜で始まる。

 今週の月曜日の日付は、

DATE(DATE_ADD(NOW(), INTERVAL -WEEKDAY(NOW()) DAY))

で取得出来る。

 今週の月曜日からの記録を切り出す場合、

createdate >= DATE(DATE_ADD(NOW(), INTERVAL -WEEKDAY(NOW()) DAY))

で取得。

 先週の月曜から金曜までの記録を切り出す場合、

createdate >= DATE(DATE_ADD(NOW(), INTERVAL -WEEKDAY(NOW())-7 DAY)) AND createdate < DATE(DATE_ADD(NOW(), INTERVAL -WEEKDAY(NOW())-3 DAY))

※BETWEENは以上以下。 時刻なしのDATEは0時0分0秒扱いだから1秒減算する必要がある。

(265)


カテゴリー: MySQL | コメントをどうぞ

muninを使って、お名前.com VPSからRTXの監視をする

 お名前.com VPS(KVM)に入っているMuninを使って自宅のRTX1000の監視をしてみる。

1,RTX側のSNMP設定を行う
 基本

snmp host VPSのIPアドレス
snmp community read-only public
snmp yrifppdiplayatmib2 on

 更に、NATの外から来るのでスタティックを追加

nat descriptor masquerade static NATデスクリプタ番号 テーブル番号 RTXの内側アドレス udp snmp

 snmpポートのフィルタリングを追加

ip filter フィルタ番号 pass VPSのIPアドレス RTXの内側アドレス udp * snmp
ip filter フィルタ番号 restrict * RTXの内側アドレス udp * snmp

※VPSからのSNMP要求は通して、それ以外から来た物を捨てる。

2,VPS側でmunin設定を行う
 まずはmunin-nodeを設定

ln -s ‘/usr/share/munin/plugins/snmp__if_’ ‘/etc/munin/plugins/snmp_hoge.piyo.tld_if_1’
ln -s ‘/usr/share/munin/plugins/snmp__if_’ ‘/etc/munin/plugins/snmp_hoge.piyo.tld_if_3’
ln -s ‘/usr/share/munin/plugins/snmp__if_’ ‘/etc/munin/plugins/snmp_hoge.piyo.tld_if_5’
ln -s ‘/usr/share/munin/plugins/snmp__if_’ ‘/etc/munin/plugins/snmp_hoge.piyo.tld_if_6’
ln -s ‘/usr/share/munin/plugins/snmp__if_’ ‘/etc/munin/plugins/snmp_hoge.piyo.tld_if_35’
ln -s ‘/usr/share/munin/plugins/snmp__if_’ ‘/etc/munin/plugins/snmp_hoge.piyo.tld_if_91’
ln -s ‘/usr/share/munin/plugins/snmp__if_’ ‘/etc/munin/plugins/snmp_hoge.piyo.tld_if_92’
ln -s ‘/usr/share/munin/plugins/snmp__if_’ ‘/etc/munin/plugins/snmp_hoge.piyo.tld_if_93’

※hoge.piyo.tldはRTXのグローバルIPorホスト名
 ifはインターフェースの通信量表示、1~3番はLAN1~3でLAN2を使っていないので1と3、4番はBRIで未使用、5番からがPPで今回はPP01と02を監視、35番はRAS用のPP Anonymous、91番からがTUNNELで今回は01~03の対地を監視。
 後は、CPUとMEMを取得するプラグインをこちらのサイトから拝借して入れる ※念のためコピーを置いておく CPU MEM

cat > /etc/munin/plugins/snmp_hoge.piyo.tld_cpu
chmod 777 /etc/munin/plugins/snmp_hoge.piyo.tld_cpu
cat > /etc/munin/plugins/snmp_hoge.piyo.tld_mem
chmod 777 /etc/munin/plugins/snmp_hoge.piyo.tld_mem

 そして、SNMP設定を設定ファイルに記述

vim /etc/munin/plugin-conf.d/munin-node

[snmp_hoge.piyo.tld*]
env.version 1
env.community public
env.host hoge.piyo.tld

 出来たらmunin-nodeを再起動

/etc/init.d/munin-node restart

 このままではmunin-nodeが値を取ってきているけど表画面には出てこないので、表側の設定も追加

vim /etc/munin/munin.conf

[hoge.piyo.tld]
address 127.0.0.1
use_node_name no

※addressはmunin-nodeのアドレスなので、ローカル動作なら127.0.0.1。

 直ちに更新してみる場合は

sudo -u munin /usr/bin/munin-cron

 これで、muninのトップにhoge.piyo.tldのページが追加されていて、各インターフェースの通信量とCPU・メモリ状況が出るようになる。

(101)


カテゴリー: サーバ設定 | コメントをどうぞ

Proliant ML110 G7はイイネ

 以前、さくらVPSをWindows化するときにKVMを動かす環境としてProliant ML110 G7を購入していたわけだけど、ECCメモリが使えたり、フロントアクセスできるHDDケージがあったりするのが気に入って、色々拡張して使ってきた↓
・CPUをXeon E3-1280に交換
・メモリを4×2+2追加
・ケージにSAS HDD4台設置&RAIDカードを追加(こいつのHDDケージは内部コネクタがSFF-8087なので、ちゃんとしたRAIDアダプタにつなぎ替えしてSASも繋がる)
・ビデオカード追加
・電源換装
で、普通にワークステーションっぽく使っている(全部で10万円かかってない)
 ECCメモリやそれなりのエアフローのおかげか安定性が良く、下手なブランドPCなんかより遙かに安定していて良い感じだった。

 そんなわけで、今回、調子が悪くなってきたテレビ録画サーバのリプレース用にこの機種をもう1台購入した。 まぁ、安かったのが一番のポイントだったわけだが(今回はNTT-Xで13980円にクーポン4000円引きで9980円だった) 

 今回届いた商品、アウトレットって言う事だったが、HPでちゃんとメンテ作業したのか怪しいところがある。
 蓋を開けて確認すると、エアシュラウドに埃が微妙についていてクリーニングが不十分な感じがするのと、BIOS設定は初期状態に戻っていたもののiLO3のマシン名設定とイベントログが残っていた・・・ まぁ、安かったし、クレーム出すのも面倒なのでそのまま使用することにした。

 今回のマシンはTV録画専用なので、メモリはデフォルトのまま、データ用にHDDを追加、光学ドライブをBD-Rに交換、先のマシンからRADEON HD6450を移設(あっちにはちょっと良いのを追加)、PT3とUSB3.0カードを入れた。
 OSはWindows7 32bitを入れたが、ドライバはデフォルトで(iLO管理ドライバ以外)全部入っていて、追加したビデオ・PT3・USBカードのドライバを入れるだけで普通に動いた。

 グラフィックボードを入れる場合、拡張スロットエリアの温度が上がってフロントの8cmファン(iLO3表示のFAN8)が結構五月蠅くなるので、EnermaxのMAX2200rpm PWM制御ファンに交換した。
Proliant ML110G7のファンのピンアサインは緑がファン停止検出、黄色は12V、青がPWM線で黒はGND。 ファン停止検出はGNDに落とせば異常検知されない。
PWMタイプの通常ファンはGND/12V/Sense/PWMで、通常は黒/赤/黄/青なので、黄色同士を繋がず、ファンの赤を本体の黄色に繋ぐ点だけ注意。 回転数検知はない(iLOで出る回転%は、PWMのデューティ)
 クロシコのRadeon HD6450 1GBを一番下のスロットに入れているが、3dmarkを走らせても拡張スロットエリアの温度は50度程度で収まるので、iLO表示の61度にはいくらか余裕あり。
 CPUファンとバックファンはデフォルトのままでもそれほど五月蠅くならないのでそのまま使用。
 寝室放置で特に問題ない音量で収まっている。

 NTTX版は電源が70%効率の物で、動かしっぱなしの録画サーバとしては多少節電したいと言うことで、クロシコの530W 80Plus goldな電源に交換。 吸気が上下逆転で窒息しそうだが殆ど発熱がないので問題なし。

 しかし、使えば使うほど良くできたマシンだ。
NICなんかほぼワイアスピード出るし、今時だけどRS-232Cが付いているし(レガシーなUPS繋げる)、フロントUSBが4ポートあるんで、必要なときだけキーボードやマウスを繋ぐって使い方にも良い(2ポートの機種だと1ポート足りない=作業用のUSBメモリ、キーボード、マウスを入れたい。 最も、私はこの用途にはトラックポイントキーボードを使うんで2ポートでも大丈夫なんだけど)
iLO3が入っているからもしも上物が応答停止しても、移動中のスマホや会社のPCから入って強制再起動だって出来る。
BIOS設定でCPU制御をOS制御にしておくとEISTが効く。
 性能はお名前VPSに遙かに劣る(CPUのベンチで2倍近く差が出る)ものの、録画みたいな用途だとリアルマシンが必要になるから、こんな安売りマシンは良い感じ。

 そんなわけで、自宅にProliant2台稼働中なんて状況になったわけだけど、かなり低コストに安定環境を手に入れられて良い感じだ。

(252)


カテゴリー: 未分類 | コメントをどうぞ

Windows Server 2012重複除去の管理を行う – 重複除去構成の解除、空き領域の開放 – WindowsServer2012

 Windows Server 2012の重複除去機能を試用していて気がついたのだけど、重複除去対象ファイルを他のボリュームへ移動したり、削除したりしてもディスク容量が空かない。
 なんだコレ、と試しに管理画面から重複除去の構成を無効化してみたけど変わらなかった。

 重複除去処理されたファイルは、中のデータ実体が専用管理されていて、デフォルトでは管理画面に無いスケジュールで週1で不要データ管理がされているようだ。
 なので、大量のファイルを削除して直ちに空き領域を確保したい場合は、その処理を手動で実行する必要がある。
 手順としては、PS(Power Shell)を管理者モードで起動して

Start-DedupJob ボリューム -Type GarbageCollection

※ボリュームは D: とか E: とか
を実行する。

 実行中の状態を調べる場合は

Get-DedupJob

を実行する。

 重複除去したディスクの重複除去を解除する場合は、

Start-DedupJob ボリューム -Type Unoptimization

を実行する。
※解除するための容量が不足する場合には処理に失敗する。

 直ちに、スループット重複除去を実行する場合は、

Start-DedupJob ボリューム -Type Optimization

を実行する。

 重複除去構成したファイルサーバで不要ファイル削除なんかの作業をした後には手動でガーベジコレクションを実行するべきと・・・
 ファイル削除しても空き領域が増えなくて焦ったのでメモっておこう。

(1279)


カテゴリー: Windows VPS, サーバ設定 | コメントをどうぞ

ApacheでPHPを使用して処理した大きなページを圧縮(mod_deflate使用)するとメモリリークする事がある(PHPの消費メモリが減らない)

 先日の本番サーバでの出来事。
 データ関連のエクスポートを行うPHPのプログラムがあって、とあるクライアントが非常に大きいデータ(数十MB)をダウンロードし始めた。
 この時監視していたところ、本番サーバのhttpdプロセスがメモリ(RES)を500MB程度使われていた。
 まぁ、データ量がデータ量だからそんな物かと思ったのだけど、該当プロセスのCPUが0%になってもメモリがそのまま解放されない。
とりあえず、こんなプロセスがたまったらいかに本番サーバといえどもメモリが吹き飛んでサービス停止に陥る(本来はリソース計画で最大状態でも足りるように制限設定するべきなんだけど、諸事情から出来ない・・・)ので、とりあえずApacheのMaxRequestsPerChildを下げてメモリが枯渇する前に再起動するようにした;

 本番データを開発環境に入れて同じリクエストを送ってみるがメモリはちゃんと解放される。
 PHPの問題かと思ったのだけど、いまいちわからず。
 仕方ないので、本番の直近バックアップイメージを仮想環境に立ち上げて、デバッグツールを入れて走らせると再現した。
 そのでかいデータ、DEFLATEされていたのだ。 コンテンツタイプがtextだったので、OutputFilterで圧縮処理をがりがりやってたのだが、データがある程度でかいと、この時に握ったメモリが解放されない(メモリリークしてる)
 開発環境はLANの帯域があるからDEFLATEしていなかった。
 とりあえず、該当処理のアドレスをDEFLATEの除外条件にした。 けど、大きい物ほど圧縮したいなぁと思うわけだけど・・・
 PHPのメモリを制限していても、DBに繋いで読んで出してを繰り返す場合にはPHP自身は変数(メモリ)を再利用しているからそこではメモリ消費が増えず、外のmod_deflateの中だけ増え続けちゃうから、大きいデータは別処理でちゃんと圧縮してからAttachしてダウンロードするように修正かな。

 まぁ、httpdがメモリを解放してくれない場合にはmod_deflateをチェックと、メモ。

(175)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP], PHP, サーバ設定 | コメントをどうぞ

ヤマハRTXシリーズルータで自動時間合わせとかメール送信とかをスケジューリングしておく on RTX1100

 先日導入したRTX1100ルータのスケジュール設定をしておいた。

RTXのスケジュール設定書式

schedule at スケジュール番号 日付 時刻 * コマンド

今回は・・・

schedule at 1 */* 00:05 * ntpdate time-nw.nist.gov #毎日午前0時5分にNISTのNTPサーバと時刻同期する
schedule at 2 */* 04:00 * mail-notify status exec #毎日午前4時に状態メールを送信する

みたいな設定。

 まぁ、普通、一ヶ月動かしても時計は1分もずれないから、そんな毎日更新しないでも良いんだけど。
 状態メールはコンフィグが乗るから、そのバックアップ的な意味もある。

(172)


カテゴリー: LAMP[Linux, Apache, MySQL, PHP] | コメントをどうぞ

お名前.com VPS(KVM)でWindows Server 2012の評価を開始、RTX1100との間にメインモードIPSecでVPNを設定した – WindowsServer2012

 そんなわけで期待していたWindows Server 2012の評価版公開されたので、先日のつぶやき通りさくらVPSを1本解約して新規に契約したお名前.com VPS(KVM)に導入して評価することにした。
 で、今回の導入環境は、お名前.com VPS(KVM) 2GBプラン。
 お名前.com環境はWindows化は超容易で、さくらのVPSのように面倒なことをする必要はない。

1,MSのサイトからWindowsServer2012評価版のISOイメージをダウンロードしてくる
2,お名前のコントロールパネルでSSL鍵をダウンロード、サーバ設定画面でVirtioをOffに設定しておく
3,ダウンロードした鍵を認証に使ってSFTP接続してISOをアップロード(Filezillaとかで)
4,お名前のコンソール上にアップロードしたISOが登場するから選択して再起動
5,普通のPCと同じようにインストーラが立ち上がってくるから、普通にインストールしておしまい。

 ネットワークは1000MTレミュレートだから標準ドライバだし、他のデバイスも何も気にすることはない。
 IPアドレスなんかもDHCPで払い出されるから本当にデフォルトで良い。
 完了後にお名前コンソールで管理用リモートデスクトップの設定を入れてやれば、後は普通にリモートデスクトップで快適操作。

 とりあえず、先日導入したRTX1100とIPSecを設定する。
 しかし、従来通りローカルセキュリティポリシーのIPセキュリティの設定からポリシーを設定して割り当てを行ったが全然始動しない・・・
2008(R2も)はいけたんだけど、何かGPOの構成とか必要なのかな・・・? とりあえず、2008以降推奨手段であるセキュリティが強化されたWindowsファイアウォール(WFAS)にある機能で設定した。
WFASのIPSecは殆ど触ったことがないのでつまずいたが、最終的には設定項目にPFSが無いけど、PFS必須だったと言う点だけだった。
RTX1100のIPSec周りの設定

tunnel select 10
tunnel name “WS2012Eval”
ipsec tunnel 10
ipsec sa policy 10 10 esp aes-cbc sha-hmac
ipsec ike always-on 10 on
ipsec ike encryption 10 aes-cbc
ipsec ike group 10 modp1024
ipsec ike hash 10 sha
ipsec ike keepalive use 10 off
ipsec ike local address 10 RTXの内側IP
ipsec ike payload type 10 3
ipsec ike pfs 10 on
ipsec ike pre-shared-key 10 text 事前共有鍵
ipsec ike remote address 10 VPSのグローバルIP
ipsec auto refresh 10 on
ip tunnel tcp mss limit auto
tunnel enable 10

ip routeとかフィルタは以前の記事と同じ

WFASでのIPSec設定

試験企画:GUI操作は動画説明してみるテスト(動画中では試験用にDES/MD5を選択している)
操作ステップ1
操作ステップ2

1,’コントロールパネル’から’Windowsファイアウォール’を開き、左リストにある’詳細設定’を開く
2,左リストの、’ローカルコンピューターのセキュリティが強化されたWindowsファイアウォール’を右クリックして、’プロパティ’を開く
3,’IPSecの設定’タブを開いて’IPSec既定’の’カスタマイズ’を開く
4,’キー交換(メインモード)’を’詳細設定’ラジオボタンを選択して、’カスタマイズ’を開く
5,’セキュリティメソッド’の’追加’を開いて、’整合性アルゴリズム’で’SHA-1’を選択、’暗号化アルゴリズム’で’AES-CBC 128’を選択、’キー交換アルゴリズム’で’Diffie-Hellman Group 2’を選択してOKで閉じる
6,追加された項目を選択して、右側にある上下矢印で追加したメソッドを一番上にしてOKで閉じる
7,4番の画面で’データ保護(クイックモード)’も’詳細設定’ラジオボタンを選択して、こちらの’カスタマイズ’を開く
8,’この設定を使用するすべての接続セキュリティ規則に暗号化を要求する’をチェック、’データの整合性と暗号化’の’追加’を開く
9,’プロトコル’で’ESP’ラジオボタンを選択、’アルゴリズム’の’暗号化アルゴリズム’で’AES-CBC 128’を選択、’整合性アルゴリズム’で’SHA-1’を選択してOKで閉じる
10,追加された項目を選択して、右側にある上下矢印で追加したメソッドを一番上にしてOKで閉じる
11,’認証方法’も’詳細設定’ラジオボタンを選択し、’カスタマイズ’を開く
12,’1番目の認証’の’追加’を開く
13,’事前共有キー’ラジオボタンを選択し、テキストボックスにRTXに設定した’事前共有鍵’を入力してOKで閉じる
14,追加された項目を選択して、右側にある上下矢印で追加したメソッドを一番上にしてOKで閉じる。
 ’IPSecの規定値のカスタマイズ’画面もOKで閉じる。
 ’ローカルコンピューターのセキュリティが強化されたWindow・・・’(切れてる・・・)の画面もOKで閉じる。
 これで1の画面まで戻ってきたはず。
15,左リストの’接続セキュリティの規則’を右クリックして’新しい規則’を開く
16,ステップ’規則の種類’で’カスタム’を選択して次へ
17,ステップ’エンドポイント’で、’エンドポイント1にあるコンピュータを指定してください’は’任意のIPアドレス’を選択。
 ’エンドポイント2にあるコンピュータを指定してください’は’これらのIPアドレス’を選択し、’追加’を開く。
 ’このIPアドレスまたはサブネット’を選択し、テキストボックスにRTX内側ネットワークを入力(192.168.10.1/24とか)してOKで閉じて、次へ
19,ステップ’要件’で’受信接続と送信接続に対して認証を要求する’を選択して次へ
20,ステップ’認証方法’で’既定’を選択して次へ(詳細設定で12/13/14同様の設定をしても良い)
21,ステップ’プロトコルおよびポート’で、’プロトコルの種類’で’任意’を選択して次へ
22,ステップ’プロファイル’で、’ドメイン’・’プライベート’・’パブリック’をチェックして次へ
23.’名前’に適当な名前を設定(必須項目)して、’完了’
24,作成された規則を右クリックして、’プロパティ’を開く
25,’全般’タブの’有効’をチェック、’詳細設定’タブの’IPsecトンネリング’の’カスタマイズ’を開く
26,’IPsecトンネリングを使用する’をチェック、’リモートトンネルエンドポイント’の’編集’を開く
27,’特定のアドレス’を選択して、’IPv4’テキストボックスにRTXの外側固定IPを入力してOKで閉じて、OKで閉じて、OKで閉じる(接続名のプロパティまで閉じる)

 長かったけど、コレで完了。

 お名前.com VPS(KVM)からフレッツ光ネクスト回線+固定IPプロバイダで接続したRTX1100経由でLAN上のWindowsHomeServer2011なProliant ML110 G7との間でWindowsファイル共有のコピーで、4.5MB/s(36Mbps位)が実効レートだった。 このスピードならかなり快適に作業できるだろう(下手なUSBメモリ程度だ)

 と言うわけで、LANのサブネットにWindowsファイル共有を開けて、インターネット上のファイルサーバに仕立ててみた。
 外からでも使えるように、VPN(RRAS)も構成してL2TP/IPSecで入れるようにして、仮想ネットワークからもファイル共有を開けるようにした。
 しかし、WFASのポリシーを何度かいじっているといきなり消えることがあるようだ。 やはり出たばかりでまだまだ安定に難があるかもしれない。

(103)


カテゴリー: Windows VPS, サーバ設定 | タグ: , , , , , | コメントをどうぞ