h2o をリバースプロキシにして netdata を表示する

github.com

h2oHTTP/2対応のWebサーバです。 Proxy モジュールを利用することでリバースプロキシとして動作します。

CentOS7ではOpenSSL1.0.1がインストールされており*1ALPN(OpenSSL1.0.2以上)を利用するHTTP/2の利用要件を満たしません。 ですが、ここで紹介するh2oパッケージではLibreSSLをバンドルしており、HTTP/2を利用することが可能です。


環境

# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core) 

netdataのインストール

www.instrumedley.net


h2oのインストール

# cat <<EOF >/etc/yum.repos.d/h2o.repo
[bintray-tatsushid-h2o-rpm]
name=bintray-tatsushid-h2o-rpm
#If your system is CentOS
baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/centos/\$releasever/\$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF

#
# yum install h2o -y

h2oの設定(/etc/h2o/h2o.conf)

user: nobody
hosts:
  "www.example.com:443":
    listen:
      port: 443
      ssl:
        certificate-file: "/etc/pki/tls/certs/localhost.crt"
        key-file: "/etc/pki/tls/private/localhost.key"
    paths:
      "/":
        proxy.reverse.url: http://127.0.0.1:19999/
access-log: /var/log/h2o/access.log
error-log: /var/log/h2o/error.log
pid-file: /var/run/h2o/h2o.pid
# systemctl restart h2o.service

これで、https://www.example.com/からnetdataのダッシュボードにアクセスできるようになります。

*1:CentOS7.4以降はOpenSSL1.0.2がインストールされている

netdata dns_query_time プラグイン

github.com

dns_query_timeプラグインが追加されました。


環境

# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core) 

Requirement

python-dnspythonが必須です。

CentOSではpython-dnsパッケージをインストールする必要があります。

# yum install python-dns

設定(python.d/dns_query_time.conf)

aggregate: yes
dns_servers: '8.8.8.8 8.8.4.4'
domains: 'python.org distrowatch.com linuxmint.com linux.com rsyslog.com liblognorm.com archlinux.org cisco.com debian.org kernel.org gns3.com opera.com github.com youtube.com amazon.co.uk kde.org netdata.firehol.org ubuntu.com redhat.com opensuse.org wireshark.org vmware.com microsoft.com elastic.co'

初期状態ではコメントアウトされています。

aggregate

noにするとdns_serversで指定したDNSサーバ毎にグラフを表示します。

dns_servers

DNSサーバを指定します。複数指定する場合は、空白区切りで指定します。 DNSサーバのチェックにsocket.gethostbynameを利用している箇所があるのでIPv4のみの対応です。

domains

DNSサーバに問い合わせするドメインを指定します。複数指定する場合は、空白区切りで指定します。ここで指定したドメインからランダムに選択して、DNSサーバに問い合わせ(Aレコード)する様です。