Return_path_memo

いつもnatの設定を忘れてしまうのでここに残しておきたい ss@kong:~$ sudo sysctl -w net.ipv4.ip_forward=1 && \ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 192.168.10.0/24 -o enp9s0 -j MASQUERADE && \ sudo iptables -A FORWARD -i tun0 -o enp9s0 -s 10.8.0.0/24 -d 192.168.10.0/24 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT && \ sudo iptables -A FORWARD -i enp9s0 -o tun0 -s 192.168.10.0/24 -d 10.8.0.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT

November 10, 2025 · 1 min · 62 words · Me

Sre_google

SRE本を読んでいく こちら

November 9, 2025 · 1 min · 2 words · Me

.envファイルは自動で読み込まれる?Composeでの勘違いと正しい理解

背景 最近、Docker Compose で .env を使っていて「あれ?なんで変数が読み込まれないんだ?」という問題に直面しました。結論から言うと、Docker Compose は .env を自動で読み込むが、コンテナの環境変数としては勝手に渡さないという、なかなか紛らわしい仕様によるものでした。 この記事では、自分がハマったポイントと、それによって得られた正しい理解を共有します。 結論だけ知りたい人向け .env ファイルは Compose ファイルで ${VAR} の形で参照されたときのみ自動で読み込まれる。 ただし、.env の内容は自動的にコンテナの環境変数として渡されない。 コンテナに渡したいなら、env_file: または environment: を明示的に使う必要がある。 ❌ 勘違いしていたこと 「.env は docker-compose.yaml と同じディレクトリに置けば、何もせずともコンテナに環境変数として渡される」 実際に .env に以下のような内容を記述していました: hogehoge=hoge hoge=foo ところが、Compose を起動してもコンテナ内にこれらの変数は存在しませんでした。 原因:.env はあくまで Compose ファイル用のテンプレート変数 例えば以下のように docker-compose.yaml 内で ${VAR} を使えば、それは .env から自動で補完されます: ✅ コンテナに環境変数を渡すには? 方法は2つ: env_file: を使う(.envファイルをそのまま指定) services: web: image: myapp env_file: - .env この場合、.env の中身がまるっとコンテナに渡されます。 environment: を使う(必要な変数だけ) services: web: image: myapp environment: - P_ARS=${P_ARS} - INET_ID=${INET_ID} このように書けば、Compose 内で .env の変数を参照して環境変数として渡せます。 ...

May 4, 2025 · 1 min · 88 words · Me

Systemctl_ope

February 27, 2025 · 0 min · 0 words · Me

Oh_my_zsh

プロが使いがちなシェルです まあ自分はこだわりとかなかったので、bashを使っていたのですが、先輩たちのターミナル裁きを見ていると、なんかすごいんですよね。 queryとか出して過去のコマンドを一発で実行したり、tmuxとかで複数立ち上げたり、まあとにかくすごい。 でね、まあzshというのを使っているっポイのですわ。 ということで、zshのについていろいろ書いていこうと思います。 How to install sudo apt install zsh chsh -s $(which zsh) sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" (oh my zshのインストール) 色々調べていい感じにカスタマイズしてください

December 28, 2024 · 1 min · 25 words · Me

Nginx2vector2kafka2opensearch

nginxのメトリクスとログをモニタリングをする メトリクスデータは以下のように流す nginx -> vector -> kafka -> opensearch/influxDB という感じで、nginxから出た生ログをvectorでとり、kafkaに送信、kafkaから、opensearchとinfluxDBがそれぞれとってくる、という流れにするのが良さそう で、nginxがログを吐き出し/var/log/nginx/access.logとvectorを同じネームスペースで扱いたいので、この二つは物理マシン上にインストールするという流れにしたいと思う。 環境構成 以下の3つのマシンを使う delta (100.64.1.48,192.168.3.1) : 192.168.3.1/24のルータ,kafka, kafka-ui, opensearch master (192.168.3.8) : プロキシサーバ(nginx)、vector gamma/zeta/ : オリジン kafkaを導入するdocker composeの設定 services: kafka-broker: image: apache/kafka:3.7.0 container_name: kafka-broker ports: - "${KAFKA_BROKER_LOCAL_PORT}:9092" environment: KAFKA_NODE_ID: 1 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT" KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT_HOST://localhost:${KAFKA_BROKER_LOCAL_PORT},PLAINTEXT://kafka-broker:${KAFKA_BROKER_PUBLIC_PORT}" KAFKA_PROCESS_ROLES: "broker,controller" KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka-broker:${KAFKA_BROKER_CONTROLLER_PORT}" KAFKA_LISTENERS: "CONTROLLER://:${KAFKA_BROKER_CONTROLLER_PORT},PLAINTEXT_HOST://:${KAFKA_BROKER_LOCAL_PORT},PLAINTEXT://:${KAFKA_BROKER_PUBLIC_PORT}" KAFKA_INTER_BROKER_LISTENER_NAME: "PLAINTEXT" KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER" KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 KAFKA_LOG_DIRS: "/tmp/kraft-combined-logs" kafka-ui: container_name: kafka-ui image: provectuslabs/kafka-ui:v0.7.2 ports: - "${KAFKA_UI_PORT}:8080" depends_on: - kafka-broker restart: always environment: KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka-broker:${KAFKA_BROKER_PUBLIC_PORT} init-kafka: # kafka-topics コマンドを使いたいので confluenticsのコンテナを利用 image: confluentinc/cp-kafka:7.6.1 container_name: init-kafka depends_on: - kafka-broker entrypoint: ["/bin/sh", "-c"] command: | " # blocks until kafka is reachable kafka-topics --bootstrap-server kafka-broker:${KAFKA_BROKER_PUBLIC_PORT} --list echo -e 'Creating topics' kafka-topics --bootstrap-server kafka-broker:${KAFKA_BROKER_PUBLIC_PORT} --create --if-not-exists --topic nginx-log --replication-factor 1 --partitions 1 echo -e 'Successfully created :' kafka-topics --bootstrap-server kafka-broker:${KAFKA_BROKER_PUBLIC_PORT} --list " opensearchを導入する設定 version: '3' services: opensearch-node1: # This is also the hostname of the container within the Docker network (i.e. https://opensearch-node1/) image: opensearchproject/opensearch:latest # Specifying the latest available image - modify if you want a specific version container_name: opensearch-node1 environment: - cluster.name=opensearch-cluster # Name the cluster - node.name=opensearch-node1 # Name the node that will run in this container - discovery.seed_hosts=opensearch-node1,opensearch-node2 # Nodes to look for when discovering the cluster - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 # Nodes eligible to serve as cluster manager - bootstrap.memory_lock=true # Disable JVM heap memory swapping - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # Set min and max JVM heap sizes to at least 50% of system RAM - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD} # Sets the demo admin user password when using demo configuration, required for OpenSearch 2.12 and later ulimits: memlock: soft: -1 # Set memlock to unlimited (no soft or hard limit) hard: -1 nofile: soft: 65536 # Maximum number of open files for the opensearch user - set to at least 65536 hard: 65536 volumes: - opensearch-data1:/usr/share/opensearch/data # Creates volume called opensearch-data1 and mounts it to the container ports: - 9200:9200 # REST API - 9600:9600 # Performance Analyzer networks: - opensearch-net # All of the containers will join the same Docker bridge network opensearch-node2: image: opensearchproject/opensearch:latest # This should be the same image used for opensearch-node1 to avoid issues container_name: opensearch-node2 environment: - cluster.name=opensearch-cluster - node.name=opensearch-node2 - discovery.seed_hosts=opensearch-node1,opensearch-node2 - cluster.initial_cluster_manager_nodes=opensearch-node1,opensearch-node2 - bootstrap.memory_lock=true - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD} ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 volumes: - opensearch-data2:/usr/share/opensearch/data networks: - opensearch-net opensearch-dashboards: image: opensearchproject/opensearch-dashboards:latest # Make sure the version of opensearch-dashboards matches the version of opensearch installed on other nodes container_name: opensearch-dashboards ports: - 5601:5601 # Map host port 5601 to container port 5601 expose: - "5601" # Expose port 5601 for web access to OpenSearch Dashboards environment: OPENSEARCH_HOSTS: '["https://opensearch-node1:9200","https://opensearch-node2:9200"]' # Define the OpenSearch nodes that OpenSearch Dashboards will query networks: - opensearch-net volumes: opensearch-data1: opensearch-data2: networks: opensearch-net: nginxを導入する設定 これは普通に ...

November 12, 2024 · 3 min · 460 words · Me

About_LB

LBのあれこれ 参考文献 https://qiita.com/masaozi3/items/838060d7339aef01bc2e

September 8, 2024 · 1 min · 3 words · Me

インターネットの中心

ネットワークの中心は一体どこなのか? これの答え、ついに具体的にわかったわ。 インターネットの発祥地はアメリカと言うのは有名な話だよね。 あとは、ネットワークのネットワークがインターネット、と言う話も有名な話だよね じゃあ、そのネットワークの中心はどこなのか?と言う話だが。答えは、「Tier 1 Network」に所属するISPだとおもう。詳しく述べよう。 参考文献 cloud flairのBGPの説明 Tier 1にはsoftbankも入っているのか? インターネットのすごくわかりやすい説明 昔の資料。平成15年とかなので2003年とか。まだソフバンが来る前の話 日本のISPの話 日本のISP一覧 asn/ipの取得方法 トランジットとピアリングの話 closネットワークの話もここでしています 回線事業者とISPの関係 学術ネットワークの話 Tier1 ISP はい、Tier1に所属するISPは世界で16個しかないんだよね。 こいつらは、インターネットバックボーンを形成しているISP。 で、インターネットバックボーンの役割は、海底ケーブルなどを介して、大陸間、国家間にまたがって各国の基幹ISPを相互接続して、大容量データの経路を確保することです。つまり、国家間の通信を可能にするためのケーブルを弾いてくれている。 日本の企業でTier1のISPに入っているのは、NTTとソフバンが買収したSprintっていうアメリカの会社。 で次。 日本の一次プロバイダ 宮城さんの話 janogでは、ISPの人たちがピアリングをしましょうとか、そういう交渉の場としても使われる。これはだいぶ面白いね。 また、個人がISPになることもできるって話。これは、AS番号をもらうって話になるのかな?

September 5, 2024 · 1 min · 32 words · Me

Booking_scheduling_system

August 27, 2024 · 0 min · 0 words · Me

House_keeping

家事 8/13 R 風呂掃除 皿洗い T 昼ごはん 洗濯 コンロ掃除 8/14 R T 朝ごはん 昼ごはん

August 13, 2024 · 1 min · 14 words · Me