Hi there 👋

Welcome to ingenboy’s blog!

Systemctl_ope

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

O11y

oss o11y 最匷セット 題名の通り。 o11yを実斜するためのoss最匷セットです。 構築しおいきたいず思いたす。 環境 hugo_server : Grafana, Gateway hugo_server -> jhonny : Openvpn tunneling jhonny : Prometheus, Opensearch, (maybe kafka?) 集めたいデヌタ GSLBå‘šã‚Š GSLBのHCデヌタ GSLBのアクセスログ GSLB clusterの各ノヌドの状態 openvpnå‘šã‚Š vpnserverのログ vpnserverのステヌタス 構築 Grafana apt install grafana-serverでむンストヌル sudo systemctl enable grafana-serverでデヌモン化 sudo vim /etc/grafana/grafana.ini でホストヘッダヌを蚭定 sudo vim /etc/nginx/nginx.confでプロキシの蚭定 grafanaにアクセス。初期ナヌザ、パスワヌドadmin,admin prometheus 公匏からprometheusのbinary + 蚭定ファむルのtarをダりンロヌド ref 蚭定ファむルやbinaryを移動する /etc/prometheus/prometheus.yml、/var/lib/prometheus/data/、 ナニットファむルを䜜る/lib/systemd/system/prometheus.service [Unit] Description=Prometheus Server Wants=network-online.target After=network-online.target [Service] User=root Group=root ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus/data \ --web.listen-address=0.0.0.0:9090 Restart=always LimitNOFILE=65536 [Install] WantedBy=multi-user.target sudo systemctl daemon-reload sudo systemctl start prometheus ずいう感じですね。完璧ですヌ。 ...

February 23, 2025 Â· 3 min Â· 608 words Â· Me

Site2site_vpn2

事始め site2site routingができるようになり、vpn_clientのネットワヌク内のサヌバずvpn_server間で通信ができるようになったわけだが。 今回、新たにもう䞀぀vpn_clientを぀なぎ、新しいロヌカルネットワヌクをこのVPNネットワヌクに参加させようずしたわけだ。 しかしこれがうたくいかない。 環境の敎理 ネットワヌクA : 100.64.0.0/22 ネットワヌクB : 192.168.1.0/24 で、以䞋のような蚭定をvpn_serverに曞き蟌むわけです。 port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem crl-verify crl.pem ifconfig-pool-persist ipp.txt server 10.8.0.0 255.255.255.0 # client偎から通信させたい、server偎のLanセグメントを指定 push "redirect-gateway def1 bypass-dhcp" push "route 10.8.0.0 255.255.255.0" push "dhcp-option DNS 8.8.8.8" # server偎から通信させたい、client偎のlanセグメントを指定 client-config-dir /etc/openvpn/ccd route 100.64.0.0 255.255.252.0 route 192.168.3.0 255.255.255.0 #fragment 1400 #mssfix tun-mtu 1400 client-to-client keepalive 10 120 comp-lzo user nobody group nogroup persist-key persist-tun status /var/log/openvpn-status.log log /var/log/openvpn.log log-append /var/log/openvpn.log verb 3 duplicate-cn これをやればA -> vpn_server B -> vpn_serverに぀ながるず思っおいた。 ...

February 22, 2025 Â· 6 min Â· 1073 words Â· Me

Port_forwarding_using_iptables

事始め openVPN + nginxを䜿うこずでhttpリク゚ストをリバヌスプロキシしお自宅ネットワヌクから配信するこずはできるようになった。 しかしこれあくたでもL7レむダヌの話であり、http以倖は無理だずいう話だ。 䟋えば、kafkaのトピックにデヌタを登録するにはhttpではなく独自のプロトコルを䜿う必芁がある。぀たり、nginxではだめだずいうこず。 どうするかずいうず、L3レむダヌでトラフィックの宛先を倉えおあげる必芁がある。 関連 ovpnを䜿っおsite2site routing iptalbesを䜿っおポヌトフォワヌディングする方法 # 10001番ポヌトのトラフィックを 100.64.1.61:10001 に転送 iptables -t nat -A PREROUTING -p tcp --dport 10001 -j DNAT --to-destination 100.64.1.61:10001 # フォワヌドを蚱可 iptables -A FORWARD -p tcp -d 100.64.1.61 --dport 10001 -j ACCEPT # 倖郚に返すためのMASQUERADEオプション iptables -t nat -A POSTROUTING -d 100.64.1.61 -p tcp --dport 10001 -j MASQUERADE ずいう感じですね。 今曎だけどopenvpnがフリヌ゜フトなのっお普通にやばい こちら

February 19, 2025 Â· 1 min Â· 59 words Â· Me

むンタヌネット䞊でGSLBを展開する方法

GSLBを自前で持぀方法 はい、たずむンタヌネット䞊でドメむンを持぀必芁がありたすよね。 ドメむンの取埗は、icannに登録された事業者しかできないんですよね。 だから、完党に自前は厳しいです。 っおこずでい぀も通りムヌムドメむンずかでドメむンを取埗する必芁がありたすね。 で、このムヌムヌドメむン䞊でnsレコヌドを匵っお、その実態を自分のサヌバにすればいいっお話なんですよ。そうです。そこです。 そうすれば最終的にAレコヌドを匵るのは自分で管理しおいるサヌバになりたす。レコヌドを返すのも自分のサヌバになるわけですね。 玠晎らしいです。 nsレコヌドを匵る方法ずしお、二぀あるんです。おそらく サブドメむンずしおnsレコヌドを匵る方法ず、 そのドメむンすべおにnsレコヌドを匵る方法。 埌者は、「取埗したドメむンで䜿甚する ※䞊玚者向け」っおずころでやる必芁がありそう。 ちなみに、完党に理解しおしたったこずが䞀぀ある。 dnsを登録するず、おそらく必ずnsレコヌドも登録される。 digではデフォルトでaレコヌドしか返さないようになっおいるが、䟋えばnsを぀けるずnsレコヌドを返すようになりたす。 root@x162-43-53-234:~/MyFreshWebsite# dig ns ingenboy.com ; <<>> DiG 9.18.28-0ubuntu0.24.04.1-Ubuntu <<>> ns ingenboy.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15003 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;ingenboy.com. IN NS ;; ANSWER SECTION: ingenboy.com. 3600 IN NS dns01.muumuu-domain.com. ingenboy.com. 3600 IN NS dns02.muumuu-domain.com. ;; Query time: 20 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Wed Jan 29 16:04:35 JST 2025 ;; MSG SIZE rcvd: 95 こんな感じです。これがムヌムヌドメむンになっおいたすねはい、そうですね。 ...

January 29, 2025 Â· 8 min Â· 1664 words Â· Me

プロゞェクト管理の皮の神噚

プロゞェクトマネゞメントに䞍可欠なもの タスク管理ツヌル コミュニケヌションツヌル wiki 䌚瀟運営になるず、以䞊に䌚蚈゜フトが加わる オヌプン゜ヌス゜フトで代替したい タスク管理ツヌルRedmine コミュニケヌションツヌルrocket.chat wiki : xwiki How to introduce Redmine いかのdocker composeを走らせるだけ version: '3.7' services: redmine: image: redmine:6.0.1 ports: - "8008:3000" environment: REDMINE_DB_MYSQL: db REDMINE_DB_DATABASE: redmine REDMINE_DB_USERNAME: redmine REDMINE_DB_PASSWORD: redmine_password volumes: - redmine_data:/usr/src/redmine/files db: image: mysql:5.7 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci #--default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: redmine MYSQL_USER: redmine MYSQL_PASSWORD: redmine_password volumes: - mysql_data:/var/lib/mysql volumes: redmine_data: driver: local mysql_data: driver: local 詳しくは、こちらを読んでみおください、ずいった感じです。 https://blog.ingenboy.com/post/introduce_redmine/ How to introduce rocket.chat volumes: mongodb_data: { driver: local } services: rocketchat: image: ${IMAGE:-registry.rocket.chat/rocketchat/rocket.chat}:${RELEASE:-latest} restart: always labels: traefik.enable: "true" traefik.http.routers.rocketchat.rule: Host(`${DOMAIN:-}`) traefik.http.routers.rocketchat.tls: "true" traefik.http.routers.rocketchat.entrypoints: https traefik.http.routers.rocketchat.tls.certresolver: le environment: MONGO_URL: "${MONGO_URL:-\ mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\ ${MONGODB_DATABASE:-rocketchat}?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}" MONGO_OPLOG_URL: "${MONGO_OPLOG_URL:\ -mongodb://${MONGODB_ADVERTISED_HOSTNAME:-mongodb}:${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}/\ local?replicaSet=${MONGODB_REPLICA_SET_NAME:-rs0}}" ROOT_URL: ${ROOT_URL:-http://localhost:${HOST_PORT:-3000}} PORT: ${PORT:-3000} DEPLOY_METHOD: docker DEPLOY_PLATFORM: ${DEPLOY_PLATFORM:-} REG_TOKEN: ${REG_TOKEN:-} depends_on: - mongodb expose: - ${PORT:-3000} ports: - "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}" mongodb: image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-6.0} restart: always volumes: - mongodb_data:/bitnami/mongodb environment: MONGODB_REPLICA_SET_MODE: primary MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0} MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017} MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb} MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017} MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb} MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true} ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes} あずは、 以䞋のようなnginxファむルをおいお、プロキシしおください。 ...

January 19, 2025 Â· 3 min Â· 453 words Â· Me

Introduce_redmine

事始め 今たでタスク管理はREADME.mdを䜿っおしおいたよね。 これは䞀人でタスクを管理する分には確かに問題ない。 しかし、来幎以降、自分がPMをしおプロゞェクトを進めるこずがかなり増えおくるず思う。 そこでプロゞェクト管理システムを導入するこずにした。 REDMINE OSSのプロゞェクトマネゞメントシステムです。 無料で䜿えるのでこれを入れたずいう感じです。 docker composeで䞀発起動 version: '3.7' services: redmine: image: redmine:6.0.1 ports: - "8008:3000" environment: REDMINE_DB_MYSQL: db REDMINE_DB_DATABASE: redmine REDMINE_DB_USERNAME: redmine REDMINE_DB_PASSWORD: redmine_password volumes: - redmine_data:/usr/src/redmine/files db: image: mysql:5.7 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci #--default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: redmine MYSQL_USER: redmine MYSQL_PASSWORD: redmine_password volumes: - mysql_data:/var/lib/mysql volumes: redmine_data: driver: local mysql_data: driver: local 倧事なのは、db.commanのずころ。日本語も䜿えるようにこういう感じにしおいたす。 文字コヌドこれにしないず日本語を入力した時に゚ラヌが出るようになっおしたいたす。 フロント゚ンドプロキシでプロキシ 䟋のごずく、nginxでフロントを担圓しおいただき、オリゞンを自宅のサヌバに担圓しおいただきたす。 この時、プロキシ時のホストヘッダを匕き継がないずバグりたすからね。気を付けお。 その他tips 実はiphoneのアプリにredminePMずいうのがあるのですが、これでredmineにアクセスするには、 管理ヌ蚭定ヌapiから、 RESTによるWebサヌビスを有効にする JSONPを有効にする にチェックを入れおください。 ...

December 31, 2024 Â· 1 min Â· 129 words Â· Me

How_to_have_multiple_services_with_multiple_origin_on_a_single_frontend_proxy

事始め 䌚瀟ではL7プロキシの運甚・開発をしおいる。 耇数のEPドメむンを持っおいる。 耇数のドメむンをひず぀のL7プロキシ単䞀のIPでさばいおいる。 さお、これはいったいどの様に実珟しおいるのかずいうのが今回の議題。 IPアドレスはDNSによっお単䞀のドメむンず玐づけられる。ず自分は認識しおいたが、これが誀りだった。 そしお、自分は、䌚瀟に入るたでホストヘッダヌずいう抂念を党く分かっおいなかった。 HTTPにはホストヘッダヌずいうものがあり、これによっお単䞀IP䞊に耇数のドメむンを保持するこずができるようになる。 そしお、ポむントはやはり、HTTPはL7レむダヌであり、IPはL3レむダヌであるずいうずころに萜ち着くず思う。 前提 DNSでのIPアドレスずドメむンの玐づけは䞀察䞀ではなく、䞀察倚であった。ここがすごく倧事なずころでした。 そしお、自分はホストヘッダヌに぀いお理解しおいなかった。 nginxを䜿っおバヌチャルサヌバを立おる chatgptから 単䞀の物理サヌバヌ䞊で耇数のりェブサむトやアプリケヌションをホストするために䜿甚される機胜です。それぞれのバヌチャルサヌバヌは、異なるドメむン名やサブドメむンに察応しお、個別に蚭定されたリ゜ヌス䟋えばりェブペヌゞやアプリケヌションのファむル、SSL蚌明曞、ログファむルなどにアクセスを提䟛したす。 Nginxでは、これらのバヌチャルサヌバヌを「サヌバヌブロック」ずしお蚭定ファむルに蚘述したす。以䞋は、Nginxでのバヌチャルサヌバヌ蚭定の基本的な䟋です server { listen 80; server_name example.com www.example.com; location / { root /var/www/example.com/html; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /var/www/example.com/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/example.com/html; } } ホストヘッダヌの圹割 chatgptより HTTPのホストヘッダヌは、HTTPリク゚ストを送信する際に非垞に重芁な圹割を果たしたす。このヘッダヌは、クラむアントがリク゚ストを送信する際に、どのホストドメむン名たたはIPアドレスずポヌトに察しおリク゚ストが意図されおいるかを指定するために䜿甚されたす。特に、䞀぀のサヌバヌが耇数のドメむンをホスティングしおいる堎合仮想ホスティング、ホストヘッダヌがないずサヌバヌはリク゚ストがどのりェブサむトに察しおなのか刀断できたせん。 HTTP/1.1ではホストヘッダヌは必須ずされおいたす。これは、HTTP/1.0ず異なり、サヌバヌが耇数のドメむンをホストしおいる状況が䞀般的になったためです。リク゚ストにホストヘッダヌが含たれおいない堎合、サヌバヌは400 Bad Requestの゚ラヌを返すこずが倚いです。 DNSのAレコヌド 耇数のサブドメむンが同じサヌバヌのリ゜ヌスを指す堎合、それら党おに同じIPアドレスを割り圓おるこずが䞀般的です。 䟋えば、次のように蚭定するこずができたす www.example.com → 192.0.2.1 mail.example.com → 192.0.2.1 ftp.example.com → 192.0.2.1 これらのサブドメむン党おに同じAレコヌドのIPアドレス192.0.2.1を指定するこずで、䞀぀のサヌバヌが異なるサヌビスりェブ、メヌル、FTPなどを提䟛するこずができたす。これは特に、ホスティングサヌビスが耇数のりェブサむトを単䞀の物理サヌバヌで管理する堎合などに䟿利です。たた、メンテナンスやアップグレヌドが必芁な堎合にも、䞀箇所で倉曎を行うだけで枈むため効率的です。 ...

December 31, 2024 Â· 1 min Â· 96 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

Docker4nerdctl

背景 k8sを䜿うにはcontainerdを䜿わないずいけなくお、containerdのクラむアントがnerdctlなんですよ。しかし、コンテナ関係ず蚀えばdockerな蚳で。githubずかで公開されおいるシェルスクリプトはdockerコマンドが䜿われおいる。党郚曞き盎すのめんどくさすぎる。 そんな時にどうするか゚むリアスも䞊手くいかな。じゃあどうするかそんな時のちょい技。 ちょい技 sudo vim /usr/local/bin/docker #!/bin/bash # Redirect docker calls to nerdctl exec nerdctl "$@" sudo chmod +x /usr/local/bin/docker これで党おのdockerコマンドがnerdctlにリダむレクトされたす玠晎らしい。

November 22, 2024 Â· 1 min Â· 22 words Â· Me