Tomo-9925 / cnet

Controlling and logging communication of process in Docker container
2 stars 0 forks source link

MariaDBの通信情報が追えない #34

Closed Tomo-9925 closed 3 years ago

Tomo-9925 commented 3 years ago

ホスト上でmysqlのtcp情報を見ても,該当ポート(3306)の接続情報がない.

> pstree -lps 8662
systemd(1)───containerd(1084)───containerd-shim(8662)─┬─mysqld(8686)─┬─{mysqld}(8888)
                                                      │              ├─{mysqld}(8890)
                                                      │              ├─{mysqld}(8891)
                                                      │              ├─{mysqld}(8892)
                                                      │              ├─{mysqld}(8904)
                                                      │              ├─{mysqld}(8906)
                                                      │              ├─{mysqld}(8907)
                                                      │              ├─{mysqld}(9218)
                                                      │              └─{mysqld}(9923)
                                                      ├─{containerd-shim}(8663)
                                                      ├─{containerd-shim}(8664)
                                                      ├─{containerd-shim}(8665)
                                                      ├─{containerd-shim}(8666)
                                                      ├─{containerd-shim}(8667)
                                                      ├─{containerd-shim}(8668)
                                                      ├─{containerd-shim}(8669)
                                                      ├─{containerd-shim}(8670)
                                                      └─{containerd-shim}(8747)

> cat /proc/8686/net/tcp
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode                                                     
   0: 0B00007F:9919 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 8694150 1 0000000000000000 100 0 0 10 0

lsとlessを使って8694150のfdを検索すると,/proc/1401/fd/63 -> socket:[8694150]を発見.

> pstree -lps 1401
systemd(1)───dockerd(1401)─┬─docker-proxy(8655)─┬─{docker-proxy}(8656)
                           │                    ├─{docker-proxy}(8657)
                           │                    ├─{docker-proxy}(8658)
                           │                    ├─{docker-proxy}(8659)
                           │                    ├─{docker-proxy}(8660)
                           │                    └─{docker-proxy}(8661)
                           ├─docker-proxy(8791)─┬─{docker-proxy}(8792)
                           │                    ├─{docker-proxy}(8793)
                           │                    ├─{docker-proxy}(8794)
                           │                    ├─{docker-proxy}(8795)
                           │                    └─{docker-proxy}(8796)
                           ├─docker-proxy(17844)─┬─{docker-proxy}(17845)
                           │                     ├─{docker-proxy}(17846)
                           │                     ├─{docker-proxy}(17847)
                           │                     ├─{docker-proxy}(17848)
                           │                     ├─{docker-proxy}(17849)
                           │                     ├─{docker-proxy}(17850)
                           │                     └─{docker-proxy}(17851)
                           ├─{dockerd}(1434)
                           ├─{dockerd}(1435)
                           ├─{dockerd}(1436)
                           ├─{dockerd}(1437)
                           ├─{dockerd}(1438)
                           ├─{dockerd}(1440)
                           ├─{dockerd}(1445)
                           ├─{dockerd}(1455)
                           ├─{dockerd}(1456)
                           ├─{dockerd}(1457)
                           ├─{dockerd}(1473)
                           ├─{dockerd}(11359)
                           ├─{dockerd}(19833)
                           └─{dockerd}(6078)

dockerの通信情報が出てくる…

Tomo-9925 commented 3 years ago

tcp6に情報がありました…

> pgrep mysql
8686

> cat /proc/8686/net/tcp6
  sl  local_address                         remote_address                        st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
   0: 00000000000000000000000000000000:0CEA 00000000000000000000000000000000:0000 0A 00000000:00000000 00:00000000 00000000   999        0 8695008 1 0000000000000000 100 0 0 10 0
   1: 0000000000000000FFFF00000240A8C0:0CEA 0000000000000000FFFF00000806010A:C64A 01 00000000:00000000 02:0000D4BB 00000000   999        0 8707448 2 0000000000000000 20 4 25 10 -1

ipv6でも通信を受け付けれるようにしてますね…実行コマンドの変更でv4に変更できるか…?

起動コマンドに--bind-address=0.0.0.0を追加

> pgrep mysql
31991

> cat /proc/31991/net/tcp
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode                                                     
   0: 0B00007F:98DF 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 8903049 1 0000000000000000 100 0 0 10 0                   
   1: 00000000:0CEA 00000000:0000 0A 00000000:00000000 00:00000000 00000000   999        0 8902286 1 0000000000000000 100 0 0 10 0

できたー