256bitの殺人メニュー

インフラエンジニアだったソリューションアーキテクトなくわののブログ。こちらのBlogは個人の意見となっていて会社とは全く関係ありません。お約束です。[twitter:@kuwa_tw]めんどくさがりが重い腰を上げて何かをアウトプットすることにどれほどの意味があるのかを試してみたいブログでもある。

#DevLOVE Chef de DevOpsをお手伝いしました

DevOps なのかどーなのか。

DevLOVEさんの@さん よりDev(開発者)とOps(運用者)の合同のChefの勉強会を開きたいということでお話を頂いたのが、3ヶ月前くらい。
7/21に実施されました。

、、、Ops側、、、w

内容

会の流れを紹介しますとこのような感じで開かれました。

  • session1『Chefの下準備』 by Ryutaro YOSHIBAさん @
  • session2『ChefとCAと私』by 中島弘貴さん @ by (桑野章弘 @)
  • workshop『みんなでCooking』
  • dialog『試食会』world cafe
  • Niftyさんのスーパー宣伝タイム!!! 『Chef-ncとChefのテストについて』
  • beerbush『渾身会』

Chefの下準備(セッション)

セッション1では、@ さんによるChefを入れる前提に心がけなくては行けないことの話でした。
自動化や、デプロイスクリプトは最初に作らなければならない、という話。なかなかために(耳が痛い、、、(;O;))なりました。


セッション2では、@ による、CAでのChefの使い方の話、これから検討することは多いですが、割りと台数多めに使っておりますので役に立つことも多かったのではないでしょうか。
資料うp希望!(;O;)

みんなでCooking(ワークショップ)

といったところでChefに親しんだ所で、ワークショップに入りました。
引き続き、@nakashii_司会による、WordPressをChefで構築するというお題でした。各チームそれぞれ進めてもらっていて、初めてのChefという人が多くて四苦八苦していたチームもあれば、こちらで何も言わなくてもどんどん進めているチームもあったりでなかなか皆さん得るものがあったようです。

試食会(ワールドカフェ)

まだもうちょっとワークショップやりたい!という声も聞こえる中で、「Chefを使ってみて」というテーマでワールドカフェ形式でのディスカッションをしてみました。
ワールドカフェについての説明は割愛しますがDevLOVEさんではよく行われている形式らしく、慣れないながら面白いディスカッションができますた。
他のチームの話も聞くに、

  • 台数でのserverを使う分岐点
  • テスト方法(テストのフレームワーク化)
  • サーバの管理方法

などが焦点になっていたみたいです。

模造紙データ










ニフティさんのスーパー宣伝タイム

そして、今回のクラウド環境を提供していただいた(本当に有難うございます!!!)ニフティの竹内さんによる、Chef-ncとCucumber-chef を使ったテスト方法についてのセッションをしていただきました。

先ほどいっていたテストの話がキタ━(゚∀゚)━!とおもって興味深く聞きました。
サービスでいれるためのテストと言う意味では完全にコードテストの流れに入れればいいのかというところはいろいろ今後共考えていくことがあると思います。
資料うp希望です!(;O;)

追記

資料うpされました!(*゚∀゚)ノシ アリガトウゴザイマス!

まとめ

渾身会でも模造紙を見ながらいろんなディスカッションが行われていて、テストどーするとか、今後のChefのアーキテクチャ変更とか濃い話がたくさんできたので満足です!
いろいろ初めてのこともありうまく行かなかった部分もあったかもしれませんが、みなさん何か刺激になったということを言われていたので安心しました。
Chefユーザ会もできるだけ貢献できるといいね、という話をしておりました。
今後やっていくべきなのはテスト方法の確立や、ベストプラクティスの確立だと思いますので、今後共Chefなどで情報共有していけたらと思いまスネ!

最後に

参加者のみなさま。
発表していただいたみなさま。(なかしー!お疲れ様です!)
会場を貸していただいたフューチャーアーキテクトのみなさま。
クラウド環境を提供していただいた、ニフティのみなさま。
スタッフのみなさま。
本当にありがとうございました!

関連サイト

レポートブログ


Test-Driven Infrastructure With Chef

Test-Driven Infrastructure With Chef

MongoDB Casual Talksが開催されました

やりました

くるくるとはおもってましたが、まさかここまでのDIS大会になろうとは、、、モヒカンさんたち怖いです、、、!
まあでも言われてることはそーですね(苦笑)って思(う|っていた)所がおおいのであるので10genさん頑張って欲しいです。


資料おいておきますね!

MongoDBのアレをアレする
View more presentations from Akihiro Kuwano

いちおー、フォローしとくとw
1.8の頃はしばきたおしたろーと思ったことが多々ありましたが、2.0になってからは大分運用的に厳しい事は減ってきた印象です。
それでもハマる箇所があるのは間違いないですけど(;O;)
あとやっぱりNode.jsとの親和性が高いので、そこがなければおそらく使っていないのではというお話もあります。


NoSQLは適材適所ですので、どういうものか知るためにもCappedCollectionでもいいので一度触ってみるのは良いかと思います
(プロダクトに入れるかはおいておいてw)

最後に

参加者のみなさま。
発表していただいたみなさま。
DeNAのスタッフのみなさま。
本当にありがとうございました!


次があるのかよくわかりませんが、まだあきらめてはいないぞ!w
でも、まずはArangoDBを使ってみるよ!!!w

Apple Wireless Keyboard を明示的に電源断したい

今使っているMBAがやんごとなき事情にて日本語キーボードでありまして、日本語キーボードいやだったんで、Apple Wireless KeyboardのUSキーボードを使っております。


ちなみにこの構成で使っていると「やーい、キーボードオンキーボード」とか「それ、なんすか(笑)」みたいに色々言われますが、社内で何人かいるので*1愛しさと切なさと心強さがあるのでいいんだ。


この構成は大分慣れてきたんですが、たまーに、カバンに入れて運んでる時にキーボードが勝手に打たれてるらしくて、エライ文字がはいってて辛いことがあり、電源きれんのかなと思っておりました。
明示的に電源切る方法をメモっときます。(自分用)

  • キーボード側面の電源ボタン長押し

  • 緑のLEDが着くがまだ長押し
  • 緑のLEDが消えたら長押しをやめる


これで電源切れるらしいっす。
MAC使いへの道は遠い、、、。

[asin:B005DPEZ4Y:detail]

*1:というか他の人を真似たw

プロのためのLinuxシステム・10年効く技術を読みました

技術評論社さんから『プロのためのLinuxシステム・10年効く技術』を献本いただきました!ありがとうございます!



プロのための Linuxシステム・10年効く技術 (Software Design plus)

プロのための Linuxシステム・10年効く技術 (Software Design plus)


早速読ませていただいたのですが、かなり面白かったので紹介させて頂きます。

内容

何が面白かったかというと、まずこの本の構成でしたw
書き出しますが、

  • 一章 知らないと損するぞ! 押さえておきたいLinux内部構造
  • 二章 マシンがないとは言わせない! 仮想化でここまでできるインフラ環境構築
  • 三章 10番勝負! 自作スクリプトでコマンド活用
  • 四章最後の砦! カーネルソースを読む
  • 五章一歩先を行く! RHEL6新機能の総まとめ


これですw
Linuxの内部構造から、kvmの話にいき、シェルスクリプトや、Perlの話にいって、急にカーネルソースを読み、最後にRHEL6の機能説明と。
章ごとの流れとかはあんまりなくてびっくりしました。


びっくりしたんですが、びっくりしつつ、読み進めたコラムにあったこの1文がとてもしっくりきたので引用します。

「なぜこの技術が生まれたのか」「この技術は何の役に立つのか」、そして「自分だったらこの技術を使って、何を実現するのか」、そこまで考えていくと、これまでには思いもよらなかった
「広がり」のある勉強ができるはずです。


自分もそう思ってたことがありますが、この本はまさにこれが目的なのかなーっと思いました。


自分がやりたいこと、実現したいことのための土台作りの為の本だと思うと色々すっきりしました。
そういう視点でこれらの章を見なおしてみます。
Linuxの構造(CPU、メモリ、I/O)、サーバ仮想化、スクリプトを作る事、そしてカーネルソース。


例えば、Linuxの構造は障害切り分けや、検証などに不可欠な知識になります。
仮想化は検証環境構築のための知識。
スクリプト作成は運用改善やこれも検証。
カーネスソースは言わずもがなですが、最後の手段として、読めるようになることで見られる世界は広がります。


10年効く技術、というのは10年使い続けられる技術であるというのと同時に、10年以上活躍できるエンジニアになるための基礎知識である、ということなのだと思います。

オススメです

まだ始めたばっかりで右も左もわからないけど、自分の世界を広げたい人が最初に読む本として、もうバリバリやっている人でも一度基礎がためをしたい人にも良い本だと思います。
是非お手にとって見ていただければと思います。

最後に

以前出た本ですが、同じ中井悦司さん作の「プロのための Linuxシステム構築・運用技術」もいい本です。
こちらはとても正しく体系立てられたLinux運用・内部構造の本になっているので、あわせて読む事で更にLinuxへのとっつきをよくしてくれるかと思います。


プロのための Linuxシステム構築・運用技術 (Software Design plus)

プロのための Linuxシステム構築・運用技術 (Software Design plus)


プロのための Linuxシステム・10年効く技術 (Software Design plus)

プロのための Linuxシステム・10年効く技術 (Software Design plus)

mongostatのdiscoverオプションはエライ台数のmongoDBクラスタでは必須ですおの巻

以外にしらないんじゃないかなっと。

MongoDBの情報取るのに、mongostatってコマンドがあります。
すごい便利なコマンドなんですが、mongoDBの台数が多くなってくるとだんだんめんどくさくなってきますよね。
mongostatはdiscoverオプションが便利すぎるので、紹介。

1台ずつ指定

まずはオーソドックスに1台ずつ指定していきます。

$ mongostat --host 192.168.0.11:27018,192.168.0.12:27018

                        insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netOut  conn                       set repl       time
192.168.0.11:27018            0    540    167      0     258     671       0  36.1g  79.2g  14.5g      1      2.5          0       0|0     1|0   121k     1m  6116 RSTest1001    M   19:44:50
192.168.0.12:27018            0    469    215      0     313     639       0  30.1g  66.8g  15.5g      0      2.7          0       0|0     1|0   128k   984k  5504 RSTest1002    M   19:44:50

192.168.0.11:27018            0    531    154      0     237     561       0  36.1g  79.2g  14.6g      0      1.9          0       0|0     2|0   113k     1m  6116 RSTest1001    M   19:44:51
192.168.0.12:27018            0    471    178      0     278     536       0  30.1g  66.8g  15.5g      2      3.6          0       0|0     2|0   119k     1m  5504 RSTest1002    M   19:44:51

192.168.0.11:27018            0    580    174      0     252     654       0  36.1g  79.2g  14.5g      1      2.4          0       0|0     2|0   134k     1m  6116 RSTest1001    M   19:44:52
192.168.0.12:27018            0    524    238      0     317     665       0  30.1g  66.8g  15.5g      1      2.8          0       0|0     2|0   139k     1m  5504 RSTest1002    M   19:44:52
(snip)


でも、そのうち、

$ mongostat --host 192.168.0.11:27018,192.168.0.12:27018,192.168.0.13:27018,192.168.0.14:27018,192.168.0.15:27018,192.168.0.16:27018,192.168.0.17:27018,192.168.0.18:27018

って、これ多いわwww
ってなるタイミングがあると思います。
ウンウン辛いよね。わかるよ。

discoverオプション

これ、凄い便利です。勝手に指定したサーバが、

  • レプリカセットのメンバーなら各レプリカセットのメンバーをすべて取得する。
  • mongosにかけると、このmongosが管理しているシャードメンバーをすべて取得する

事ができます。

レプリカセットの場合
$ mongostat --discover --host 192.168.0.11:27018
connected to: 192.168.0.11:27018

                        insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netOut  conn                       set repl       time
192.168.0.41:27018            0    747    228      0     325     832       0  36.1g  79.2g  14.5g      1      3.6          0       0|0     2|0   163k     1m  6117 RSTest001    M   19:50:06

192.168.0.41:27018            0    612    180      0     273     654       0  36.1g  79.2g  14.6g      2      2.9          0       0|0     2|0   137k     1m  6117 RSTest001    M   19:50:07
192.168.0.51:27018       no data
192.168.0.61:27018       no data

192.168.0.41:27018            0    677    173      0     269     669       0  36.1g  79.2g  14.5g      0      2.2          0       0|0     2|0   136k     1m  6117 RSTest001    M   19:50:08
192.168.0.51:27018           *0     *0   *170     *0       0    23|0       0  32.1g  64.9g  14.4g      0        2          0       0|0     0|0     1k    11k   237 RSTest001  SEC   19:50:08
192.168.0.61:27018           *0     *0   *165     *0       0    25|0       0  34.1g  68.9g  14.2g      1      2.2          0       0|0     0|0     1k    12k   237 RSTest001  SEC   19:50:08

192.168.0.41:27018            0    473    172      0     255     631       0  36.1g  79.2g  14.5g      2      3.2          0       0|0     2|0   115k   924k  6117 RSTest001    M   19:50:09
192.168.0.51:27018           *0     *0   *174     *0       0    37|0       0  32.1g  64.9g  14.4g      2      2.6          0       0|0     0|0     2k    17k   237 RSTest001  SEC   19:50:09
192.168.0.61:27018           *0     *0   *179     *0       0    36|0       0  34.1g  68.9g  14.2g      1      2.4          0       0|0     0|0     2k    17k   237 RSTest001  SEC   19:50:09

192.168.0.41:27018            0    646    162      0     254     671       0  36.1g  79.2g  14.5g      0      2.1          0       0|0     2|0   138k     1m  6117 RSTest001    M   19:50:10
192.168.0.51:27018           *0     *0   *162     *0       0    23|0       0  32.1g  64.9g  14.4g      0        2          0       0|0     0|0     1k    11k   237 RSTest001  SEC   19:50:10
192.168.0.61:27018           *0     *0   *161     *0       0    24|0       0  34.1g  68.9g  14.2g      1      2.3          0       0|0     0|0     1k    12k   237 RSTest001  SEC   19:50:10
mongosの場合

こんな感じです、超大量なので一部。
これでクラスタに所属しているサーバすべての状況を見ることができます。

$ mongostat --discover --host 192.168.0.200:27017
connected to: 192.168.0.200:27017

                        insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netOut  conn                       set repl       time
(snip)
 192.168.0.72:27018          *0     *0   *206     *0       0    27|0       0  18.1g  36.9g  13.1g      0      2.3          0       0|0     0|0     1k    13k   238 RSTest24  SEC   19:53:04
 192.168.0.72:27019          *0     *0    *45     *0       0    24|0       0  20.1g  40.9g  8.32g      1        2          0       0|0     0|0     1k    12k   238 RSTest24  SEC   19:53:04
 192.168.0.73:27018           0    367    186      0     263     498       0  18.1g  42.3g  13.5g      0      2.2          0       0|0     2|0    97k     1m  5538 RSTest25    M   19:53:04
 192.168.0.73:27019           0    149     69      0     112     257       0  18.1g    42g  7.61g      1      1.9          0       0|0     2|0    47k     1m  5355 RSTest25    M   19:53:04
 192.168.0.74:27018          *1     *0   *185     *0       0    25|0       0  18.1g  36.9g  13.6g      1      2.9          0       0|0     0|0     1k    12k   238 RSTest25  SEC   19:53:04
 192.168.0.74:27019          *0     *0    *69     *0       0    24|0       0  18.1g  36.9g  7.99g      1      2.8          0       0|0     0|0     1k    12k   238 RSTest25  SEC   19:53:04
 192.168.0.75:27018          *1     *0   *185     *0       0    27|0       0  18.1g    37g  12.7g      0      2.2          0       0|0     0|0     1k    13k   238 RSTest25  SEC   19:53:04
 192.168.0.75:27019          *0     *0    *69     *0       0    25|0       0  18.1g  36.9g  8.63g      0      1.4          0       0|0     0|0     1k    12k   238 RSTest25  SEC   19:53:04
 192.168.0.76:27018           0    324    221      0     298     508       0  18.1g  42.3g  13.5g      0      2.5          0       0|0     2|0   102k     1m  5485 RSTest26    M   19:53:04
 192.168.0.76:27019          *0     *0    *46     *0       0    24|0       0  18.1g  36.9g  7.85g      0      0.8          0       0|0     0|0     1k    12k   238 RSTest26  SEC   19:53:04
 192.168.0.77:27018          *0     *0   *222     *0       0    26|0       0  18.1g  36.9g  13.6g      1      2.4          0       0|0     0|0     1k    13k   238 RSTest26  SEC   19:53:04
 192.168.0.77:27019           0    120     46      0      77     195       0  18.1g  42.1g  7.74g      0      0.9          0       0|0     2|0    35k   837k  5368 RSTest26    M   19:53:04
 192.168.0.78:27018          *0     *0   *222     *0       0    26|0       0  18.1g  36.9g  13.2g      0      2.1          0       0|0     0|0     1k    13k   238 RSTest26  SEC   19:53:04
 192.168.0.78:27019          *0     *0    *46     *0       0    23|0       0  18.1g  36.9g  8.26g      0        1          0       0|0     0|0     1k    11k   238 RSTest26  SEC   19:53:04
(snip)


基本的にはマスターの動作を見たいことが多いので、grepでMなど入れてみるのが良いですね。

$ mongostat --discover --host 192.168.0.200:27017 | grep M
connected to: 192.168.0.200:27017

                        insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netOut  conn                       set repl       time
(snip)
 192.168.0.73:27018           0    367    186      0     263     498       0  18.1g  42.3g  13.5g      0      2.2          0       0|0     2|0    97k     1m  5538 RSTest25    M   19:53:04
 192.168.0.73:27019           0    149     69      0     112     257       0  18.1g    42g  7.61g      1      1.9          0       0|0     2|0    47k     1m  5355 RSTest25    M   19:53:04
 192.168.0.76:27018           0    324    221      0     298     508       0  18.1g  42.3g  13.5g      0      2.5          0       0|0     2|0   102k     1m  5485 RSTest26    M   19:53:04
 192.168.0.77:27019           0    120     46      0      77     195       0  18.1g  42.1g  7.74g      0      0.9          0       0|0     2|0    35k   837k  5368 RSTest27    M   19:53:04
(snip)

以上です

小ネタでした。今度MongoDB Casualやる事になっておりますので、もうすぐに告知する予定ですので、是非参加よろしくお願いしまーす!((そろそろ準備しないと、、、(;´Д`)))
れっつらもんご!

MongoDB: The Definitive Guide

MongoDB: The Definitive Guide

#qpstudy 2012.05 でスタッフしました

ブログを書くまでが勉強会です。

ということで、ぼくのqpstudyが終わらないのでブログを書かせていただきます。

今回のテーマ

今回はズバリ「ハードウェアにしよう」と言うことになっていました。
5月ということで、”初心者にもやさしい”に立ち戻って新しい新人さんにもいっぱい来てもらおう、という事と、ハードウェアはやはりいろいろな考え方のベースになることなので新人さん向けとしてピッタリでは無いかということで、「エンジニアのためのハードウェア徹底入門」というタイトルで開催させていただきました!

裏テーマ

スタッフ内では、今回の勉強会は初心者なのでわかりやすく、、、ということは考えていませんでした。
いろいろ詰め込んで、何か一つでも持ってかえってもらえればいいなと言うことで考えていました。
というのと、実際エンジニアしていて、色々詰め込まれたものから何かを判断しないといけない場面って言うことがままありますので、そういう部分も先に味わってもらおうと言う意味合いもありますw
その目的は達成できたのではないかと思います!

具体的な内容

に関しては既にレビューしていただいてるブログがたくさんあるので、それらを見ていただけるとありがたいです。
セッションを簡単に説明。

というラインナップで行いました。コンセプトは間口は広く、そこからは狭くw


自分のセッションは最初のセッションということでできるだけわかりやすくということで寸劇形式で説明させていただきました!


なんか良くわかんない感じになって後ほどスタッフからは色々言われましたがw わかりやすいって言ってもらえたのでありがたかったですね(ほんとだろうかw)


資料もこちらにはっておきます。




懇親会

もいつものとおり盛り上がりましたが、今回はいつものビアバッシュLTとともに、初めてLTやってくれた学生の方がいてくれたのが一番うれしかったです。今後も初めてLTなどする人がやりやすい場所になってほしいなと思います。

そして

通算でいうと10回目+2周年目のqpstudyでした!
ということで懇親会前にスタッフでお祝いをしました。

最後に

来ていただいた方。
ついーとしていただいた方。
ust見ていただいた方。
LTしていただいた方。
スタッフのみんな、そしてリーダー!
ニフティさんマジニフティ
本当にありがとうございました!
qpstudy今後ともよろしくおねがいいたします!


なんか真面目になった!ごめんなさい!ごめんなさい!

参考URL

ssコマンドのちょっといい所見てみたい。のでネットワーク統計情報がどの程度見られるか試してみた。

netstatさんが時代遅れだって!?

netstat使ってるのは小学生までだよねー。
キャハハk(ry


、、、というのは冗談ですが、これからはssコマンドらしいって聞いたので、どんな感じで使えるか使ってみた。

ssコマンド

netstatの代替コマンドらしく、現在の通信状況の確認に使えるコマンドです。
メリットはsocketのrawでのsocketの扱いができる点かなと。
と、ipv6に強いところのようです。
でもあんまりipv6環境ってないですし、普段使いで代替になるかなーと思って見てみました。

基本的な使い方

netstatと似た感じっすよ。これ。

netstat
# netstat -naot
(snip)
tcp        0      0 192.168.100111:50271          192.168.10131:27218           ESTABLISHED keepalive (215.43/0/0)
tcp        0      0 192.168.100111:47743          192.168.101241:27118          ESTABLISHED keepalive (32.57/0/0)
tcp        0      0 192.168.100111:52676          192.168.1011:27218            ESTABLISHED keepalive (215.50/0/0)
tcp        0      0 192.168.100111:41431          192.168.254.21:389           ESTABLISHED off (0.00/0/0)
tcp        0      0 192.168.100111:38816          192.168.101242:27120          ESTABLISHED keepalive (89.38/0/0)
tcp        0      0 192.168.100111:43809          192.168.101243:27120          ESTABLISHED keepalive (247.80/0/0)
tcp        0      0 192.168.100111:50425          192.168.101242:27119          ESTABLISHED keepalive (248.01/0/0)
tcp        0      0 192.168.100111:52652          192.168.101241:27120          ESTABLISHED keepalive (212.13/0/0)
tcp        0      0 192.168.100111:34333          192.168.101243:27118          ESTABLISHED keepalive (266.52/0/0)
tcp        0      0 192.168.100111:54485          192.168.10162:27218           ESTABLISHED keepalive (215.45/0/0)
tcp        0      0 192.168.100111:52269          192.168.10119:27218           ESTABLISHED keepalive (225.53/0/0)
tcp        0      0 192.168.100111:50540          192.168.101242:27119          ESTABLISHED keepalive (146.26/0/0)
tcp        0      0 192.168.100111:47996          192.168.101241:27119          ESTABLISHED keepalive (230.38/0/0)
tcp        0      0 192.168.100111:34949          192.168.101242:27118          ESTABLISHED keepalive (266.87/0/0)
tcp        0      0 192.168.100111:35726          192.168.1017:27218            ESTABLISHED keepalive (32.53/0/0)
tcp        0      0 192.168.100111:43851          192.168.101243:27120          ESTABLISHED keepalive (182.12/0/0)
tcp        0      0 :::22                       :::*                        LISTEN      off (0.00/0/0)
ss

これをssに置き換えるとこんな感じになります。
多少見やすい&詳しいかなーって感じですね。

# ss -nae
(snip)
ESTAB      0      0              192.168.0.111:47892         192.168.1.241:27119  timer:(keepalive,4min4sec,0) uid:30124 ino:107616063 sk:ffff8802a5a82740
ESTAB      0      0              192.168.0.111:46282          192.168.1.55:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616197 sk:ffff8803364f6240
ESTAB      0      0              192.168.0.111:57590          192.168.1.63:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616261 sk:ffff8806372970c0
ESTAB      0      0              192.168.0.111:36083           192.168.1.9:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616119 sk:ffff8803e1978e80
ESTAB      0      0              192.168.0.111:52569          192.168.1.29:27218  timer:(keepalive,4min45sec,0) uid:30124 ino:107616324 sk:ffff880634e3eb40
ESTAB      0      0              192.168.0.111:46785         192.168.1.243:27120  timer:(keepalive,3min47sec,0) uid:30124 ino:107797363 sk:ffff8802486582c0
ESTAB      0      0              192.168.0.111:48190          192.168.1.65:27218  timer:(keepalive,4min4sec,0) uid:30124 ino:107616154 sk:ffff8803e1978800
ESTAB      0      0              192.168.0.111:43882         192.168.1.243:27120  timer:(keepalive,3min35sec,0) uid:30124 ino:107616213 sk:ffff880635458fc0
ESTAB      0      0              192.168.0.111:52283          192.168.1.19:27218  timer:(keepalive,1min37sec,0) uid:30124 ino:107616334 sk:ffff880635562b80
ESTAB      0      0              192.168.0.111:54417          192.168.1.15:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616229 sk:ffff880615bbc280
ESTAB      0      0              192.168.0.111:50442         192.168.1.242:27119  timer:(keepalive,40sec,0) uid:30124 ino:107616065 sk:ffff8802a5a820c0
ESTAB      0      0              192.168.0.111:34471         192.168.1.243:27118  timer:(keepalive,36sec,0) uid:30124 ino:107616356 sk:ffff8806359c52c0
ESTAB      0      0              192.168.0.111:50356          192.168.1.31:27218  timer:(keepalive,4min4sec,0) uid:30124 ino:107616264 sk:ffff880636364380
ESTAB      0      0              192.168.0.111:39473         192.168.1.243:27119  timer:(keepalive,1min41sec,0) uid:30124 ino:107615955 sk:ffff8803346b4700
ESTAB      0      0              192.168.0.111:34946         192.168.1.242:27118  timer:(keepalive,3min35sec,0) uid:30124 ino:107616348 sk:ffff880634451280
ESTAB      0      0              192.168.0.111:40771          192.168.1.14:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616227 sk:ffff880615bbc900
ESTAB      0      0              192.168.0.111:34211          192.168.1.17:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616243 sk:ffff8806357936c0
ESTAB      0      0              192.168.0.111:47727         192.168.1.241:27118  timer:(keepalive,14sec,0) uid:30124 ino:107615880 sk:ffff8803249fec00
ESTAB      0      0              192.168.0.111:50242          192.168.1.10:27218  timer:(keepalive,1min37sec,0) uid:30124 ino:107616328 sk:ffff880248659640
ESTAB      0      0              192.168.0.111:41378          192.168.1.46:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616124 sk:ffff88030edbad80
ESTAB      0      0              192.168.0.111:36003          192.168.1.16:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616241 sk:ffff880634fee300
ESTAB      0      0              192.168.0.111:53680          192.168.1.36:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616083 sk:ffff880336608800
ESTAB      0      0              192.168.0.111:39591         192.168.1.243:27119  timer:(keepalive,3min35sec,0) uid:30124 ino:107616286 sk:ffff88063578f7c0
ESTAB      0      0              192.168.0.111:38896         192.168.1.242:27120  timer:(keepalive,4min40sec,0) uid:30124 ino:107616217 sk:ffff8806354582c0
ESTAB      0      0              192.168.0.111:56871          192.168.1.54:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616173 sk:ffff88030efe9600
ESTAB      0      0              192.168.0.111:44895          192.168.1.56:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616199 sk:ffff88030efe8f80
ESTAB      0      0              192.168.0.111:36694          192.168.1.61:27218  timer:(keepalive,4min35sec,0) uid:30124 ino:107616257 sk:ffff880636364a00

ちょっと便利な使い方

netstatでできない使い方を模索するの巻。

現状のESTAB数などを簡単に出す。

netstatだとgrep -cとかしてちょっと重いし時間かかるしでどーよこれってのがないのはよいですね。

# ss -s
Total: 310 (kernel 575)
TCP:   9326 (estab 112, closed 9201, orphaned 1, synrecv 0, timewait 9201/0), ports 18

Transport Total     IP        IPv6
*         575       -         -
RAW       0         0         0
UDP       14        8         6
TCP       125       121       4
INET      139       129       10
FRAG      0         0         0
フィルタで条件切って検索できる

例えばFIN-WAIT-1のものだけ検索とか。

# ss -en -o state fin-wait-1 '( sport = :http or sport = :https  )' | less
Recv-Q Send-Q             Local Address:Port               Peer Address:Port
0      10273                192.168.0.52:80                    192.168.100.100:60463  timer:(on,200ms,0) ino:0 sk:ffff88063678a7c0
0      206                  192.168.0.52:80                   192.168.100.101:54980  timer:(on,175ms,0) ino:0 sk:ffff880634b7f4c0
0      131000               192.168.0.52:80              192.168.100.102:47476  timer:(persist,107ms,0) ino:0 sk:ffff880335c9ab80

デメリット

netstat -sがない!!!!!!!!!
致命的といえば致命的である。

そんな感じ。

まあ無理に使わなくてもいいかなーって思いますけど、動作が軽いので大分トラフィックでサーバ負荷がかかってる状況で情報取得したい時は使えるかなーって思いましたまる


マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版


追記

CentOS6には標準で入ってましたが、CentOS5には標準で入ってないようです。