BIG-IPの状態確認チートシート

## はじめに
BIG-IPを利用している環境で問題が発生し、
BIG-IPに関する状況を見たい～といった場合に実際に参考になりそうなメモ。

## 前提
* BIG-IP Version  11.2.1
* CLI(GUIでも見れますが結構癖がありそう。。。)
* TMSHが使える事
 * コマンドレベルで見るならBIG-IPバージョンよりもこちらの方が重要なのかも。
 * TMSHが消える事はなかなかないと思いますが

BIG-IPやロードバランサの基礎知識はある程度あるものとします。

* 負荷分散、パーシステンス、モニターの概念とか
* バーチャルサーバ、プール、ノードの関係性とか
* External(一般的にクライアントサイド)とかInternal(一般的にサーバサイド)とか
* TMSHの性質

TMSHはCiscoライクなツリー構造なコマンド体系となっており、
下記のような形式になっている。

`コマンド  [モジュール]  [コンポーネント]  [パラメータ]`

コマンドは目的別にわかりやすく分類されているので、
設定を追加したい = create
設定内容を見たい = list

といった感じで直感的に使える。
モジュール、コンポーネント、パラメータはある程度形式を覚える必要があるが、
`?`やTabを入力すれば、かなーり親切に入力候補を出してくれる。

| コマンド | 説明 |
|----|----|
| list | 設定内容を確認 |
| show | 統計情報やステータス表示 |
| create| 設定追加 |
| modify | 設定変更|
| delete | 設定削除 |
| save | 設定保存 |

[TMSHについて](http://d.hatena.ne.jp/eco31/20110227/1298732661)

## 確認コマンド

とりあえず、BIG-IPの一通りの状態の見方と、
明らかに問題が発生しているところがわかっている(通報等で)前提の確認の仕方です。

### プロセス毎のBIG-IPの負荷状況確認
```
tmstat
```

### BIG-IPの通信状況に関する状況確認

```
bigtop
```
```
bigtop -conn
```
```
bigtop -once
```

* 表示例

```
                              |  bits  since       |  bits  in prior    |  current
                              |  Oct 18 16:38:17   |  4 seconds         |  time
BIG-IP      STANDBY           |---In----Out---Conn-|---In----Out---Conn-|  14:26:33
xxxxxxxxxx.xxxxxx.co.jp        2.020T 5.826T 45.37M  53408  36544     50

VIRTUAL ip:port               |---In----Out---Conn-|---In----Out---Conn-|-Nodes Up--
/Common/xxx.xxx.xxx.xxx:http     858.8G 4.682T 8.264M      0      0      0      4
/Common/0.0.0.0:any            334.9G 1.118T 2.328M      0      0      0      0
/Common/xxx.xxx.xxx.xxx:http         0      0      0      0      0      0      1
/Common/xxx.xxx.xxx.xxx:http         0      0      0      0      0      0      2
/Common/xxx.xxx.xxx.xxx:http         0      0      0      0      0      0      1
/Common/xxx.xxx.xxx.xxx:9110         0      0      0      0      0      0      2
/Common/xxx.xxx.xxx.xxx:9130         0      0      0      0      0      0      2
/Common/xxx.xxx.xxx.xxx:9140         0      0      0      0      0      0      2
/Common/xxx.xxx.xxx.xxx:http         0      0      0      0      0      0      2
/Common/xxx.xxx.xxx.xxx:9120         0      0      0      0      0      0      2

NODE ip:port                  |---In----Out---Conn-|---In----Out---Conn-|--State----
/Common/xxxxxxxxxx:http        219.1G 1.197T 2.066M      0      0 2.066M UP
/Common/xxxxxxxxxx:http        219.4G 1.184T 2.059M      0      0 2.059M UP
/Common/xxxxxxxxxx:http        218.0G 1.172T 2.029M      0      0 2.029M UP
/Common/xxxxxxxxxx:http        217.2G 1.161T 2.038M      0      0 2.038M UP
/Common/xxxxxxxxxx:irdmi            0      0      0      0      0      0 UP
/Common/xxxxxxxxxx:vcom-tunnel      0      0      0      0      0      0 UP
/Common/xxxxxxxxxx:irdmi            0      0      0      0      0      0 DOWN
/Common/xxxxxxxxxx:irdmi            0      0      0      0      0      0 UP
/Common/xxxxxxxxxx:9110             0      0      0      0      0      0 UP
/Common/xxxxxxxxxx:9110             0      0      0      0      0      0 UP

```


### プール、ノードのモニターの状況確認
```
tmsh show ltm pool <プール名>
```
```
tmsh show ltm node <ノード名>
```

### ハードウェアステータスの確認
```
tmsh show sys hardware
```

パッと見、異常が見えない時はコネクションやセッション情報を見る。

### プールメンバ毎のコネクション、セッション数の確認

```
tmsh show ltm pool <プール名> members | grep -e "Ltm::Pool Member" -e "Current .*-$" -e "Current S.*-"
```

### Externalのコネクション情報
```
tmsh show sys connection cs-server-addr <バーチャルIPアドレス>
```
```
tmsh show sys connection cs-server-addr <バーチャルIPアドレス> all-properties
```

### Internalのコネクション情報
```
tmsh show sys connection ss-server-addr <ノードIPアドレス>
```
```
tmsh show sys connection ss-server-addr <ノードIPアドレス> all-properties
```

### ログ見る
```
show sys log <モジュール>
```

## 参照URL
http://www.infraeye.com/study/studyz7.html
http://www.infraeye.com/study/studyz6.html
http://vre.sakura.ne.jp/cgi-bin/pukiwiki/index.php?Network%2FBIG-IP#ub614199
http://qiita.com/STomohiko/items/746a78b2893bd69d4e62