AWS Summit Tokyo 2014で発表してきました
表題のとおりです
色々あって発表する機会を頂けたので行ってきました
同期と一緒に20分ずつの発表でした
本番前は論文発表会以来の緊張で, まだまだ変わってないなと思いました
内容はGlusterFSやSerf, Dockerといったものを組み合わせた自動化についての話しました
私のパートはより技術的な視点からの話が多かったのでどうかなと思っていましたが, Twitterを見ている限り来場者の方々には楽しんでいただけたようです
色々ありましたがご協力頂いた皆様ありがとうございました
資料はいずれ公開する予定です
2014年の抱負
あけましておめでとうございます
って言ってももう三が日も終わってますが(笑)
早速ですが今年の抱負でも書かせていただきます
今年は「焦らず」に行こうと思います
去年は特に夏頃から色々なことに手を出して結果あまり大成しませんでした
今年は一つ一つをもっと丁寧にみて, また周りに流されずに自分の範囲で結果を残して行ければと思います
といっても春頃にまた色々慌てていそうですが(笑)
そんなこんなでことしも技術・趣味色々なことを書いていきます
今年も宜しくお願い致します
Fluetdでタグを動的に変更してやる
# gem install fluent-plugin-record-reformaer fluent-plugin-rewrite-tag-filter
<match tagA> type type record_reformer output_tag temp_rewrite newtag hogehoge.log </match> <match temp_rewrite> type rewrite_tag_filter rewriterule1 newtag hogehoge rewrited_tag </match> <match rewrited_tag> type file path /var/log/td-agent/test.log </match>
例えば, Redshiftのpuginを使用するとして, tag名とテーブル名で対応させたいときってあると思います。
もしtagに[/, .]等が入っている場合Redshiftにそのままテーブル名として使うことが出来ません。
そこでそれらの記号を[_]で書き換えたいと思います。
<match tagA> type type record_reformer output_tag rw_first newtag hogehoge.log </match> <match rw_first> type rewrite add_prefix rw_second <rule> key newtag pattern (\.|\/)$ replace _ </rule> </match> <match rw_second> type rewrite_tag_filter rewriterule1 newtag hogehoge rewrited_tag </match> <match rewrited_tag> type forest subtype redshift <template> table_name ${tag} </template> </match>
FuelPHPとFluentdを連携させてみる
- ライブラリの取得
- packagesの準備
- Observerの設定
1. ライブラリの取得
2. packagesの準備
fuel/packages/fluentd/bootstrap.php
<?php require_once __DIR__.'/vendor/Fluent/Autoloader.php'; Autoloader::add_classes(array( 'Fluentd\\Observer_Td' => __DIR__.'/classes/observer/td.php', ));
fuel/packages/fluentd/classes/observer/td.php
<?php class Observer_Td extends \Orm\Observer { public function after_save(\Orm\Model $obj) { $save_data = array(); foreach(array_keys($obj->properties()) as $p){ $save_data[$p] = $obj->{$p}; } $instance = new \Fluent\Logger\FluentLogger(‘localhost’,’24800’,array(),null); $instance->post(’tag_name_for_fluentd’, $save_data); } }
3. Observerの設定
<?php class model { protected static $_observers=array( 'Fluentd\Observer_Td'=>array( 'events'=>array('after_save') ) ); }
これでmodelでsaveメソッドが実行された時にsaveされたデータをFluentdに 渡すことが出来ます
PHPのMemcachedモジュールをインストール
PHPのMemcachedモジュールを入れるときにハマりました
# yum install memcached libmemcache libevent-devel
これでMemcacheの準備OK
# pecl install memcached
# echo 'extension=memcached.so' >> /etc/php.d/memcached.ini
これで入ったと思って以下のコマンドで意気揚々と確認
こんなWarningが出ていた
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so: undefined symbol: memcached_touch in Unknown on line 0
ん?????
PECLで失敗した?
pecl.php.netからmemcachedの最新版をダウンロードし,
# phpize
# ./configure
# make
# make install
今度こそと思い確認
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so: undefined symbol: memcached_touch in Unknown on line 0
ええええええ
Googleで検索してみるも情報が全然出てこない
古いバージョンのインストールを試しても一向に変わらない
諦めていたその時, githubにそれっぽいものが!!!
https://github.com/php-memcached-dev/php-memcached
ログ見たら同じWarningを直しているっぽい
早速試す
# git clone https://github.com/php-memcached-dev/php-memcached.git
# cd php-memcached
# phpize
# ./configure
# make
# make install
どうせ・・・と思いつつ確認
Warningがでていない!!!!!!!
というわけで3時間位ハマった問題も無事直りました
パッケージのバグもgithubで直される時代なんだなと今更ながら思いました
githubバンザイ!!!!!
これからはgithubも探すようにしよう
ISUCON3にPHPerが参加した<本戦>
前回の記事からしばらく経ちました
昨日前回書いたISUCON3の本戦に出場してきました
結果は測定に失敗してしまってFAILでした
いやいや, 悔しい
せめてスコアは出しておきたかった
帰ってきてから悔しさが倍増してしまって, Jenkinsで色々遊んでしまいましたw
という訳で本戦のまとめでも
- 内容
- 画像版Twitter
- とにかくたくさんの画像をImage Magicがゴニョゴニョしてる
- アプリケーションの入ったサーバ1台 + その他のサーバが4台渡される
- 思ったこと
まあ結論から言うと勉強不足です
来年も出場して今度こそPHPerの地位を向上させたいと思います