コピペコードで快適生活

明日使えるソースを自分のために

GTMの用語メモ

GoogleTagManagerをはじめて使ったので用語をメモ。

  • アカウント(GTM埋め込みコードと1対1対応)
    • workspace
      • 複数持つことができる下書き
      • git branch みたいなの
      • workspaceで修正したものはプレビューで確認可能
      • 公開とするとこで本番反映される
    • タグ(実際に埋め込むタグ)
      • 何のタグを埋め込むかを設定
      • トリガーと紐付けて設定する
    • トリガー(発動条件)
      • host名やpathやクエリパラメータなどで指定

consulのリーダー選出の仕組み

よくわかっていなかったのでメモ。

consulのリーダー選出には、Raft プロトコル(分散合意アルゴリズム)が使用されている。

  • 各ノードは次の3つのステートを持つ。
    • leader
    • follower
    • candidate
  • 遷移
    1. 起動直後はみんな follower
    2. followerはランダムなTimeout(150ms~300ms)値を持ち、過ぎると candidate に変わる。
      • 非サーバモードの場合は candidate にならない
    3. candidate になると自分のtermをインクリメントする # よくわからない
    4. candidate は各ノード(follower)にRequestVoteRPC(投票リクエスト)をブロードキャストする
    5. follower RequestVoteRPCを受け取ったら自分のTimeoutをリセットして、投票レスポンスをする
      • follower は最初にRequestVoteRPCを投げた candidate に投票する
    6. 過半数以上の得票を受け取った時点で candidateleader になる
    7. leader は定期的にAppendEntriesRPC(ハートビート)を各 follower にブロードキャストする
    8. follower はハートビートを受け取ると自分のTimeoutをリセットする
  • 参照

CentOS7にcurl最新版をインストールする

古いディストリビューションへの最新のパッケージ提供を行っている city-fan からyumリポジトリを取得して、そこからインストールする。

rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-2-1.rhel7.noarch.rpm
yum -y install libcurl libcurl-devel --enablerepo=city-fan.org

ルーティングの確認&更新

よくわかっていなかったので整理。

# ルーティングテーブルの確認
route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    100    0        0 eth0  # デフォルトゲートウェイ = 192.168.0.1
default         192.168.0.1     0.0.0.0         UG    101    0        0 eth1  # 〃
172.16.0.0      172.16.0.1      255.255.255.0   UG    0      0        0 eth1  # 172.16.0.0/24への通信は172.16.0.1へ転送する
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0  # 192.168.1.0/24への通信はデフォルトゲートウェイ(0.0.0.0)へ転送する
192.168.0.10    172.16.0.1      255.255.255.255 UH    100    0        0 eth1  # 192.168.0.10への通信は172.16.0.1へ転送する

# ルールを追加
route add -net 192.168.0.20 netmask 255.255.255.255 gw 172.16.0.1 eth1

# ルールを削除
sudo route del -net 192.168.0.10 netmask 255.255.255.255 gw 172.16.0.1 eth1

# デフォルトゲートウェイを削除
sudo route del default netmask 0.0.0.0 gw 192.168.0.1 eth1

LVSとかkeepalivedとか

用語の整理

コマンドメモ

# 確認
# TCP接続の状態がESTABLISHEDになったらActiveConnを増やし、
# その他の状態になったらInActConnを増やしています。
sudo ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.1:80 rr  # 外向きのIP
  -> 192.168.0.10:80              Route   1      0          0
  -> 192.168.0.11:80              Route   1      0          0
TCP  10.0.0.1:443 rr # 外向きのIP
  -> 192.168.0.10:443             Route   1      0          0
  -> 192.168.0.11:443             Route   1      0          0

# 192.168.0.12 を足す
# -a は addモード
# -t は受け口
# -r は転送先
# -m オプションを付けるとForward=Masq(NAT接続)になる。
sudo ipvsadm -a -t 10.0.0.1:80 -r 192.168.0.11:80 ; sudo ipvsadm -e -t 10.0.0.1:443 -r 192.168.0.12:443 

# 192.168.0.10のweightを0にする
# -e は editモード
# -w は重み付け
sudo ipvsadm -e -t 10.0.0.1:80 -r 192.168.0.10:80 -w 0; sudo ipvsadm -e -t 10.0.0.1:443 -r 192.168.0.10:443 -w 0

参考

CentOS7 systemd のファイル・フォルダ構成

/etc/init.d に慣れすぎて覚えられないのでメモ。

  • /usr/lib/systemd/system
    • CentOS 7 のデフォルトで設定されているサービスや、yum などで提供されているソフトウェアをインストールした際のデフォルト設定を保存する
  • /etc/systemd/system
    • サーバーの管理者が独自に変更・編集した設定ファイル
    • 同名のファイルがある場合は、こちらが優先される。

参考

https://weblabo.oscasierra.net/centos7-systemd-files/