Nagios運用例
(on AWS)
Sqaleの場合
Monitoring Casual Talk #1
Ryo Kuroda @lamanotrama
パペボ所属
淡々と紹介します
Nagiosの運用事例を目にすることがあまり無いの
で、自分のやり方に不安を感じる。
みんな実際どうなのよ?
Agenda
● 環境
● コンフィグレイアウト
● コンフィグ自動生成
● 設定管理、デプロイ
環境
● http://sqale.jp
● AWS
● 20ちょっとのインスタンス (EC2+RDS)
● Nagiosサーバ一台
○ 色々兼用のc1.medium
○ Amazon Linux 64bit
● 名前解決は /etc/hosts の...
コンフィグレイアウト
各種object設定ファイル
/etc/nagios/objects/sqale/*.cfg
/etc/nagios/objects/sqale
->/var/webistrano/nagios/current (deploy path)
● ...
include
@nagios.cfg
cfg_file=/etc/nagios/objects/commands.cfg
cfg_dir=/etc/nagios/objects/sqale
● commands.cfgだけはそのまま使っている...
コンフィグの自動生成
cfg-gen.pl
cronで定期的にEC2のAPIを叩くスクリプトを実行
してコンフィグファイルを生成。
objects/sqale/cfg-gen/bin/cfg-gen.pl
objects/sqale/cfg-gen/temlates...
使ってるモジュール
use Net::Amazon::EC2 0.18;
use Net::Amazon::EC2::PaperboyAttributes;
use Text::Xslate;
use Text::Diff;
Net::Amazon::EC2::PaperboyAttributes ?
インスタンスの運用ルール(tag)に合わせて便利メ
ソッドを生やしてる。
$instance->roles; # ['bsae', 'build']
$ec2->de...
監視対象から外したい
grep ! $_->inactive, @instances;
全てのインスタンスはlaunch後に自動で監視対象に入るが、検
証用等で、監視に入れたくないものもある。
roles.cfg
各role毎に内側、外側で2つのhostgroupオブジェ
クトを定義。
hosts.cfg
roleと同様に内外で別々に定義。同じインスタンス
でも、それぞれ監視すべきサービスは違う。
Diff
Text::Diffで既存ファイルのと差分をチェックし、変
更があった時だけreload。
差分は標準出力に吐く ->メールで履歴が追える。
設定管理、デプロイ
GitHub
設定はGitHubのプライベートリポジトリで管理。
webistrano
デプロイはwebからクリック一発。
webistranoで(が)やってること
serviceやcommandを足したりテンプレート(*.tx)を
変更したらデプります。
1. /var/webistrano/sqale/releses/ 以下に最新の設
定がrsyncで送られる
...
その他
define command {
command_name notify-host-by-ikachan
アラートもikachanでIRCに送ってます。ikachan大
活躍。
リポジトリへのリンク
webのサイドバーにリポジトリ(のhistory)へのリン
クを足しておくと地味に便利。
以上でございます。
of 24

Nagios on AWS / Monitering Casual Talk #1

Published on: Mar 3, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - Nagios on AWS / Monitering Casual Talk #1

  • 1. Nagios運用例 (on AWS) Sqaleの場合 Monitoring Casual Talk #1 Ryo Kuroda @lamanotrama パペボ所属
  • 2. 淡々と紹介します Nagiosの運用事例を目にすることがあまり無いの で、自分のやり方に不安を感じる。 みんな実際どうなのよ?
  • 3. Agenda ● 環境 ● コンフィグレイアウト ● コンフィグ自動生成 ● 設定管理、デプロイ
  • 4. 環境
  • 5. ● http://sqale.jp ● AWS ● 20ちょっとのインスタンス (EC2+RDS) ● Nagiosサーバ一台 ○ 色々兼用のc1.medium ○ Amazon Linux 64bit ● 名前解決は /etc/hosts の自動更新で ○ <IP> <Name>.sqale.jp ○ <Private IP> <Name>.sqale.lan Sqale (closed beta)
  • 6. コンフィグレイアウト
  • 7. 各種object設定ファイル /etc/nagios/objects/sqale/*.cfg /etc/nagios/objects/sqale ->/var/webistrano/nagios/current (deploy path) ● サービスのobject用に一個深く掘ってる ● 過去に複数商材の設定が混ざってカオス化した (のをメンテして椅子投げた) ● パッケージデフォの *.cfg と階層分けた方が精 神衛生上よい ● デプロイもしやすいよ
  • 8. include @nagios.cfg cfg_file=/etc/nagios/objects/commands.cfg cfg_dir=/etc/nagios/objects/sqale ● commands.cfgだけはそのまま使っているが、 他は無駄が多く使いづらい ● sqale/commans.cfgには自分で追加定義した 分だけ
  • 9. コンフィグの自動生成
  • 10. cfg-gen.pl cronで定期的にEC2のAPIを叩くスクリプトを実行 してコンフィグファイルを生成。 objects/sqale/cfg-gen/bin/cfg-gen.pl objects/sqale/cfg-gen/temlates/{hosts.tx,roles.tx} この2つが出来る。 objects/sqale/roles.cfg (≒hostgroups.cfg) objects/sqale/hosts.cfg
  • 11. 使ってるモジュール use Net::Amazon::EC2 0.18; use Net::Amazon::EC2::PaperboyAttributes; use Text::Xslate; use Text::Diff;
  • 12. Net::Amazon::EC2::PaperboyAttributes ? インスタンスの運用ルール(tag)に合わせて便利メ ソッドを生やしてる。 $instance->roles; # ['bsae', 'build'] $ec2->describe_roles # { build => [ 'build001', 'build002' ... ], app => [ ... これらをbackup、puppet等他の自動化の仕組みでも使います。 けど、roleタグは今後止めるかもしんない …
  • 13. 監視対象から外したい grep ! $_->inactive, @instances; 全てのインスタンスはlaunch後に自動で監視対象に入るが、検 証用等で、監視に入れたくないものもある。
  • 14. roles.cfg 各role毎に内側、外側で2つのhostgroupオブジェ クトを定義。
  • 15. hosts.cfg roleと同様に内外で別々に定義。同じインスタンス でも、それぞれ監視すべきサービスは違う。
  • 16. Diff Text::Diffで既存ファイルのと差分をチェックし、変 更があった時だけreload。 差分は標準出力に吐く ->メールで履歴が追える。
  • 17. 設定管理、デプロイ
  • 18. GitHub 設定はGitHubのプライベートリポジトリで管理。
  • 19. webistrano デプロイはwebからクリック一発。
  • 20. webistranoで(が)やってること serviceやcommandを足したりテンプレート(*.tx)を 変更したらデプります。 1. /var/webistrano/sqale/releses/ 以下に最新の設 定がrsyncで送られる 2. /var/webistrano/sqale/current にリンクが貼り直さ れる 3. cfg-gen.plを実行して、コンフィグ生成 4. nagios reload 5. 終わったらikachan経由でIRCに通知(失敗、成功)
  • 21. その他
  • 22. define command { command_name notify-host-by-ikachan アラートもikachanでIRCに送ってます。ikachan大 活躍。
  • 23. リポジトリへのリンク webのサイドバーにリポジトリ(のhistory)へのリン クを足しておくと地味に便利。
  • 24. 以上でございます。

Related Documents