Carpe Diem

備忘録

Prometheus でカスタムコレクタを用意する

概要

以前↓の独自メトリクスを作る方法を紹介しました。

christina04.hatenablog.com

これはdirect instrumentation(直接計装)というやり方で、アプリケーションサーバ自体がstatsを持ちprometheusにデータを渡すやり方です。

今回はそうではなく別プロセスや別サーバ、ホストOSのstatsを取り込んでコレクタとして登録する方法を紹介します。

イメージ的には各stats情報をprometheusフォーマットに変換するproxyを作る感じです。

環境

  • prometheus/client_golang 1.5.0
続きを読む

AWKの基本的な使い方

概要

AWKは文字列の検索、抽出、変換などができるプログラミング言語です。
UnixLinuxは基本的にテキストをプロトコルとしています。AWKを扱えるとそのプロトコルをより柔軟に扱えることになります。

前提知識

あらかじめ知っておくべき知識を書いていきます。

パターンとアクション

awkの書式は以下のようになっています。

$ awk 'パターン {アクション}'

パターンとアクションは両方同時に書く必要はなく、以下のようになります。

ケース どうなるか
アクションのみ 全てのレコードに対してアクションが実行される
パターンのみ パターンにマッチしたレコードを表示する
パターンもアクションもない 何も表示されない
続きを読む

cgroupsでリソース制限

概要

cgroups (control groups)は、プロセスグループのリソース(CPU、メモリ、ディスクI/O、ネットワークなど)を制限、考慮、分離するLinuxカーネル機能です。

これを使ってプロセスのリソース制限を行ってみます。

環境

cgroupsの構成

cgroupsの構成は以下のようになっています。

f:id:quoll00:20200224175519p:plain

ref: 1.2. サブシステム、階層、コントロールグループ、タスクの関係 Red Hat Enterprise Linux 6 | Red Hat Customer Portal

続きを読む

Macのsudoでパスワード入力でなくTouch IDを使う

概要

MacにはTouch IDがあり、インストールなど様々なところでこれまでパスワード入力が必要だった箇所がTouch IDによる指紋認証が使えるようになっています。

その中でターミナルでのsudoのパスワード入力もTouch IDに替えることができるので対応します。

環境

  • macOS 10.15.3
  • pam_reattach v1.2

PAM (Pluggable Authentication Modules)

UnixLinuxではPAMというプラガブルな認証システムが用意されており、sudoもPAMを利用しています。

PAMの詳細は以下で説明しています。

christina04.hatenablog.com

続きを読む

PAM (Pluggable Authentication Modules)

概要

LinuxにはPAMという認証システムとアプリケーションを分離するための仕組みが用意されています。

f:id:quoll00:20200223221238p:plain

ref: https://docs.oracle.com/cd/E19253-01/819-0396/ch3pam-01/index.html

プラガブルという名前の通り、モジュールによって認証方法を簡単に切り替え可能になっています。

今回はその設定を理解します。

続きを読む

gRPCのヘルスチェック

概要

gRPCサーバのヘルスチェック方法として

  • HTTPサーバを別途立ち上げてHTTPでチェック
  • tcpでポートがopenしたかチェック

といった方法がありますが、前者はgRPCサーバなのにHTTPサーバを用意しないといけなかったり、後者はtcpのopenは実際にServe開始したタイミングではないといった課題があります。

そこでKubernetesでは3番目の手段として何かしらのヘルスチェックのgRPCをコマンドラインから呼んでチェックする方法を推奨しています。

f:id:quoll00:20200212233923p:plain

ref: Health checking gRPC servers on Kubernetes - Kubernetes

続きを読む

iptablesの仕組みを図解

概要

ネットワーク周りでたまに触るiptablesですが、たまになせいで度々忘れてググり直すことが多いので理解しやすいよう図を作ってみました。

iptablesの仕組みを図解

iptablesの構成図

iptablesは以下のように

iptables -> Tables -> Chains -> Rules

という構成をとっています。

f:id:quoll00:20200208035547p:plain

続きを読む