Category Archives: server

Install and Configure an EFK stack on centos6

Hello, I’m Takeken. I feel like scrambled egg, it’s a humidity day and a rainy day and a hot day. this time is I introduce how to install EFK stack(Elasticsearch, Fluentd, kibana) on Centos6. I have already finished to making on Debian8, but this time, I was challenged other environment. What is can us do? It will also show you how to configure it to visualize the access log of Elasticsearch server. By visualizing log, We could know the state of the server. Done. How to install Elasticsearch install package JAVA, it might be better “yum install”. Phew! Next! How to install kibana Ok. To see the graph from the […]

Move to Sakura’s Cloud was finally completed ( Some only )

I’ll want to be move to Sakura’s Cloud when migrate function from Sakura’s VPS revive!! Whether I was put up flag isn’t interested. Because I wanted to make new server environment, I build a server from a first and moved data. New environment is constructed from Nginx, HHVM, MariaDB. Oh, so very splendid. I feel like a new technology. I don’t understand a difference about Mysql and Mariadb but in the case of CentOS7 I feel it was a standard specification. This is in the middle of reporting, the environment is as follows. Web server Sakura’s Cloud Mail server Sakura’s Cloud Zabbix server  Sakura’s VPS DNS Sakura’s VPS web application […]

ngx_mrubyを使ってみよう

以前、Apache用モジュールのmod_mrubyとmod_cgroupを試しましたが、前回の日記でも書いていたように、ブログの環境をNginx+HHVMにしようかな〜と思ってるので、ngx_mruby!を触っとこうと思います。 インストール手順はMod_mrubyと少し異なり、ngx_mrubyをmakeして、できあがったモジュールをadd-moduleして〜の、Nginxをリビルドして〜のという流れになるようです。過去に、と言っても随分と過去ですが、Nginxもソースからインストールしたりした事もあったかとは思いますが、頭からはすっかりと消去されているようで、ちょっとちんぷんかんぷんだっふんだ。 今テストしてる環境ではもちろんaptからNginxをインストールしているので、今回は付属しているbuild.shを使って、スクリプトにNginxのDLからビルドまで一緒にやってもらえる手順を利用します。 Gitから落としてきて、updateなどなど、中には色々とファイルが用意されてて、このバージョンのNginxが入ると思われる。 気になる人はbuild.shの中身を見ながらやるといいかなと思います。 設定ファイルは、aptでインストールしたNginxのConfファイルを眺めながら、新しくインストールしたNginxのConfファイルに必要なところを付け足していく感じにしたんですが、なんとまぁそれで問題なく動いてくれました。 当然ながら?Apacheよりもコンパイルも速いし気持ちいいす。 ドキュメントルートには、もともとインストールしていたWordpressを指定。 これでOK。 hhvmもインストールしていたものをincludeさせるようにしたらそのまま動いてくれました。 もともとの設定ファイルも使えてオブジェクト志向〜って感じがして気持ちいいですね。 ローカルのNginxに、ウェブサーバーのデータを全部移して既にテストはしているとこなのですが、全文表示でなおかつ数件分の記事が出してもサクサク動いています。今のサーバーでやると確実に重たいです。 かなりのレスポンスの改善はやっぱり体感できるので、この環境をサーバーで動かすとすると、もっと速いでしょうからNginx+HHVMに変える方向へとさらに加速〜。濃厚になってきました。 では、今回の本題であるmrubyのテストといきますか。 Gitに置いてあるテストコードを動かしてみます。 う 動いた! かなり端折っていますがwwちゃんと動きました。 あとはDos_Detectorをがむばって作ってみるとか、SSLの環境も作らなきゃってとこでしょうか。 そして、それはまた今度やると。 参考サイト Github:matsumoto-r/ngx_mruby  https://github.com/matsumoto-r/ngx_mruby/wiki/Install Qiita:takeswim nginxにngx_mrubyをインストールする  http://qiita.com/takeswim/items/d80dcf9865d06571cc5e 終わろうかな〜と思ったけれど、もうちょいテストしておこう。 まずはGeoIpを使ってみます! GeoIPはこれからも色々と使い道が多そうなので要チェック。 必要なパッケージをインストールします。 はじめて使うので良く分かりませんがアップデートしときます。 あとは手順通りにbuild_config.rbのコメントアウトを外して再ビルドします。 GeoIPを試すための簡易なコードを用意しました。 コネクトハンドラにアクセスして試してみますと、レスポンスが取れました! 下のようにちゃんとデータが取れています。 続いてはコネクションの情報から動的にフィルタリングしてみます。 ここまではそこそこ順調だったものの しばらく試してみて上手く動かないぃぃぃ\(^o^)/な状態になってから知ったのが、nginx_stub_statusモジュールが必要なようでした。 ということで再ビルドします。。。 かなりしょぼいテストですけれども、ちゃんと動的に動いていることは確認できました。 こんな風にとあるタイミングのところで503が返っているのは分かると思います。 必死でやっとアクティブコネクトがしきい値を超えたっていうか1だけど、まぁちゃんと動いてます。 192.168.24.56 – – [12/Aug/2015:10:13:39 +0900] “GET / HTTP/1.1” 200 192.168.24.56 – – [12/Aug/2015:10:13:39 +0900] “GET / HTTP/1.1” 200 192.168.24.56 – – [12/Aug/2015:10:13:41 +0900] “GET / HTTP/1.1” 200 192.168.24.56 – – [12/Aug/2015:10:13:42 +0900] “GET / HTTP/1.1” 503 192.168.24.56 – – [12/Aug/2015:10:13:42 +0900] “GET / HTTP/1.1” 503 なんということでしょう。ある程度のことはできてしまいました。 DoS対策はまだ煮詰める必要はありますが、ぼちぼち引っ越しの予定を立てますか。 参考サイト Github:matsumoto-r/mruby-geoip https://github.com/matsumoto-r/mruby-geoip

第3回目?のサーバ引っ越しに向けて Nginx + HHVM な環境と戯れておく

待ちに待っていた「さくらのVPS」からのマイグレーション機能の復活だったのですが、最近はHHVMの導入や、Nginxにしようかな〜などと色々なことを考えていて、結局マイグレーションは使わない方向に行きそうです・・。 何のために待っていたのか\(^o^)/ HHVMを入れるのはHackが動作するのでこれからに備えてって感じです。 Webサーバをどうするかもまだ考え中で、って考えながら、ついさきほどこのサーバにもNginxのリバースプロキシを復活させました。 復活って言うのは、実は以前にも使っていた事があり。 関連記事 Nginxを導入 2012年の11月の記事w 余談になりますが、3年前の当時は1ヶ月2000PVほどだったみたい。 3年で3倍くらいになってました。 先月は9000PV超えてましたが、今月はまた下がりそうで、目標の3万まではまだまだ時間がかかりそうです。 リバプロは何で止めたんだっけな。。SSDにしたからかな。 まあいいや。 最近感じてることの1つに、環境を伝える、宣伝する、選択する、などなどの1つで、「うちはWebサーバにはApacheを使ってます!」な言い方ではなくて、「うちはNginx+HHVM+AWSなんですわー!」みたいにインフラとミドルウェアについて複数重ねるような言い方をしたりするのがこれから普通になってくるのかなぁと感じたりしています。選択肢が増えたというか、CMSを使う方が増えたというか。 Wordcampなんかでもやってるように、ものすごい勢いで利用者や利用している企業が増えてそうです。 エンドユーザ向けですが、サーバの選択について ファーストサーバの村竹さんのスライドです。 日本のWordPressホスティングの動向とレンタルサーバーの選び方 だからなんだっていうと、びこーず、どんなサイトにするかって部分で、サーバをどんな構成するか?というのはかなり難しくなってきそう。クラウドサービスが増えているのでスケールアウトも簡単にできますし。 ってことでそのインフラをどうするのかっていう選択もまた更に難しいんじゃないかと思ったりします。 社内ではOpenstackを使って自社でソースをゴリゴリしてるってとこもあるし。 もう頭がとんがりコーンです。 それらを証明するかのように、ディザスタリカバリって言葉なんかも、ちょっと昔よりも有名になってきたような気がします。 会社も個人もリスク管理は大変です。 ってなもんで色々考えても答えはでないので、最終的には人と人の信頼関係なのかなと思ったり。 さて〜、あんまり難しいことを考えていると爆発してしまいますので、ぼちぼちNginxの話に戻ります。 当時調べてたことも3年前とかもう大昔すぎて、Nginxの設定やらも全く覚えておらずで、ちょっと時間がかかりましたがこの日記を書いている今はすでに設定完了しました。 体感で少しはキビキビ動くようにはなりましたが、もう一声キビキビして欲しいところ。 どちらの環境でも試してみてから決めるってことになりそうです。 前置きがめちゃくちゃ長くなってしまいましたが、やっとHHVMに戻ります。 インストールメモ。 前置きとしてはVmwareでDebianをつくっています。 Debianの場合はパッケージは既にあるので、インストールするともう起動まで完了しており、Curlで確認ができます。 続いてHHVMのインストールから起動までですが、本家サイトにDebianの手順が書いてますんでそのままで大丈夫です。 /usr/share/hhvm/install_fastcgi.sh 上のパスにセットアップファイルがあり、中を見てみるとApacheとNginx両方に対応しているみたいだ。 以下のようにモジュールを有効化してくれるみたい。 実行するとこのようにサクッとやってくれます。 準備はこれだけで終わりです。 最近は実行結果ってものの大事さを思うようになってきました。 簡単なPHPを用意して動かしてみます。 HHVMが3.8.1ですね。 wordpressをインストールするその前に echo phpinfo(); をするとどうなるの? PHP5.6相当ってことが分かります。 ここでのポイントはPHPはインストールしてませんよってことです。 ではWordpressをインストールしましょう 手順は割愛します。 あ、ab出来ないやん!と思ったらutilを入れればOKのようでした。 apt-get install apache2-utils 静的なページ Requests per second: 3287.81 [#/sec] (mean) WordPressトップページ Requests per second: 27.98 [#/sec] (mean) キャッシュ有り Wordpressトップページ Requests per second: 55.66 [#/sec] (mean) のような結果となりました。 HHVMにする上で必要なことっていうか、気をつけるところは全てのプラグインが動くかはしらないぜってとこらしく、その辺はOSSらしくやればいいのかなと思います。 OSSっていうかGPL? 参考サイト 網元 Debian 7 でLAMP(Nginx+MySQL+PHP)インストールからWordPressを動かすまで(Nginx編) GitのHHVMのページ Gihyo.jp 第318回 HackとPHPの実行環境HHVMをLXCで試す Webサーバ本体をNginxにするとしてもう1つの問題があって、いまはmod_dosdetectorを使っているわけですが、Nginxのものはないのです。 https://github.com/stanaka/mod_dosdetector こないだ触ったmrubyのngx_mrubyを使ってdos対策を実装してみるってのも面白そうだけどね。 色々できることは多そうですね。 こんな個人が運営している1台ぽっちのサイトでも選択肢は山ほどありんす。 ではまたね。

mruby-cgroupを有効にしてApacheのリソースをコントロールする話 その壱

前回はmod_mrubyを導入して簡単なRubyスクリプトでApacheの挙動を確認するところまでやりました。続いて今回もmrubyの話で、Cgroupを有効にしてその効果を確認するとこまでやろうかなっと思います。セミの声を聞きながら部屋でゴロゴロしていると気分だけは夏休み気分になるね〜。気分だけね。 cgroupって何づら? LinuxKernelの機能の1つで、利用方法はいろいろとあります。が、難しい話はスルーしましょう。 cgroupを略さずに書くとコントールグループで、何のコントールかというとリソースです。 リソースっつうと、CPU、メモリ、ディスクI/Oとかですな。 コントロールと言っても色々ありそうだし説明文にするとややこしくなりそうなので、Wikipediaから抜粋して箇条書きにしてみますと。 リソース制限 優先順位 どれだけのリソースを使用しているか計上 隔離 一時停止・再開など などなど。 こうして書き出しただけでも色々なことができるのだなぁと。 ただ今回の目的はまずはApacheに対してCPUの利用を50%にしまぁーす。するってーと、参考サイトのままですが挙動の確認なので良しとします。 Cgroupじたいは以前にも少し触ってて。 関連記事 Cでサーバー監視のプログラムを作ってみよう その4 もう1年以上も前になるんですなぁ、なつかしや。 インストール まずはcgroupを有効にするにはmod_mrubyもリビルドしなければいけません。 やるべきことはコメントアウトを外すだけではなくて色々必要なのでした。 まずはCgroupをインストールしてApacheがアクセス可能なグループを作成しときます。 # yum install -y libcgroup libcgroup-devel # chkconfig cgconfig on # service cgconfig start # mkdir /cgroup/cpu/apache # chown -R apache:apache /cgroup/cpu/apache # ls -l /cgroup/cpu/apache/ 合計 0 –w–w–w-. 1 apache apache 0 7月 19 23:02 2015 cgroup.event_control -rw-r–r–. 1 apache apache 0 7月 19 23:02 2015 cgroup.procs -rw-r–r–. 1 apache apache 0 7月 19 23:02 2015 cpu.cfs_period_us -rw-r–r–. 1 apache apache 0 7月 19 23:02 2015 cpu.cfs_quota_us -rw-r–r–. 1 apache apache 0 7月 19 23:02 2015 cpu.rt_period_us -rw-r–r–. 1 apache apache 0 7月 19 23:02 2015 cpu.rt_runtime_us […]

Rubyの未来を感じるようなmod_mrubyでApacheと戯れてみる

今回はmod_mrubyを使ってApacheと戯れたいと思います。 mod_mrubyとは、ペパボのMATSUMOTO Ryosuke氏が作成されたApacheのモジュールで、Rubyを使ってApacheのモジュールが作れるという代物のようです。 「ApacheモジュールをRubyで効率良く実装するためのApacheモジュール。」とのことです。 Apacheのモジュールを作る!なんて敷居が高くて全く手を出したことも考えたこともなかったわけですが、見ながらちょこっと弄くるくらいなら出来そう? ってことで、やってみますか。 まずは、それどこ情報?どこ情報よー?(・∀・) 人間とウェブの未来 mod_mrubyインストール後入門 http://hb.matsumoto-r.jp/entry/2014/12/09/123816 200万 Webサイトを支える ロリポップ!と mruby https://speakerdeck.com/harasou/200mo-websaitowozhi-eru-roripotupu-to-mruby 上のリンクからの情報です。 最初に書いておきますが、新しい試みはしていません!スパーン 参考サイトを見ながら動かしながら、ワクテカしながら挙動を見てるだけです。 参考サイト一覧 Githubのページ matsumoto-r/mod_mruby Apacheによるバーチャルホスト構築レシピ mod_mruby編 ようへいの日々精進XP  mod_mruby を試してみる Qiita cs_sonar Apacheのmod_vhost_aliasでログをバーチャルホスト単位で分割できない問題をmod_mrubyで解決する そいではまずはインストールからいきまっする。 サーバーはこないだSuexec環境のテストに使っていたちょっと古いCentOS6を使います。 この事が後に重大な問題に! 関連記事 それもいいんじゃないでSKY Rubyはrbenvで最新のバージョンをインストールしました。 あとbisonとhiredis-develをインストール。 わりと重要なのがSELINUXを無効化する。 無効化しておかないとハマるぜ!m9(^_^) っと、ここでハマったのが10行前で言ってた重大な問題でした。 終。 続き。 $ git clone git://github.com/matsumoto-r/mod_mruby.git $ cd mod_mruby $ sh build.sh *** Warning: Linking the shared library src/mod_mruby.la against the *** static library /root/mod_mruby/mruby/build/host/mrbgems/mruby-redis/hiredis/lib/libhiredis.a is not portable! *** Warning: Linking the shared library src/mod_mruby.la against the *** static library ./mruby/build/host/lib/libmruby.a is not portable! mod_mruby building … Done build.sh … successful # make install /usr/sbin/apxs -i -a -n ‘mruby’ /root/mod_mruby/src/.libs/mod_mruby.so /usr/lib64/httpd/build/instdso.sh SH_LIBTOOL=’/usr/lib64/apr-1/build/libtool’ /root/mod_mruby/src/.libs/mod_mruby.so /usr/lib64/httpd/modules /usr/lib64/apr-1/build/libtool –mode=install cp /root/mod_mruby/src/.libs/mod_mruby.so /usr/lib64/httpd/modules/ libtool: install: cp /root/mod_mruby/src/.libs/mod_mruby.so […]