AWS ALB配下のノードが全てUnhealtyになった場合、リクエストが全ターゲットにルーティングされます

AWS

開発環境のALB配下唯一のEC2インスタンスがUnhealtyなのに、普通にアクセスできるので調べてみたらこんな挙動だということが。全く知りませんでした。sorry pageとか最低限のリカバリにはつなげやすいのかな。 ただ、監視をゆるめている開発や検証環境だと全…

Muninのプラグイン書くのに役立つ環境変数たち

Muninのプラグインを何本も書いてきましたが、最近になってプラグイン書くのに役立つ環境変数があることを知りました。 実際の変数を出力したければ以下のようなファイル作って munin-run 実行してみるだけです。 $ cat /etc/munin/plugins/test #!/bin/bash…

AmazonLinuxの古いyumリポジトリを利用したい時の方法

AWS

掲題の件、備忘メモ。 まず、以下のURLで リリースノート の項目を見るとリリースの一覧があるのでリリースの名前がわかります。 https://aws.amazon.com/jp/amazon-linux-ami/ だいたい3月と9月に出るようなので2017.03とか2017.09とか。今現在の最新が2017…

Apacheリバースプロキシにおけるスラッシュと%2F問題はまったポイント

Apacheと%2Fでを調べると沢山出てくる内容なのですが、ApacheはURLから取得されるPATH_INFO変数に / のエンコードである %2F があると404を返します。 これ自体はAllowEncodedSlashesというパラメータをOnにしてやると処理できるようになります。 <VirtalHost> ... Allow</virtalhost>…

AWS S3を保存先としたプライベートなDocker Registryを公式コンテナから簡単導入

タイトルの通り。作業メモです。 テスト用イメージ作成 テストで利用するイメージを作ります。 Dockerfile作って。 cat <<EOF > Dockerfile from alpine:latest ENTRYPOINT ["echo","myimage"] EOF ビルドして。 docker build --no-cache -t myimage . ビルドされ</eof>…

AWS ALBのアクセスログ分析環境をDockernizeしてローカルPCで実行できるようにした

AWS ALBのアクセスログをサーバ上のBananaで分析していたのですが、Docker使って手元のPC環境でも簡単に実行できるようにしました。 github.com 使い方 Repositoryをダウンロード git clone https://github.com/yomon8/alb-log-analyzer.git cd alb-log-anal…

ALB/ELBのアクセスログを時間指定でダウンロードして標準出力してgrep検索可能にするツール作った

AWS ALBやELBのアクセスログですが、5分毎に出力していると大量のファイルになります。 調査するにしても複数の細かく分かれたファイルを結合したり、JSTとUTCの差を失念していて勘違いしたり、S3のフォルダ構造深かったり、ALBのアクセスログはgzip形式なの…

引数で渡した複数のストリームを行単位でマージしリアルタイム出力するコマンド作った

ツール書きました。 github.com 例えば以下のような3つのコマンドを同時に実行して、結果をリアルタイムでマージして出力したいとします。 1 (sleep 1;echo SlowSlow) 2 (sleep 0;for i in $(seq 1 25);do printf aaa;echo;done) 3 (sleep 0;for i in $(seq …

awscliのquery利用方法まとめ(主にqueryオプションとTips)

AWS

queryオプションを主にaws cliの使い方をメモしておきます。随時更新予定です。 queryオプション query指定無しだと 基本の使い方 出力形式を知る queryを使ってみる 関数(Functions) contains join starts_withとends_with to_string sort_by length Tips J…

コマンドラインでEC2のコンソール画面テキスト(システムログ)を取得してgrep分析

AWS

EC2が原因不明で接続不可になることは以外に多いです。そんな時にVMWareやHyper-V、KVMみたいにコンソール画面に何が出ているのか確認したくなります。 AWSマネジメントコンソールから「インスタンスの設定」>「システムログの取得」で以下のような画面が取…

【AWS】ALBからCLIでEC2切り離しderegister-targetsはGracefulじゃない?

AWS

ALBからEC2を切り離す時に使う aws elbv2 deregister-targets のコマンド、大量のアクセスがあってもエラーを返すことなく切り離すことができると思っていました。 ① EC2をALBより切り離し aws elbv2 deregister-targets --target-group-arn target_group_ar…

【Solrエラー対応】TooManyClauses: maxClauseCount is set to 1024

Solrで大量のAND条件でクエリ投げた場合などに以下のようなエラーが発生する場合があります。これを調査しました。 org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024 BooleanQueryの制限値があるというエラーなのです…

【Solrエラー対応】LukeRequestHandler Error getting file length for [segments_N]の警告について

事象 題名の通りSolr6系統で以下の警告が出る場合があります。 LukeRequestHandler Error getting file length for [segments_N] StackTraceの例: java.nio.file.NoSuchFileException: /var/solr_node_8983/data/mycore/data/index/segments_3 at sun.nio.fs…

AWS ALBに長いリクエストURLでGETすると414や500でエラーになる

AWS

AWS ALB(Application Load Balancer)に長いURLリクエスト投げてみたら、以下のテーブルのように、ある長さのリクエストからエラーが出ることを発見しました。 URLの長さ(Byte) HTTPレスポンスコード 〜16446 200 OK 16447 500 Internal Server Error 16448〜…

Lucene/Solrのパフォーマンスチューニングした内容をまとめてみた

Solrのパフォーマンスチューニングを一通り行ったので、忘れないうちにまとめてみたいと思います。Lucene/Solrのバージョン6系統になら当てはまると思います。 インデクシングのパフォーマンスにも関係するところはありますが、主に検索側のパフォーマンスに…