dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

2022-01-01から1年間の記事一覧

Elasticsearch 7系を1クラスタ1ノードで動かす場合の設定

小規模なシステムではElasticsearchを1ノードだけで動かすことがある。 その場合に設定しておくべき項目をメモしておく。 設定ファイルは大抵 /etc/elasticsearch/elasticsearch.yml にある。 まず、1ノードでしか動かさないから無駄なディスカバリを無効化…

AWSのバースト可能インスタンスの見積もり

本番環境でも、常時アクセスが少なく、負荷の予想がしっかりできている場合にはバースト可能なt系インスタンスを使って費用を抑えることもありだ。 RDS 一番安価なリザーブドインスタンス(RI: reserved instance)を買えるdb.t3.microについて検討する1。 d…

SQLite3をつかうときの注意

データ型 SQLite3の整数型INTEGERは符号付になる。unsignedなんてない。 The value is a signed integer, stored in 0, 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value. Datatypes In SQLite

よく使う換算のメモ

データ転送 prf. 使い方例 本当に1 Gbpsの帯域を占有できるなら1 GiBのファイルを8秒ほどで転送できる。 帯域を1 Gbps使っている通信路のパケットキャプチャをすると、119 MiB / sec 以上の速さで空きストレージを消費する。

zabbix-agent2でactive checksを行う

passive checksとactive checks zabbix-agent2を使った監視方法にはpassive checksとactive checksがある。 passive checksはzabbixサーバが監視対象へ定期的に問い合わせ、監視対象にインストールされているzabbix-agent2がCPU負荷などのデータを返す。 act…

AmazonLinuxにnkfコマンドをインストールする

sudo amazon-linux-extras enable epel yum clean metadata sudo yum install -y epel-release sudo yum install -y nkf

linuxにおけるユーザとグループ

ちゃんと調べていないから勘違いがあるかもしれない。 権限設定やセキュリティに関する設定をする場合は改めて調べるべきだ。 グループ ユーザは1つ以上のグループに属する。 どのグループにも属さないユーザなど存在しない。 system groupと普通のgroup gro…

Rustでenumと文字列の相互変換

Rustで文字列の定数を定義したくなることがある。 文字列定数の実現方法にはいくつかあるがmatch構文の恩恵を受けられるenumを使うと良い場合がある。 ところがRustのenumはC言語のそれに近く、enum variantの値として整数リテラルを設定することはできるが…

ランダムなbyte列を指定byte数だけbase64エンコードして得る

AES256の暗号鍵やシークレットソルトなど、ランダムなbyte列をシェルでサクッと欲しい時がある。 head -c NUMで指定バイト分だけ取れるから、base64にパイプで流せば良い。 次のコマンドはランダムな32 byteを base64エンコードして出力する。 head -c 32 /d…

IAMキーの一覧をAWS CLIで出す

不要なIAMユーザを調べるために、そのIAMユーザのキーが最後に使用された日時と共に一覧を取得したいことがある。 このワンライナーはIAMユーザ名、IAMキーのID、最終使用日時を一覧出力する。 キーを逐次的に調べているので完了するまで時間がかかる。 大量…

Dockerコンテナ上のDebianでSQLite3をビルドしたときのメモ

SQLite3の新しめの仕様を使いたかったから、自分でビルドする必要があった。 FROM debian:buster RUN apt-get update && \ apt-get install -y git gcc make tcl && \ git clone --depth=1 -b version-3.38.1 https://github.com/sqlite/sqlite.git && \ cd …

AWS CLIでAWS Configに非準拠のリソースを全リージョンに渡って列挙する

全リージョンをチェックするから、応答が返ってくるまでしばらく時間がかかる。 落ち着いて待て。 1件も行が表示されなかったら、全てのリソースが準拠状態にある。 while read REGION; do aws configservice describe-compliance-by-config-rule --region $…

Terraformで「Error: Invalid legacy provider address」と怒られたら

terrafromで以下のようなエラーメッセージが表示されることがある。 │ Error: Invalid legacy provider address │ │ This configuration or its associated state refers to the unqualified provider "aws". │ │ You must complete the Terraform 0.13 upgr…

RDSで保留中の変更をすぐに反映する

terrafromなどでRDSインスタンスを変更すると次のメンテナンスウィンドウで反映されるよう予約されるだけで、即座に反映されないことがある。 この状態でAWSコンソールから確認すると「保留中の変更」に表示される。 これは次のコマンドでメンテナスウィンド…

Cisco Catalyst 3650におけるバッファの仕組みとチューニング

Catalyst 3650でバッファ溢れを起こしてパケットが大量にドロップされていたからチューニングを行う必要があった。 バッファの仕組みと必要なチューニングについてメモする。 Main Memory領域とI/O Memory領域 まず、物理メモリDRAMはCisco IOSの動作に使わ…

SNMPでネットワーク機器のポートのoutboundパケットのドロップ率を大まかに把握する

そこそこの規模のネットワークにおいて、インターネットへ向かうポートには多量のトラフィックが合流してパケットが破棄されてしまうことがある。 とある環境では上りのトラフィックのパケットだけがインターネットへの出口で大量にドロップされていた。 こ…

juniper SSGのSNMP設定

SSGではトラップ先のホストを設定しないと、そこからのSNMPのリクエストも受け付けない。 以下のようにSNMPコミュニティを設定したら set snmp community "snmp-com" Read-Only Trap-on traffic version v2c トラップを使わなくとも、以下のようにアクセス許…

コマンドで最終行以外の改行をスペースで置換する

paste -s -d ' ' FILE pasteコマンドはパイプから読み取ることを想定してないから、パイプで繋げたいときは-を渡す。 なんかのコマンド | paste -s -d ' ' - sedやtrやawkで頑張ろうとするな。大変だぞ。

AWS CLIで各種リソースをリスト出力する

あまりよく考えずに作ったから、もっと短くしたり、効率的にしたりできそう。 EC2 インスタンス aws ec2 describe-instances --query 'Reservations[].Instances[]' | jq --raw-output --monochrome-output '.[] | [.InstanceId, (.Tags[] | select(.Key == …

Windows10で大きなMTUサイズを設定する方法

WindowsではLinuxやネットワーク機器と違って1500より大きなMTU(maximum transmission unit)値を細かく設定することはできないようだ。 NICやドライバに依存してフレームサイズの選択肢が用意されている。 デバイスドライバを開いてネットワークアダプター…

pingは通るのにtracerouteは通らない

もしかして... ICMPは通信許可されているけどUDPは通信許可されていない。 linuxのtracerouteコマンドはデフォルトでUDPプロトコルを使う。 これが原因でICMPは許可しているけどUDPを許可していないホストにはtracerouteが通らない。 tracerouteコマンドはオ…

システム開発における暦の違いについてのメモ

世界には日本と違う時間(≈ 暦)の考え方で動いている地域、国がわんさかある。 日本で何も考えずに作成したソフトウェアを他の国に持ち込んだら使い物にならないかもしれない。 時間の考え方は大きく2つに分解できる。 1つは暦法であり、もう一つは紀年法で…