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

notebook

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

angular2でサンプルアプリを作ってみる

とりあえず起動させてみるのとbootstrapを使えるようにします インストール npm install -g angular-cli ng --help Cannot find module 'rxjs/symbol/observable' Error: Cannot find module 'rxjs/symbol/observable' 依存モジュールをインストール npm ins…

elasticsearch5を試してみる(on Docker)

手元の環境でdocker使って試してみた CentOS7.2にdockerを立ててその中にelasticsearchを立ち上げた感じです 単純にDockerfileのバージョン指定を5に上げただけでは動きませんでした。 そもそもkopfとかHQとか入れていたのですが、そういうプラグインは別の…

railsアプリのログ(複数行)を整理する

なんでもかんでもRailsのLoggerに投げているといろんなログが一つのファイルにまとまってしまって調査、分析が時間がかかったりストレスになっていたので内容によって出力するファイルを分類するようにした時のメモ 集約したログをいったんファイルに保存し…

grep,awk,nkf,jq,perlでバッファしないようにする

grep,awk,nkf,jq,perlでバッファしないようにする ログをtailして整形して流す際にどっかで出力をバッファしてしまって本来流れている部分全てが表示されずに困ってしまうことがあったので調べてみました grep おなじみgrep grep --line-buffered hoge awk …

pecoを使った便利な設定などのまとめ

pecoを使って色々フィルタリングして便利なターミナル生活を過ごすためのメモ 調べればたくさん出てくるのであえてまとめる必要もないかもしれないけど、ある程度自分が使うように微修正したりしたのでまとめて残してみます gitのブランチをフィルタリング …

16進数でフラグを管理する

最近かかわったプロジェクトですごいなと思ったので残しておく 1週間のスケジュールを曜日ごと、さらに時間ごと,24時間でフラグを持たせて動作を変えたい時などに使う感じ 月水金曜日の13時にフラグをセット!みたいなことができる DB上の一つのカラムにフラ…

botkitでサーバに対して任意のコマンドを実行できるようにする

出先でサーバに対してコマンド打てないのがストレスだったのでslackから本番サーバにコマンド打てるようにしました 今回はbotkitを使っています hubotは有名ですが今更cofeescriptを覚える気にならなかったので他のものを探していたところちょうど手頃な感じ…

json serverでAPIモックを自由自在に操る

jsonファイルを用意するだけでAPIとして機能させることが出来る mock用のREST APIを簡単に立ち上げることが出来ます フロントエンド開発時やアプリ開発時にバックエンドの実装を待たずに開発に入ったりなんて事ができそうですね typicode/json-server 実際に…

複数configサーバで動かしてみる

「configサーバも複数あるべき」みたいな話だったのでレプリカセットを組んでみました mongoDBのクラスタ環境をいじってみる - notebook swfz.hatenablog.com レプリカセットを試す - notebook swfz.hatenablog.com シャーディング + レプリカセット - noteb…

シャーディング + レプリカセット

ここら辺を参考に試してみる mongoDBでシャーディング+レプリカセットしてみる - Qiita qiita.com シャーディングとレプリカセットを組み合わせて構築する 構成 レプリカセットの構築 rs1,rs2を作っていく # rs1 sudo mongod --port 27041 --dbpath /data/m…

レプリカセットを試す

全てmongodで起動する どのサーバがPRIMARYか決めるのはreplicaset内で投票して決める 全サーバのうち過半数を超えたサーバがPRIMARYになる 一般的にはPRIMARY,SECONDARY,ARBITER(データを持たない投票のためだけのサーバ、調整用)の最小構成になる 今回はPR…

mongoDBのクラスタ環境をいじってみる

今回は業務で扱う必要が出てきてしまったため急場しのぎですがmongoDBをやっていきます いきなりシャーディング+レプリカセットとかいろんな概念が一気に入ってくるとわからなくなってしまいそうなので一つづつ理解していくようにしていく また、各種ノード…

CLIからEC2を起動する

aws

terraformとか使いたかったけど急いでたのと、インスタンスの数的にGUIぽちぽちがつらくなりそうだったのである程度固定してコマンド一発で起動できるようにする CLI経由だとjsonを直接かけるがファイルを読み込ませてAPIを叩くのが良さそう スケルトンの生…

proxyサーバを立ててみる

概念自体は知っていたけど実際にやってみたことがなかったのでとりあえずやってみる 記事上ではIPは適当な値に書き換えています あらかじめ適当なサーバを立て(52.111.111.111)、nginxを起動させておく アクセスログのフォーマット とくにデフォルトのままい…

slack APIでコードスニペットを投稿する

ちょっとしたコードとか調査の途中経過などの結果を共有するときとかよくslackに投げたりすると思います そんな時に、いちいち結果をコピーしてslackに投げるのって地味に面倒ですよね いろいろ調査、コマンドライン上で結果をslackへ投稿! 簡単なコード書…

Re:dashを使ってみる

docker-composeのファイルもあるのでとりあえず試してみる 当ブログへのアクセスはGoogleAnalyticsでアクセス解析しています そのデータをmysqlに突っ込んでグラフを表示したいと思います インストール curl https://raw.githubusercontent.com/getredash/re…

postgresqlでバックアップ、リストア

redashをdockerで使ってみたときにpostgresをちょっと触ったのでその時のメモ 基本的な使い方からバックアップ、リストアまで dockerの使い方とかに関しては割愛します コンテナはpostgres9.3のイメージを使いました FROM postgres:9.3 コンソール操作 とり…

mongoDBでクエリログを流す

mongoDB起動時 下記をつけて起動させればOK /urr/bin/mongod --profile=2 --slowms=1 --profile プロファイルのレベル 1: 閾値以上の時間のかかったクエリを残す 2: 全てのクエリを残す --slowms 閾値(ms) コンソールから $ mongo db.setProfilingLevel(2,1)…

minioを使ってS3の環境をローカルで再現する

aws

minio S3互換の環境を立ててくれるS3のクローンプロダクトだそうです minio/minio: Minio is an object storage server compatible with Amazon S3 and licensed under Apache 2.0 License github.com 開発環境などでS3を用いたCIをまわすときとかに料金を気…

docker-compose でHOSTごとに代わる設定を適用する

今回はdocker-composeを使ってもう少し色々やってみます 例としてdockerでmkdocs + elasticsearchを起動し、mkdocsのテキストをelasticsearchから検索できるようにします やることは2点 docker-compose起動(環境変数経由でhost ipを渡す) Dockerfile内で環境…

ansibleメモ(サンプル集)

ansible2.1を触ってみたのでそのメモ 開発環境の構築をansibleで出来るようにplaybookを書いたのでそのときにメモしたものです といいつつ2.1の変更点というよりは1系でも書けるもののほうが多いです factのリスト $ ansible -i hosts hostrole -m setup 192…

docker-composeを使ってみる

とりあえず使ってみる 環境 CentOS7 CentOS6だと色々制限あったりちょっと面倒になってきたのでCentOS7でやってみます dockerのインストール yum install docker $ docker version Client: Version: 1.9.1 API version: 1.21 Package version: docker-common…

CentOS6でdockerを動かせるようにする

長いこと逃げてきたdockerですが色々と便利そうな感じになっているみたいなのでまずは触ってみようということでやってみます インストール epelリポジトリから取得できます yum install docker-io -y --enablerepo=epel $ docker version Client version: 1.…

activator で jarファイルを作る

プロジェクト作成 $ activator new Choose from these featured templates or enter a template name: 4) minimal-scala Enter a name for your application (just press enter for 'minimal-scala') > jarsample $ cd jarsample build.sbt 下記追加 //impor…

apexを使ってlambda functionの管理

serverlessとapexがあるようですがなんとなくapexを使ってみます github.com インストール curl https://raw.githubusercontent.com/apex/apex/master/install.sh | sh プロジェクトの作成 apex init Enter the name of your project. It should be machine-…

dynamoDB-localでローカル開発環境を整える

【AWS発表】 デスクトップ開発を可能にする DynamoDB Local dynamodbをローカルで扱えるようにするものだそうです 早速やってみます インストール awscliもインストールします pip install awscli 公式からダウンロードします DynamoDB Local curl -LO http:…

Auto Scaling(lifecyclehook)を使ってみる

aws

いまさらながらEC2でAutoScalingをやってみました そのときのメモ 要件 VPC内のバッチ処理をするサーバのスケーリング 忙しい時間帯が決まっているのでその時間帯のみスケールアウト スケジューリング lifecyclehookを使ってスケールイン時に処理の正常終了…

git hook を使って静的サイトを自動でデプロイする

git

git hookを使って更新ファイルの内容次第でpush前にテストやデプロイを行うようにします middlemanで作成したプロジェクトで、静的サイト用のファイルがpushされようとしているときにhookを使ってデプロイ作業も行ってしまおうというものです 実際に行うプロ…

middlemanを使ってみる

middleman 静的サイトジェネレータといわれているものの中の一つです 日本語の公式があるのもありがたいですね 今回はダーツの自宅練習用のスコア管理のページをmiddlemanで作ってみます 下記ダッシュボードテンプレートを使って見た目にあまり時間とらない…

jenkinsでコードメトリクス、カバレッジレポートの表示

jenkinsを使って自動テストをまわせるようにしたので、もう少し色々やってみます 今回もperlのプロジェクトでの話 テスト結果の集計 テスト結果の推移を表示する TAP::Formatter::JUnitを用いてJUnit互換のテストスイートを作成 シェルスクリプト prove -Ili…

jenkinsを導入してCIをまわす

いまさら感が半端ないですがやっと古くからあるプロジェクトでテストコードを書くようになってきたのでそろそろCIを回していく必要があるよねということで導入してみました とりあえず導入からslack通知まで まずは、テストがいつ壊れたかわかるようにすると…

embulkでgemをバージョン固定する

embulkでgemをバージョン固定する 参考の記事をそのまま実行しただけではあるが残すために書いておきます サーバを再構築する機会があったので新たにembulkとプラグインをインストールして実行したらあっさり死んだ 現状elasticsearchのバージョンが1系の場…

MkDocsにプレゼンテーション機能をつける

今回はMkDocsで生成したサイト内にプレゼンテーション機能をつけたいと思います 動機 MkDocsでスライド用資料も管理したい 資料もプレゼンも一箇所で閲覧できるようにしたい(某wikiと同様) ということで、すこし調べてみた結果割と簡単にできそうだったので…

mkdocsの検索を日本語に対応させてみる

mkdocsのサイト内検索で日本語検索に対応していないという話があったので対応させたいなと思い調べてみた 中身を読んだらlunrという全文検索ライブラリを用いているよう jekyllにもlunr.jsを使ったプラグインがあるようで結構有名なのかな で、このlunr.jsが…

Cloudwatch + SNS + SQS でSlackへ通知

ChatOpsの一環としてサービスのアラートをSlackに投げれるようにします さっと調べた感じ今だとCloudwatch -> SNS -> Lambda -> Slackというのがlambda to slackのblueprintもあるので楽そう + 使ってみたかったのですが担当サービスがそもそもlambdaが使え…

cloudwatch alarm を cliから登録する

下記参考にたたいてみました put-metric-alarm Diskスペースが80%以上使っていたらSNSに通知を飛ばす設定 aws cloudwatch put-metric-alarm --alarm-name testalarm \ --comparison-operator GreaterThanThreshold \ --threshold 80 \ --alarm-description t…

Net::Google::Analytics でページごとのpageview数を取得する

ブログをやっているとアクセスとか気になったりしますよね? 記事毎のPV数だったりはてぶ数だったり... GoogleAnalyticsから見れば。。。でもよかったのですが、ブログのURL毎のPV数とかを一覧で出したいといった場合にちょっと不便だったのでGoogleAnalytic…

puttyのターミナルカラーを自分好みにを変えてみる

Atomのcolorschemeを見ていたらいいなと思うカラースキームがあったのでのぞいてみました lucario よく見たらターミナルの色も変えられる!はずがWindowsでputtyでの環境には対応してない模様・・・ solarizedでputtyに対応する方法はいくつか載っていたので…

CSVや標準入力からのデータをSQLライクに集計

q CSVファイルや入力に対してSQLを実行できるというとても便利なツールらしい q install CentOS6.4にインストールしてみます rpm -ivh https://github.com/harelba/packages-for-q/raw/master/rpms/q-text-as-data-1.5.0-1.noarch.rpm 導入 何はともあれ試し…

jqとAWS CLIでautoscaling groupのprivate ip addressを取得するワンライナー

aws

オートスケーリンググループで今アクセスできるインスタンスのプライベートIPが欲しかったのですがAWS-CLIを組み合わせなくてはいけないようだったのでワンライナーで書いてみました やる事は二つ オートスケーリンググループのインスタンスIDを取得 リクエ…

Simple Quere Serviceを使ってみる

autoscalingの通知先として選べるので使いそう、ということで触ってみました やってる事はいたってシンプルです cliでqueueへメッセージを登録、同じくcliでqueueからメッセージを取得するだけ 事前にコマンドを発行するEC2にIAM Roleを適用させておくかcred…

supervisor3

kibanaをデーモン化したときに使うことがあったのでメモ kibanaのインストールに関してはここでは触れません CentOSのyumだと2系がインストールされるのでrpmを持ってきて直接インストールしました インストール --script-dirを入れているのはAmazonLinuxで/…

rundeck EC2 plugin

rundeckのEC2プラグイン rundeck ec2 plugin EC2上のノードを自動的に探してrundeckのノートして扱う事が出来るプラグイン いちいちリソースファイルを更新しなくていいっていうとても便利そうです、早速使ってみます install 最新版を取得し$RUNDECK_BASE …

fluentd+embulk+elasticsearchでクエリパラメータを可視化する

アクセスログで、クエリパラメータで集計したいという要件があったのでembulkを使ってみました そもそもfluentd -> elasticsearchの時点で何とかできるかなと思ったものの 既に動いてるものに変更を加えるのが手間だった いまいちいいやり方を見つけられなか…

シェルスクリプトでslackへ通知を送ってみる

日々の業務で「これ人力でやる必要あるの?」みたいなものって結構ありますよね そんな面倒な確認や告知は自動化してしまいましょう という事で今回はslackのincoming webhooksを使ってslackへ通知をしてみます slack integrationの設定 Incoming WebHooksの…

rundeck + slack

rundeckでjobの一元管理が出来るようになりました。 次は通知が欲しい!となりますよね。 デフォルトでメール送信機能やwebhook機能がついていますがwebhookに関してはURLしか指定できないのでPOSTで色々送るということが出来ないようです 職場でもちょうどs…

rundeckインストールメモ

仕事で使ってみようということで実際にインストールしてみたメモ インストール java yum install java rundeck rpm -ivh http://repo.rundeck.org/latest.rpm yum install rundeck 設定の変更 /etc/rundeck/rundeck-config.properties #grails.serverURL=htt…

1時間以内に解けなければプログラマ失格となってしまう5つの問題をscalaで

1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に 今更ながらscalaの勉強を兼ねて実際に解いてみました intellijのscala worksheetを使いましたがとても便利ですね 問題1 forループ、whileループ、および再帰を使用して、リスト内の数…

RDSでslow-logを出力する

RDSのデフォルトではslowlogを出すような設定にはなっていないので出す場合は別途設定が必要です マネジメントコンソールのparameter groupsから対象RDSに適用されているパラメータグループを編集します 入力フォームが用意されているので変更します パラメ…

EC2起動時にスクリプトを実行する

aws

EC2起動時にサービス投入までに定型作業がある場合など、毎度同じコマンドを打つのが面倒になってきたので調べました User Dataというのを使えば出来る模様 Linuxインスタンスでの起動時のコマンドの実行 Amazon LinuxのCloudInitによって起動時に実行される…