はじめに
iptablesが動いてるかどうかを監視しようと思ったけど、stackdriverのプロセス監視とかで出来なかったのでヘルスチェックが出来るWEB APIを作ってみた。
CentOS7ではiptablesではなく、firewalldで制御する。
作ってみた
ソースは以下。(40行もしない程度の簡単なやつ)
https://github.com/HirokiSakonju/iptables-healthchecker
動作確認
コンパイルしたバイナリを配置して起動。
$ sudo ./iptables_checker &
普通に動作している状態
$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-07-24 10:10:57 UTC; 2min 56s ago
Docs: man:firewalld(1)
Main PID: 355 (firewalld)
CGroup: /system.slice/firewalld.service
└─355 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Jul 24 10:10:56 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...
Jul 24 10:10:57 localhost systemd[1]: Started firewalld - dynamic firewall daemon.

firewalldが落ちたとき
$ sudo systemctl stop firewalld
$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Tue 2018-07-24 10:55:41 UTC; 51s ago
Docs: man:firewalld(1)
Process: 355 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 355 (code=exited, status=0/SUCCESS)
Jul 24 10:10:56 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...
Jul 24 10:10:57 localhost systemd[1]: Started firewalld - dynamic firewall daemon.
Jul 24 10:55:41 iptables-test systemd[1]: Stopping firewalld - dynamic firewall daemon...
Jul 24 10:55:41 iptables-test systemd[1]: Stopped firewalld - dynamic firewall daemon.
