2017-10-14

max virtual memory areas vm.max_map_count [65530] is too low. で Elasticsearch が起動しないとき

Elasticsearch の起動時に、以下のようなログが出て起動できない場合があります。以下の例では、docker-compose を用いて Elasticsearch 5.5.2 を起動しています。

$ sudo docker-compose up es1
WARNING: The k9 variable is not set. Defaulting to a blank string.
Recreating dockercerebro_es1_1 ...
Recreating dockercerebro_es1_1 ... done
Attaching to dockercerebro_es1_1...
2017-10-07

Docker で唐突に MySQL 8.0 を試したくなったときにシュッと環境を用意するメモ

MySQL の運用をしていると、唐突に MySQL 8.0 を触りたくなる瞬間があると思います。

実際、わたしもたまに触りたくなって適当に Docker を使ってコンテナを起動して検証に使うことがあります。その都度ビルドするのも面倒なので.. いつもそのときに使うコマンドなどを忘れるので、メモがてらブログに置いておきます 🐰

環境

  • Arch Linux (2017-10-07 時点)
  • Docker version 17.09.0-ce, build afdb6d44a8

MySQL 8.0 を起動する

$ docker pull mysql:8.0.3
$ docker run...
2017-06-03

Elasticsearch 5.x & Kibana 5 に移行したときになぜか棒が分割できない問題に対処したメモ

古いバージョンの EC2 上で動く Elasticsearch と Kibana を AWS Elasticsearch Service (5.1) & Kibana 5 に移行するときに、ちょっとハマったポイントがあったのでメモとして残しておきます。

一部のレコードがなぜか aggregate できない

MySQL が吐くスロークエリログをいい感じにしたいとき、fluent-plugin-mysqlslowquery を利用して Elasticsearch に送り、Kibana を使って視覚化する、という常套手段があります。 このとき、以下のスクリーンショットのような感じで Split...

2017-05-07

Slack の発言を他のチャンネルに転送するためのツール「telescreen」

前々から作ろうと思いつつなかなか手が動かなかったのですが、ゴールデンウィークで暇を持て余してたこともあり、勢いで telescreen というツールを作りました。

mozamimy/telescreen

telescreen - A slack bot to forward messages by simple routing definition

telescreen は Slack の bot として常駐し、join しているチャンネルの発言を他のチャンネルに転送するためのツールです。人間の発言を集めたいというモチベーションで実装したため、bot による発言は転送しません。 利...

2017-04-19

Rust でつくる VM 型の Brainf\\k の処理系

これまで言語処理系のコンセプトこそ学んできたものの、実際に手を動かしてゼロから処理系を作る体験をしたことがなかったので、合間の時間を使ってガッと BF の処理系を作ってみました。 まず慣れている Ruby で実装して、その後、いま練習中の Rust で実装しました。この記事は、その記録になります。

実装の方針

BF は言語仕様が非常に小さいこともあり、初学者でも実装が簡単なため、ちょっとトリッキーな実装をしてみることにしました。 コードゴルフ的なアレではありません。完全に自己満足です。

  • やらなくてもなんとかなりそうだけど字句解析と構文解析をする
  • やらなくてもなんとかなりそうだけど...
2017-03-18

書籍 ElasticSearch Server と Elasticsearch 5.2

業務で Elasticsearch をやっていくことになったので、一通りわかっておきたいと思って、いわゆる「緑の本」を買って読みました。

高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)
KADOKAWA / アスキー・メディアワークス (2014-03-25)
売り上げランキング: 42,891

Elasticsearch の利用と運用において知っておいたほうがよいことをまんべんなく知れる良書なのですが、書籍の対象とする Elasticsearch ...

2017-03-12

Cerebro の実用的な Docker image を作った (Elasticsearch 管理のおともに)

Cerebro とは

Elasticsearch クラスタを運用するにあたって、REST API を使ってインデックスやクラスタそのものの操作をすることは避けられません。 その際、API の結果として返ってくる JSON だけでクラスタの状態を想像してオペレーションを行うのは、ウサギや人類には結構厳しいものがあります。

また、インフラエンジニアだけではなく、サービスエンジニアが自分たちのプロダクトで使っている Elasticsearch を責任を持って管理できるようにするためにも、使いやすい管理ツールは強力な武器となります。

Elasticsearch 5.0 以前は Kopf と...

2016-12-14

ネイティブ npm モジュールをビルドして Lambda で使いやすくする Clairlune の紹介

この記事は、Serverless Advent Calendar 2016 の 15 日目の記事です。

Node.js で Lambda function を書くときに、地味に困るのがネイティブバイナリのビルドが必要な npm モジュールを利用する場合です。何も考えずに手元でビルドして zip で固めてアップロードしても、Lambda が実行される環境でそのバイナリが実行できるとは限りません。

そこで、ビルドとスクリプトのアップロードを助けるツール Clairlune を作りました。

https://github.com/mozamimy/clairlune

Clairlune ...

2016-11-30

Docker for Mac でホストの特定のポートにつなぐ方法

Docker for Mac、安定してふつうに動くのですが、Linux 用のものとは違って docker0 のような仮想のネットワークアダプタが生えないために、ホスト OS の特定のポートにコンテナからつなぐ、というようなことが直感的にできません。

業務上、AWS の VPC 上にあるサーバの特定のポートに到達できるように SSH トンネルを刺して、ホスト OS に生やしたポートからアクセスできるようにして、コンテナからつなぎにいきたいことがまれによくあるので、これではこまります 🐰 💦

これでずーっと悩んでいたのですが、公式のドキュメント にひっそりとワークアラウンドが書かれていま...

2016-11-27

mozami.me を HTTPS 化して CI でデプロイできるようにした

ずっとやろうと思いつつ、なんとなくだるくてやってなかった mozami.me の HTTPS 化をしました。

構成は、S3 バケットをオリジンにした CloudFront の distribute を作って、証明書は ACM で発行したものを使ってます。静的なサイトなら定番の構成ですね。さようなら Github Pages..

ついでに、これまたやろうと思いつつだるくてやってなかったブログの自動デプロイを仕込みました。以下のような感じで Travis CI の設定を書くと、master ブランチに merge した瞬間に Middleman のビルドが走ってデプロイされます。

https...