SlideShare a Scribd company logo
1 of 35
Download to read offline
モニカジ#3
はてなのNagios

    株式会社はてな システムプラットホーム部
    id:shoichimasuhara
■ 自己紹介
●   id:shoichimasuhara
●   Twitter:@shoichimasuhara
●   所属:株式会社はてな システムプラットホーム部
●   経歴
    ●   塾
    ●   陸自
    ●   レンサバ屋
    ●   はてなインフラ (イマココ)
■ はてなのNagios
●   はてなは以前から分散Nagios監視をしています

●   サーバ管理ツールにデータを蓄え、それと連携
    して(一部の)コンフィグを自動生成しています
■ 分散監視Nagios



               監視自体は末端のNagiosが、
               通知やWebの表示は
               中央のNagiosが行う仕組みです
■ 分散監視Nagiosのメリット
●   負荷の分散
●   監視ホストと被監視ホストの距離が問題になら
    ない
    ●   例えばpingの速度を監視していてもリージョンをま
        たぐとゆらぎが出やすかったり遅すぎたり
    ●   距離が長くなると障害点が発見しづらい
●   単純に分散させるのに比べてデータの一元化に
    より中央のWeb UIで確認できたりして便利
● 多すぎる監視対象
   ● 多すぎる監視項目

    ● さらに分散監視



    これらに対応するため
 サーバ管理ツールの支援を受けて
設定ファイルを自動生成しています
■ サーバ管理ツール



         はてなでは
         mackerel と呼んでいる
         自社製のサーバ管理ツール
         を使っています
■ サーバ管理ツールのデータ構造
●   サービス (ブックマーク、ブログなど)
●   ロール (App、DBなど)
サーバ管理ツールと連携する
 Nagiosの分散監視設定
■ 静的設定ファイルの配置
●    /etc/nagios への symlink を張り替えることで中央/分散
     Nagiosを切り替え
●    設定ファイルは nagios.cfg 以外ほとんど中央Nagiosのディレ
     クトリに入れて symlink で共通化しています
    /etc/nagios -> /path/to/nagios-conf/etc/central #中央Nagios
    /etc/nagios -> /path/to/nagios-conf/etc/distributed #分散Nagios

    /path/to/nagios-conf
    ├── bin
    ├── etc
    │   ├── central
    │   │   ├── nagios.cfg
    │   │   ├── objects
    │   │   │   ├── commands.cfg
    │   │   │   ├── contactgroups.cfg
    │   │   │   ├── contacts.cfg
    │   │   │   ├── services.cfg
    │   │   │   ├── templates.cfg
    │   │   │   └── timeperiods.cfg
    │   │   └── resource.cfg
    │   ├── distributed
    │   │   ├── nagios.cfg
    │   │   ├── objects
    │   │   │   ├── commands.cfg -> ../../central/objects/commands.cfg
    │   │   │   ├── services.cfg -> ../../central/objects/services.cfg
    │   │   │   ├── templates.cfg -> ../../central/objects/templates.cfg
    │   │   │   └── timeperiods.cfg -> ../../central/objects/timeperiods.cfg
    │   │   └── resource.cfg -> ../central/resource.cfg
■ 設定自動生成
●   設定ファイルはGit管理
●   サーバ管理ツールからホスト一覧を取ってきてホスト
    定義ファイルを生成
●   サービス定義ファイルは
     /path/to/cfg/${service}/${role}.cfg
    に置いてある
●   hostgroup ${service}-${role} を作って対応付け
●   中央Nagios用のサービス定義は正規表現などで普通の
    サービス定義から自動生成
■ 問題点
●   ほとんど同じ設定なのに(例えばMySQLの監視とか)新
    しいサービスを作るときはサービス定義ファイ
    ルを作らないといけない
    ●   例えば blog/db.cfg と bookmark/db.cfg の内容が
        ほぼ同じ、とか
●   たまに作り忘れて監視漏れ
●   もはや古い
    ●   nagios.cfg 含め設定がカオス
    ●   設定自動生成スクリプトがカオス
新しくしよう
ということで
最近、サーバ管理ツールから作り直しました
■ サーバ管理ツール (新)




             mackerel2
■ 何が変わった?
●   “タグ”という概念を導入しました
    ●   blog-db も bookmark-db も mysqlというタグ をつ
        ければグルーピング出来る
    ●   「え、それだけ?」と思われるかもしれませんが、
        いままでそれがなかった
●   その他いろいろ変わりましたがそれは後ほど
■ サーバ管理ツール(新)のデータ構造
●   タグを含めたデータ構造を表すとこんな感じ
“タグ”を使った

サーバ管理ツールと連携する
 Nagiosの分散監視設定
■ 静的設定ファイルの配置 (新Naios)
●   /etc/nagios への symlink を張り替えること
    で中央/分散Nagiosを切り替え
●   設定ファイルは nagios.cfg 以外ほとんど中央
    Nagiosのディレクトリに入れて symlink で共
    通化しています
●   設定ファイル全部整えた
■ 設定自動生成(新Nagios)その1
●   設定ファイルはGit管理
●   サーバ管理ツールからホスト一覧を取ってきてホスト定義
    ファイルを生成
●   サービス定義ファイルは
    /path/to/cfg/tags/${tag}.cfg
      もしくは
    /path/to/cfg/services/${service}/${role}/${tag}.cfg
    に置いてある
■ 設定自動生成(新Nagios)その2
●   ホストの対応付けは、サービス定義ファイル
        …/services/${service}/${role}/${tag}.cfg
    が
    ●   ある場合は
        hostgroup ${service}::${role}::${tag}
        を定義して対応付け
    ●   ない場合は
         hostgroup ${tag}
        に参加させて対応付け
■ 設定自動生成(新Nagios)その3
●   もう正規表現で頑張らない
●   中央Nagiosサービス定義作成は通常のNagiosの設定を
    1.Nagios::Object::Config でパース
    2.以下のパラメタを強制的に設定
       • active_check_enabled = 0


       • check_command = 'check_dummy!2...


       • check_freshness = 1


       • freshness_threshold ||= 10800


    3.テンプレートエンジンに食わせて生成
    という形に変えました (だいぶすっきりした)
■ 結局どう変わる?
●   ホストを建てた時に自動的に設定が入るのは今までどおり
●   新しいサービス/ロールを追加するときも新しい設定(ポート変更
    とか)がない限り、サーバ管理ツールでタグをポチれば分散監視
    が入る
●   Nagiosリポジトリの設定追加は新しいミドルウェアを追加すると
    きぐらい
●   つまりNagiosの設定変更が少なくなった
●   ほとんどタグの設定のみなので重複設定がなくなり設定ファイル
    を大幅に削減出来た
●   監視漏れの心配が(ほぼ)なくなる
■ 課題
●   Passiveチェックが中央でしか受けられない
●   中央サーバの冗長化
■ はてなNagiosのさらに詳細は
●   話が込み入って長くなるので、ご興味ある方は
    後ほどお声がけください
話の流れで
新サーバ管理ツール
 の紹介ももう少し
■ サーバ管理ツール (新) (再掲)




             mackerel2
■ サーバ管理ツール新旧相違点
●   データ構造の整理
●   Nagiosとの連携疎結合化 (API化)
●   “タグ”という概念を導入した
●   分散RRDの仕組みを導入した
●   Perlになった (旧システムはRailsベース)

     “なぜ国内でPerlが急速に萎んだのか”
     http://anond.hatelabo.jp/20130307004741
■ 分散RRDのところだけ紹介
●   万を越えるRRDファイルの更新ツライ
●   いままではSSDで頑張ってきた
●   awsとかどうする
●   RRDも(Nagiosと同じく)分散しましょう
■ 分散RRD 大雑把な構造



     ② RRDストレージ検索(MySQL)

①グラフ画像要求(HTTP)

                     ③グラフ画像要求(rrdcached)
■ 結構安直な作り
●   設置
    ●   RRDストレージと呼んでいる、クローラ同梱のRRD
        ファイルを蓄えたホストを複数設置
    ●   ホストとRRDストレージホストの対応をMySQLに登録
        しておく
    ●   クローラは自分の担当分だけクローリング
●   閲覧
    ●   グラフの担当RRDストレージを検索
    ●   RRDストレージの rrdcached に対してgraphリクエ
        ストを投げて画像バイナリを貰う
    ●   そのままブラウザに投げ返す
■ 問題点
●   RRDストレージをまたいだグラフの描画がで
    きない
    ●   サービスごと、リージョンごとなど分割に工夫
        が必要
●   rrdcachedに関するノウハウが少ない
■ サーバ管理ツールの今後の希望
●   オープンソース化? (新Nagiosも込で
●   RRDによるいろいろな予測機能付けたいですね
     わかりやすい例:ディスク溢れ予測

More Related Content

What's hot

MySQLをプロファイる(仮)
MySQLをプロファイる(仮)MySQLをプロファイる(仮)
MySQLをプロファイる(仮)yoku0825
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験yoku0825
 
STNSサーバーを書いてみた
STNSサーバーを書いてみたSTNSサーバーを書いてみた
STNSサーバーを書いてみたYoshinori Teraoka
 
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbcZabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbc真乙 九龍
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualYasuhiro Matsuo
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?yoku0825
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたdo_aki
 
Rancher Meetup Tokyo #4 Intro
Rancher Meetup Tokyo #4 IntroRancher Meetup Tokyo #4 Intro
Rancher Meetup Tokyo #4 IntroYosuke Shindo
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsNaoki Sega
 
Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記96smcln
 
Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.Tadayasu Yotsu
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニングCraft works
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説Shoken Fujisaki
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストKen Sawada
 
Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料学 松崎
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 
MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編Takanori Sejima
 

What's hot (20)

MySQLをプロファイる(仮)
MySQLをプロファイる(仮)MySQLをプロファイる(仮)
MySQLをプロファイる(仮)
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
 
STNSサーバーを書いてみた
STNSサーバーを書いてみたSTNSサーバーを書いてみた
STNSサーバーを書いてみた
 
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbcZabbix による ms sql監視 ~データベースモニタリング~ odbc
Zabbix による ms sql監視 ~データベースモニタリング~ odbc
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?
 
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
 
Rancher Meetup Tokyo #4 Intro
Rancher Meetup Tokyo #4 IntroRancher Meetup Tokyo #4 Intro
Rancher Meetup Tokyo #4 Intro
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
 
Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記
 
Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニング
 
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
 
Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
My sqlとplugin
My sqlとpluginMy sqlとplugin
My sqlとplugin
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 

Viewers also liked

はてなブックマークのシステムについて
はてなブックマークのシステムについてはてなブックマークのシステムについて
はてなブックマークのシステムについてNaoya Ito
 
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介OSSラボ株式会社
 
Aerospike on IDCF Cloud
Aerospike on IDCF CloudAerospike on IDCF Cloud
Aerospike on IDCF CloudIDC Frontier
 
障害対応・運用におけるトリアージ的対応とZabbixの活用
障害対応・運用におけるトリアージ的対応とZabbixの活用障害対応・運用におけるトリアージ的対応とZabbixの活用
障害対応・運用におけるトリアージ的対応とZabbixの活用Masahito Zembutsu
 
高等学校での プロジェクトマネジメント教育 ~その実践のための実技演習~
高等学校でのプロジェクトマネジメント教育~その実践のための実技演習~高等学校でのプロジェクトマネジメント教育~その実践のための実技演習~
高等学校での プロジェクトマネジメント教育 ~その実践のための実技演習~Ayako Togaeri
 
インターネッツの繋がるしくみ(TCP/IP編) #sa_study
インターネッツの繋がるしくみ(TCP/IP編) #sa_studyインターネッツの繋がるしくみ(TCP/IP編) #sa_study
インターネッツの繋がるしくみ(TCP/IP編) #sa_studyShinichiro Yoshida
 

Viewers also liked (6)

はてなブックマークのシステムについて
はてなブックマークのシステムについてはてなブックマークのシステムについて
はてなブックマークのシステムについて
 
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
 
Aerospike on IDCF Cloud
Aerospike on IDCF CloudAerospike on IDCF Cloud
Aerospike on IDCF Cloud
 
障害対応・運用におけるトリアージ的対応とZabbixの活用
障害対応・運用におけるトリアージ的対応とZabbixの活用障害対応・運用におけるトリアージ的対応とZabbixの活用
障害対応・運用におけるトリアージ的対応とZabbixの活用
 
高等学校での プロジェクトマネジメント教育 ~その実践のための実技演習~
高等学校でのプロジェクトマネジメント教育~その実践のための実技演習~高等学校でのプロジェクトマネジメント教育~その実践のための実技演習~
高等学校での プロジェクトマネジメント教育 ~その実践のための実技演習~
 
インターネッツの繋がるしくみ(TCP/IP編) #sa_study
インターネッツの繋がるしくみ(TCP/IP編) #sa_studyインターネッツの繋がるしくみ(TCP/IP編) #sa_study
インターネッツの繋がるしくみ(TCP/IP編) #sa_study
 

Similar to はてなのNagios - モニカジ#3

Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12matsuo kenji
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』Naoya Hashimoto
 
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化Daisuke Ikeda
 
Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Hitoshi Yoshida
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws   sqaleの場合サーバ構築自動化 On aws   sqaleの場合
サーバ構築自動化 On aws sqaleの場合Ryo Kuroda
 
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天Hiro Yoshioka
 
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -Yukihiko SAWANOBORI
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo LinuxについてTakuto Matsuu
 
内製パッケージによるHadoopデータ解析基盤の構築と運用
内製パッケージによるHadoopデータ解析基盤の構築と運用内製パッケージによるHadoopデータ解析基盤の構築と運用
内製パッケージによるHadoopデータ解析基盤の構築と運用cyberagent
 
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理ina job
 
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みDjangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みShinya Okano
 
Zabbix 1.8の概要と新機能
Zabbix 1.8の概要と新機能Zabbix 1.8の概要と新機能
Zabbix 1.8の概要と新機能Kodai Terashima
 
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介Kohei Nishikawa
 
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten Group, Inc.
 
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介Kodai Terashima
 
べき等データベースマイグレーションツールmigu
べき等データベースマイグレーションツールmiguべき等データベースマイグレーションツールmigu
べき等データベースマイグレーションツールmiguNaoya Inada
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudyTakahiro Iwase
 

Similar to はてなのNagios - モニカジ#3 (20)

Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
 
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化
 
Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2Zabbix-jp study #4 20111020 session2
Zabbix-jp study #4 20111020 session2
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
サーバ構築自動化 On aws sqaleの場合
サーバ構築自動化 On aws   sqaleの場合サーバ構築自動化 On aws   sqaleの場合
サーバ構築自動化 On aws sqaleの場合
 
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
 
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
内製パッケージによるHadoopデータ解析基盤の構築と運用
内製パッケージによるHadoopデータ解析基盤の構築と運用内製パッケージによるHadoopデータ解析基盤の構築と運用
内製パッケージによるHadoopデータ解析基盤の構築と運用
 
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理
 
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みDjangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組み
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 
Zabbix 1.8の概要と新機能
Zabbix 1.8の概要と新機能Zabbix 1.8の概要と新機能
Zabbix 1.8の概要と新機能
 
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
 
Rakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With XtrabackupRakuten New MySQL Backup System With Xtrabackup
Rakuten New MySQL Backup System With Xtrabackup
 
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
 
べき等データベースマイグレーションツールmigu
べき等データベースマイグレーションツールmiguべき等データベースマイグレーションツールmigu
べき等データベースマイグレーションツールmigu
 
Start-padrino
Start-padrinoStart-padrino
Start-padrino
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Recently uploaded (8)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

はてなのNagios - モニカジ#3

  • 2. はてなのNagios 株式会社はてな システムプラットホーム部 id:shoichimasuhara
  • 3. ■ 自己紹介 ● id:shoichimasuhara ● Twitter:@shoichimasuhara ● 所属:株式会社はてな システムプラットホーム部 ● 経歴 ● 塾 ● 陸自 ● レンサバ屋 ● はてなインフラ (イマココ)
  • 4. ■ はてなのNagios ● はてなは以前から分散Nagios監視をしています ● サーバ管理ツールにデータを蓄え、それと連携 して(一部の)コンフィグを自動生成しています
  • 5. ■ 分散監視Nagios 監視自体は末端のNagiosが、 通知やWebの表示は 中央のNagiosが行う仕組みです
  • 6. ■ 分散監視Nagiosのメリット ● 負荷の分散 ● 監視ホストと被監視ホストの距離が問題になら ない ● 例えばpingの速度を監視していてもリージョンをま たぐとゆらぎが出やすかったり遅すぎたり ● 距離が長くなると障害点が発見しづらい ● 単純に分散させるのに比べてデータの一元化に より中央のWeb UIで確認できたりして便利
  • 7. ● 多すぎる監視対象 ● 多すぎる監視項目 ● さらに分散監視 これらに対応するため サーバ管理ツールの支援を受けて 設定ファイルを自動生成しています
  • 8. ■ サーバ管理ツール はてなでは mackerel と呼んでいる 自社製のサーバ管理ツール を使っています
  • 9. ■ サーバ管理ツールのデータ構造 ● サービス (ブックマーク、ブログなど) ● ロール (App、DBなど)
  • 11. ■ 静的設定ファイルの配置 ● /etc/nagios への symlink を張り替えることで中央/分散 Nagiosを切り替え ● 設定ファイルは nagios.cfg 以外ほとんど中央Nagiosのディレ クトリに入れて symlink で共通化しています /etc/nagios -> /path/to/nagios-conf/etc/central #中央Nagios /etc/nagios -> /path/to/nagios-conf/etc/distributed #分散Nagios /path/to/nagios-conf ├── bin ├── etc │   ├── central │   │   ├── nagios.cfg │   │   ├── objects │   │   │   ├── commands.cfg │   │   │   ├── contactgroups.cfg │   │   │   ├── contacts.cfg │   │   │   ├── services.cfg │   │   │   ├── templates.cfg │   │   │   └── timeperiods.cfg │   │   └── resource.cfg │   ├── distributed │   │   ├── nagios.cfg │   │   ├── objects │   │   │   ├── commands.cfg -> ../../central/objects/commands.cfg │   │   │   ├── services.cfg -> ../../central/objects/services.cfg │   │   │   ├── templates.cfg -> ../../central/objects/templates.cfg │   │   │   └── timeperiods.cfg -> ../../central/objects/timeperiods.cfg │   │   └── resource.cfg -> ../central/resource.cfg
  • 12. ■ 設定自動生成 ● 設定ファイルはGit管理 ● サーバ管理ツールからホスト一覧を取ってきてホスト 定義ファイルを生成 ● サービス定義ファイルは /path/to/cfg/${service}/${role}.cfg に置いてある ● hostgroup ${service}-${role} を作って対応付け ● 中央Nagios用のサービス定義は正規表現などで普通の サービス定義から自動生成
  • 13. ■ 問題点 ● ほとんど同じ設定なのに(例えばMySQLの監視とか)新 しいサービスを作るときはサービス定義ファイ ルを作らないといけない ● 例えば blog/db.cfg と bookmark/db.cfg の内容が ほぼ同じ、とか ● たまに作り忘れて監視漏れ ● もはや古い ● nagios.cfg 含め設定がカオス ● 設定自動生成スクリプトがカオス
  • 18. ■ 何が変わった? ● “タグ”という概念を導入しました ● blog-db も bookmark-db も mysqlというタグ をつ ければグルーピング出来る ● 「え、それだけ?」と思われるかもしれませんが、 いままでそれがなかった ● その他いろいろ変わりましたがそれは後ほど
  • 19. ■ サーバ管理ツール(新)のデータ構造 ● タグを含めたデータ構造を表すとこんな感じ
  • 21. ■ 静的設定ファイルの配置 (新Naios) ● /etc/nagios への symlink を張り替えること で中央/分散Nagiosを切り替え ● 設定ファイルは nagios.cfg 以外ほとんど中央 Nagiosのディレクトリに入れて symlink で共 通化しています ● 設定ファイル全部整えた
  • 22. ■ 設定自動生成(新Nagios)その1 ● 設定ファイルはGit管理 ● サーバ管理ツールからホスト一覧を取ってきてホスト定義 ファイルを生成 ● サービス定義ファイルは /path/to/cfg/tags/${tag}.cfg もしくは /path/to/cfg/services/${service}/${role}/${tag}.cfg に置いてある
  • 23. ■ 設定自動生成(新Nagios)その2 ● ホストの対応付けは、サービス定義ファイル …/services/${service}/${role}/${tag}.cfg が ● ある場合は hostgroup ${service}::${role}::${tag} を定義して対応付け ● ない場合は hostgroup ${tag} に参加させて対応付け
  • 24. ■ 設定自動生成(新Nagios)その3 ● もう正規表現で頑張らない ● 中央Nagiosサービス定義作成は通常のNagiosの設定を 1.Nagios::Object::Config でパース 2.以下のパラメタを強制的に設定 • active_check_enabled = 0 • check_command = 'check_dummy!2... • check_freshness = 1 • freshness_threshold ||= 10800 3.テンプレートエンジンに食わせて生成 という形に変えました (だいぶすっきりした)
  • 25. ■ 結局どう変わる? ● ホストを建てた時に自動的に設定が入るのは今までどおり ● 新しいサービス/ロールを追加するときも新しい設定(ポート変更 とか)がない限り、サーバ管理ツールでタグをポチれば分散監視 が入る ● Nagiosリポジトリの設定追加は新しいミドルウェアを追加すると きぐらい ● つまりNagiosの設定変更が少なくなった ● ほとんどタグの設定のみなので重複設定がなくなり設定ファイル を大幅に削減出来た ● 監視漏れの心配が(ほぼ)なくなる
  • 26. ■ 課題 ● Passiveチェックが中央でしか受けられない ● 中央サーバの冗長化
  • 27. ■ はてなNagiosのさらに詳細は ● 話が込み入って長くなるので、ご興味ある方は 後ほどお声がけください
  • 30. ■ サーバ管理ツール新旧相違点 ● データ構造の整理 ● Nagiosとの連携疎結合化 (API化) ● “タグ”という概念を導入した ● 分散RRDの仕組みを導入した ● Perlになった (旧システムはRailsベース) “なぜ国内でPerlが急速に萎んだのか” http://anond.hatelabo.jp/20130307004741
  • 31. ■ 分散RRDのところだけ紹介 ● 万を越えるRRDファイルの更新ツライ ● いままではSSDで頑張ってきた ● awsとかどうする ● RRDも(Nagiosと同じく)分散しましょう
  • 32. ■ 分散RRD 大雑把な構造 ② RRDストレージ検索(MySQL) ①グラフ画像要求(HTTP) ③グラフ画像要求(rrdcached)
  • 33. ■ 結構安直な作り ● 設置 ● RRDストレージと呼んでいる、クローラ同梱のRRD ファイルを蓄えたホストを複数設置 ● ホストとRRDストレージホストの対応をMySQLに登録 しておく ● クローラは自分の担当分だけクローリング ● 閲覧 ● グラフの担当RRDストレージを検索 ● RRDストレージの rrdcached に対してgraphリクエ ストを投げて画像バイナリを貰う ● そのままブラウザに投げ返す
  • 34. ■ 問題点 ● RRDストレージをまたいだグラフの描画がで きない ● サービスごと、リージョンごとなど分割に工夫 が必要 ● rrdcachedに関するノウハウが少ない
  • 35. ■ サーバ管理ツールの今後の希望 ● オープンソース化? (新Nagiosも込で ● RRDによるいろいろな予測機能付けたいですね わかりやすい例:ディスク溢れ予測