読者です 読者をやめる 読者になる 読者になる

notebook

都内でWEB系エンジニアやってます。

Bower

実際に使ってみたのでメモとして残しておきます bowerはフロントエンドパッケージマネージャと言われているようです jqueryとかangularとかそういうのをまとめて管理できるようにしたツールというイメージ rubyでいうbundlerとかに近いイメージですね bower…

リザーブドインスタンス(RI)

aws

AWSを利用しているなら使ってないほうが少ないと思われるサービス RIについて知る機会があったのでメモ コスト計算は下記 SIMPLE MONTHLY CALCULATOR 概要 あらかじめ使用すると決まっているインスタンスのリソースを契約することでボリュームディスカウント…

cheat + pecoで即実行

前回 cheatを使ってよく使うコマンドとかを出せる話をしました これをpecoと組み合わせるだけでコマンド貼り付ける手間もいらなくなるじゃないか! ということでやってみました チートシートの書き方は下記のようにコマンド以外の行には「#」をつけることで…

cheatシート

長めのワンライナーとか、よく使うけど1からタイプするには長いし、覚えられないし..... 結構使うけど忘れがちなコマンドオプションとか、manを読んで探すのも長くて面倒だし..... 自分で作ったコマンドの使用例は、毎度コード読んで使い方思い出したり.....…

td-agent2を使ってみる

FluentUIを使ってみたい! 色々面倒なことになる前に、バージョン上げたい! ということで試してみました。 環境: CentOS6.4 参考 Treasure Agent(td-agent)の1と2の今後 設定ファイルは後方互換性があるようなので問題ないらしい なにはともあれ使ってみま…

xargsで連番ファイルを処理する

調査とかでこんな感じのファイルに対してgrepなりしたりする場合 access_log.2015-08-01.gz access_log.2015-08-02.gz access_log.2015-08-03.gz access_log.2015-08-04.gz access_log.2015-08-05.gz access_log.2015-08-06.gz access_log.2015-08-07.gz acc…

elasticsearch unassignedになってしまったシャードの割り当て

elasticsearchを運用していて、たまにshardの割り当てがうまくいかずにずっとunassignedのままになってしまうシャードが出てきた時 一件づつならelasticsearchのAPIを利用して下記コマンドで解決できます curl -XPOST 'http://10.0.21.60:9200/_cluster/rero…

Apache Spark(spark-submit)

ファイルからの実行 前回はspark-shellをとりあえず使ってみたので今回はそれをまとめてjarファイルから実行したいと思います Quick Start 上記参考に一連の流れをまとめてプロジェクトにして実行してみます レスポンスコードのカウント sample.scala packag…

apache sparkを使ってみる

scala を使ってみたいなということでscalaで書けるsparkを見てみたいと思います javaが入っていることが前提 今回はopenjdk1.8をインストールしてます scalaのインストール $ rpm -ivh http://downloads.typesafe.com/scala/2.11.6/scala-2.11.6.rpm $ scala…

MkDocsでドキュメント管理

メモとか、ブログの原文とかをmarkdownで保存していたのですが、管理方法をどうしようかと思っていたところでたまたまMkDocsの話を耳にしたので試してみました カスタマイズも設定も簡単にできるし見た目も十分なのでローカルでのmarkdownドキュメント管理を…

elasticsearch シャードとか、インデックスとか

運用で使いそうなコマンドとか インデックス操作 インデックス一覧 インデックス一覧を取得する pretty で見やすく改行してくれる curl -XGET http://localhost:9200/_aliases?pretty curatorを使ったほ方が楽に確認できる monitorで始まるインデックス全て…

php update作業

php

5.3.10 -> 5.6.10 もはや、化石と化したシステムのメンテ 特にフレームワークを使っているわけでも難しいことをやっているわけではないので特に問題はなかったけど、色々作業はしたのでその時のメモ テスト環境 コンパイルオプションの確認 $ php -i | grep …

embulkでmysqlからelasticsearchに送ってグラフ化

以前embulkでCSVからelasticsearchへというのをやってみました サービスのデータからグラフ作成したいとかそういった場合に、MySQLからデータ取ってきてelasticsearch+kibanaですぐ確認できるよねっていうことを思いついたためやってみた embulkのインストー…

fluentd + elasticsearch ではまったところ

fluentd + elasticsearch + kibana fluentd+elasticsearch+kibanaを導入してみたのですが色々と詰まったところがあったのでこの機会に残しておきます elasticsearchへの転送 dstatはすでにあるし、あとはcopyしてelasticsearchに流すだけだし余裕っしょ♪ と…

カスタムメトリクスを使ってみる

aws

AWSのCloudwatchで色々な値が見れますが、そんなに多くありません、そこでカスタムメトリクスを使って知りたいデータを計測しましょうっていうお話 なにはともあれ使ってみました アクセスできるようにする まず、CloudwatchへEC2からアクセスができるように…

ansible-galaxyにroleを上げてみる

plenvのroleがないかansible-galaxyを見ていたらなかったのであげてみました 公開するほどのものでもない気もしますが何事もやってみないとねということで どこかで誰かのお役に立てれば幸いです ロールの作成 ディレクトリの作成 $ ansible-galaxy init ple…

mysql slow-logのlogrotate

mysql slow-logのlogrotate 今まで動いていたログローテーションが動かなくなったので何だと思って調べたら色々はまったのでメモ $ ls -al /var/lib/mysql -rw-rw---- 1 mysql mysql 0 May 14 04:08 mysql-slow.log -rw-rw---- 1 mysql mysql 7416685154 May…

EC2 で Elasticsearch + kibana

EC2 で Elasticsearch + kibana 何番煎じかって話ですが、やってみて初めて分かることもあるのでまとめてみます EC2でelasticsearchのクラスタ構成+kibanaをやりましょうってやつです 結局以前使ったansibleにちょっと修正を加えてやることにしました ansibl…

embulkでelasticsearchへ過去のログを入れ込む

embulk使ってみる fluentd + elasticsearch + kibanaをやってみたいなと思い既存のログからデータ突っ込めないかなと思い探してみたらちょうどよさそうだったので試してみました。 fluentdのバッチ版と言われているようです 手順もほとんど下記見ながらやれ…

# ansibleでelasticsearch + kibana4

ansibleでelasticsearch + kibana4 経緯 ログのvisualizeしたいよね kibana使ってみよう!4が出てるみたいだ! という感じでやることになったのですが、クラスタ構成での検証とか何かと作っては壊してっていう作業が行えたほうが便利そうなのでansibleでぱぱ…

#ansibleでcrontabの制御

ansibleでcrontabの制御 cronモジュールがあるみたいです 実際にいじってみました --- - hosts: test-servers tasks: - name: execute perl script cron: name="execute perl script" minute="0" hour="5,2" job="perl script.pl" state=present - name: ls …

mongoDBを使ってみる

mongoDBを使ってみる インストール /etc/yum.repo.d/10gen.reop [10gen] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686 gpgcheck=0 enabled=1 インストール yum install mongo-10gen mongo-10gen-server 起動 /et…

mysqlの運用の対応とかのメモ

メモが残っていたので取りあえず上げておきます slaveの昇格とextrabackupを用いたリストア作業 よく見たら実運用だともっと厳密にやらなきゃいけない作業は結構ありますね slaveのmaster昇格 想定 現在の構成(master:1,slave:1)で、masterサーバで何らかの…

ansibleでサーバ再起動

ansible httpdサーバ再起動 バックエンドサーバがある程度増えてくると手動で再起動していくのはとても面倒になってきます デプロイツール使えばいいって話なのですが、今回はansibleを使ってみようということで試みてみました 何のことはなく簡単でした。 -…

logrotateで古いログの処理

logrotateを使って古いログの移動 長いこと運用しているとシステムのログがたまってくると思います。 ログはローテーションするけどたまっていく一方。。。って時にcronで定期的に移動するとか手動で移動するとか色々手段があると思いますがログをローテーシ…

begins to drop messages from pid

ログの紛失 とある調査でたまたま気づいたので残しておきます あるWEBサーバのログで分間どのくらいアクセスがあるか調べていたのですが、どうやっても分間2000件前後までしかアクセスが記録されていないという状況がありました。 apache.workerが動いている…

awkでカジュアルなログ集計

awkでワンライナー( ログ集計 ) ちょっとしたログを集計したりする場合に、いちいちスクリプト書いて実行するのはめんどうですよね、そこでawkの出番です。 シェルコマンドと組み合わせて割と簡単に集計ができます。 いつも書き方忘れていちいち調べてるので…

fluentd + dstat + growthforecastではまったところ

fluentd + growthforecast + dstat AWSの環境だとcloudwatchは2週間しかデータもてないので長期的にグラフが見たい場合に困ります そこで、お手軽にできそうなfluentd + dstat + growthforecastを試してみようってことで、そのときのメモ fluentd fluentdを…

nginxの状態を取得する

nginxの状態を取得 stub_status ちょっと前にnginxが今どのくらいのコネクション数なのかの数値を取得したいと思うことがあって、調べたところstub_statusなるものが見つかったので実際にやってみました。 まず、HttpStubStatusModuleが有効になっている必要…

ansible でgrowthforecast + daemontools

ansible でgrowthforecastを起動するまで 業務でgrowthforecastでも入れようかって話が上がってたのでちょっとやってみました。 下記を参考にしました。(というかほぼこp。。。。) Ansible で Growthforecast をインストールする方法 まるコピしたら勉強す…

memcachedでトラブル?

障害が起きた時の話 現象としては処理の詰まり 結構何度か起きていたんだけど今までは 分間2000アクセスくらい発生(MySQLの同一レコードへのupdateが発生) 同一レコードへのロックが発生してロック待ち バックエンドの同時接続数がオーバーしてアラート って…

CIDRの範囲指定

CIDRの範囲指定 CIDRについてよくググることが多いなと思ったのでメモ Net::IP CIDRに関してあれ?と思った時などに確認する時とか使えそうなコマンドが入ってるモジュール(Perl) yum でもインストールできるよう yum install perl-Net-IP とても便利 ipcoun…

mysqlのレプリケーション

MySQLのレプリケーション設定 基本的なレプリケーションについて、master-slave1台づつの構成をサンプルにしてます。 master(192.168.1.11) slave(192.168.1.12) masterの設定 レプリケーション用ユーザーの作成 slave(192.168.1.0/24)からserver2というユー…

fluentdでサーバ間通信

fluentdでサーバ間通信 めちゃくちゃいまさら感があるけどfluentdの勉強 今回はwebサーバ(送信側)、logサーバ(受信側)で分けてみます 構成 送信側 192.168.60.11 192.168.60.12 受信側 192.168.60.13 環境はCentOS6.4 インストール,起動 シェルスクリプト一…

ansibleを使ってみる

ansible 使ってみる 最近会社でもはやっていたのでとりあえず使ってみました。 python2.6以上があればクライアントに特別に何かインストールする必要もないみたいだし、記述はYAMLファイルだし、結構とっつきやすいのかなという印象だったので試してみます。…

シェルスクリプトで変数の値を変数として扱う

シェルスクリプトで変数の値を変数として扱う シェルスクリプトを書いていて変数の値を変数として扱いたいみたいな状況が出てきてちょっとはまったのでメモ オプションによって使う変数を変えたい場合などに有効かなと思います。 実行時にsh test.sh aaaと入…

markdownでプレゼン

markdownでプレゼン Cleaverを使ってみる Cleaverとは markdownファイルを使ってプレゼン資料にするためのツール インストール コマンド一発でインストール可能 npm instlal cleaver node.js npm が必要 スライド作成 通常のmarkdownと違うところ 最初にスラ…

vagrantでsandbox

sandbox機能 saharaをインストールする事でVMの状態を任意の状態に戻したりできるようになります。(スナップショット的な) VMだから失敗したら作り直せばいい、とはいっても色々作業して失敗したら面倒なので便利ですね。 さっそくやってみます saharaのイン…

ag.vimを使ってみる

vim

agを使ってみる ふとしたきっかけでSilver Searcherってのを知ったので使ってみました。 今までackを使っていたので1文字短縮できるぜ!とか思ったり思わなかったりw ag.vimを使ってみたかったというのが目的 vimgrepより使いやすいかなと個人的には思いま…

mod_rewriteでReverseProxy

mod_rewriteでReverseProxy reverse proxy apacheのworkerでバランサ、backendにサーバが何台かある状態でサブドメインによって振り分け先を変えたいという用件がありました。 ググると最初はVirtualHostでやるみたいなのが一般的みたいだったので僕も乗っか…

IPから国を地域を判定

IPから国を地域を判定 簡単だけど備忘録がてら.... IPをが分かっていてそのアクセスがどこのIPか知りたいみたいな案件がありました。 MaxMind社のGeoIPというものを使ってIPにひもづく国や地域の情報を取得する事が出来ます http://www.maxmind.com/ 今回は…

proverc

.proverc plenv環境でテストする際にperlコマンドだとテストが通るのにproveだとモジュール無いよって怒られることがありました。 perlで参照する@INCとproveで参照する@INCが違うってのが原因っぽい 該当モジュールをperldoc -lで検索しても存在するし、何…

# plenv

plenv導入 git clone git://github.com/tokuhirom/plenv.git ~/.plenv echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(plenv init -)"' >> ~/.bash_profile exec $SHELL -l git clone git://github.com/tokuhirom/Perl-Buil…

vagrantでbox操作

vagrant でboxの操作 さて、vagrant入れました、ちょっと使ってみました、ってなると今度はchefとかpuppetなどをいじってみたくなります。 ただ、自分の環境がwindows環境なので調べてみた感じ結構面倒そうな感じがしたので、とりあえずboxをごにょごにょし…

vagrant で複数VMを起動する

vagrant で複数VMを起動する vagrantで複数VMを起動することで簡単にそれなりの実験環境を作る事ができます。 これができる事で一台がWEBサーバ、もう一台がDBサーバ、のような環境が簡単に作れてしまう! vagrantで複数VMを起動するにはvagrantfileを編集し…

windowsでvagrant環境を動かしてみる

windowsでvagrant環境を動かしてみる 結構よく見かけるしググれば出てくるし思ったより簡単にできたけど一応残しておこうかと これでもう少し仕事を早く進めたい! http://kazuph.hateblo.jp/entry/2013/02/05/234243 http://d.hatena.ne.jp/naoya/20130205/…

Text::QRCodeのインストール

当たり前なはずなんだけどちょっとはまったのでメモ plenv環境でHTML::Barcode::QRCodeをインストールしようとして依存モジュールのText::QRCodeでこけた Package libqrencode was not found in the pkg-config search path. Perhaps you should add the dir…

CentOS6.4にMySQL5.6をインストール

CentOS6.4にMySQL5.6をインストール 今回はrpmで入れました wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar tar xvf MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar rpm -ivh MySQL-devel-5.6.15-1.el6.x86_64.rp…

tmuxで複数ペインに対してコマンドを送る

tmuxで複数ペインに対してコマンドを送る 最近担当サービスの本番サーバ台数が増えてきました。 リリースでの再起動だったり、調査ですべてのサーバの様子見に行ったりする事があったのですが毎回対象サーバにsshして.....っていう流れが面倒になってきまし…

アクセスログから時間ごとのアクセス数を集計する

アクセスログから時間ごとのアクセス数を集計する cat access_log | grep -P -o 'Dec 12 \d{2}:' | sort | uniq -c 特定のアクセスでカウントしたい場合はcatをgrepにしてパイプで渡す感じにすればOK grep 'path' access_log | grep -P -o 'Dec 12 \d{2}:' |…