システム監視Nagiosマン、Nagiosガールのみなさん、こんにちは。私の部署では両手で足りない数のNagiosを抱えているということがわかりました。Nagiosも数が増えてくると管理が大変で、こんな有様になりがちです。最近これをこんな状態にしてだいぶ楽になりました。こんな素晴らしいThrukの導入方法を紹介します。Introductionにあります。Thrukは多種類の監視サービスのWebインターフェースとなるものです。APIを通して、Naemon,Nagios,Ichinga,Shinkenをサポートしています。『ドロップイン』であるようにデザインされて、大規模環境およびユーザビリティ向上のためにオリジナルのほとんど100%の機能をカバーし、さらに追加機能もあります。Thruk公式サイトにあるイメージ図です。APIを通して、Nagiosにアクセスします。興味がある方は読んでみてください。(興味ない方は、読み飛ばしても構いません。)ざっとあらすじを書くと、Nagiosデータへのアクセス方法は以下のように進化しているということです。今日のデータへのアクセスホストとサービスの現在のステータスにアクセスするための従来の方法は、Nagiosが作成するstatus.datファイルを読み込みパースすることでした。更新間隔はnagios.cfgファイル内のstatus_update_intervalで設定されます。典型的には10秒間隔です。あなたの環境が大規模になれば、CPU使用率とDiskIO使用率を減らすために間隔を長くする必要があるかもしれません。NagiosのWebインターフェースはstatus.datを表示のために使用します。status.datをパースすることはAddOn開発者たちの間では一般的ではありません。多くの開発者はNDOというもう一つの方法を取ります。socket経由で全てのステータス更新をヘルパープロセスに送信します。ヘルパープロセスはSQL文を作成し、MySQL、またはPostgreSQLデータベースを更新します。この方法にはstatus.datと比べていくつかの利点があります。データは10秒毎や20秒毎でなく、すぐに更新されます。アプリケーションはSQLを使って簡単にデータにアクセスできます。status.datをパースする必要はありません。大規模環境においてはAddOnを使ったデータへのアクセスは、status.datを読み込む方法よりも高速です。残念なことにNDOにはいくつかの欠点があります。高速に増大するデータベースの管理が必要。データベースを最新に保つために多くのCPUリソースを食う。定期的なデータベースの整頓のために数分、または1時間の間、Nagiosの停止が発生することがある。未来バージョン1.1.0からCheck_MKはステータスと過去のデータにアクセスするための完全に新しい方法を提供しています。それがLivestatusです。APIを使用し、バイナリ・モジュールをNagiosプロセスに読み込ませます。LivestatusはNDOと違い、データを頻繁に書き込みにいきません。その代わりにsocketを開放し、データ取得のためにはオンデマンドにsocketに取りに行きます。socketはホスト、サービス、または他のデータへのリクエストを受け付け、すぐに応答します。データはNagios内部のデータ構造から直接読み込まれます。Livestatusはデータのコピーを作成しません。バージョン1.1.2からLivestatusでNagiosのログファイルから過去のデータも取得できるようになりました。この方法は素晴らしくシンプルというだけでなく、とても高速です。下記のようにいくつかの利点があります。NDOと異なり、Livestatusを使うことは、CPUにほとんど負荷をかけません。クエリーを処理するときだけ、わずかながらCPUが必要になりますが、それはNagiosの動作を止めてしまうものではありません。Livestatusでは、ステータスデータへのクエリー時にまったくDiskIOが発生しません。データへのアクセスがstatus.datのパースやSQLデータベースへのクエリーよりも、かなり高速です。設定が不要で、データベースも不要です。Livestatusは50000サーバ以上の大規模環境へスケールします。Livestatusを使って、あなたはNagios特有のデータへアクセスできます。あるホストが現在notification状態にあるかどうか等です。同時にLivestatusは自身のクエリ言語を提供します。それはシンプルで理解しやすく、SQLのような柔軟性などを持ちます。プロトコルは高速で、軽く、バイナリのクライアントは不要です。あなたはShell上で他のソフトを利用せずにアクセスできます。現在Livestatusはまだ若いテクノロジーです。多くのAddOnはLivestatusをデータソースとしてサポートしていたり、標準でそのように動作します。以下はLivestatusをサポートするAddOnのリストです。Multisite!もしあなたが、このリストが不完全だと思ったら、メールをください。理屈はともかく、実際の構築方法です。EC2で構築したのですが、最新のAMIではPerl関係でエラーが発生し、上手くいきませんでした。そこで古いAMIを使うことで対応しました。RHEL6/CentOS6向けにパッケージされたものを使います。2013.09を利用します。dataに以下を入力します。securityThruk自体とは関係ないのですが、今回の構築で一番手こずったのは、ここでした。thruk-1.86-4.rhel6.x86_64.rpm/etc/thruk/thruk_local.confthrukの設定ファイルです。下記の1行を追記してください。service)内のdisplay_nameがThrukの画面で表示されます。display_nameが設定されていない場合は、template名が表示されるようです。1」が入っていると、service_descriptionで表示されるようになります。他に何か上手くいかないことがあれば、こちらのマニュアルを見ると良さそうです。onNagiosサーバ側の設定ThrukからNagiosデータにアクセスできるようにLivestatusを組み込んでいきます。Livestatusを参考に下記の流れでインストールしました。install/etc/nagios/nagios.cfg1行だけ追記します。restart/etc/xinetd.d/livestatusThrukから、TCP/6557でアクセスしてきます。xinetdで待ち受けるので、ファイルを作成します。startなお、/etc/hosts.allowでアクセス制限をかけている場合は、以下のような感じで許可してください。IPaddrこれで完了です。ThrukにログインブラウザでThrukにログインできるはずです。thrukadmin/thrukadminログイン後の画面左下の方のメニューから、以下の設定をしましょう。SitesここでNagiosサーバを登録していきます。空白のままたくさんのNagiosを登録しましょう!HostsやServicesなどをクリックすると、各Nagiosに登録されているものが全部見えているはずです。あとはほとんどNagiosと同じ見た目なので、なんとなくわかると思います。17:30Tweet関連記事2018-09-07アドテクの会社でCTR予測をしてみた。皆さんこんにちは、h_matsumotoです。Aerospike×DynamoDBこんにちは、k_oomoriです。Are青山のアドテク会社。アドネットワークやDSPを開発・運用。サーバを止めてみたよ。インターン:実業務体験編インターンでCTR予測をしましたSearchArchiveスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。