Jan 15, 2010

Nagios の check_vnc を設定する。

ポスト @ 16:11:54 | nagios,linux

★ピノ イチゴ味
※写真と本文は関係ありません。


もう少し調べたいけどとりあえず書いとこう。


Nagios の check_vnc
中身は python スクリプトですね。

VNCSnapshot をインストール(解凍して /usr/local/bin にコピー。動作確認 → VNC のスクリーンショットの保存が出来る!!)
で、check_vnc スクリプトを動作させる。ちょっと古くて心配だったけど下記修正で動作する。

こんな感じでエラー。



UNKNOWN: 'vncsnapshot' cannot be found in path. Please install the vncsnapshot program or fix your PATH environment variable


vncsnapshot への PATH が通ってない?

os.environ['PATH'] = '/usr/local/bin' で PATH を設定。


修正箇所


[root@nagios libexec]# diff -Nur  check_vnc_org check_vnc
--- check_vnc_org   2010-01-12 17:34:09.000000000 +0900
+++ check_vnc   2010-01-12 17:40:58.000000000 +0900
@@ -43,6 +43,8 @@
 __title__       = "Nagios Plugin for VNC"
 __version__     = 0.4
 
+os.environ['PATH'] = '/usr/local/bin'
+
 DEFAULT_TIMEOUT = 10
 # The standard VNC port
 DEFAULT_PORT    = 5900


この修正で動作しました。


nagios ユーザで Login してシェルからスクリプトを実行するとエラーなし。nagios ユーザで実行してるつもりなのに、うーん。
スクリプト内で PATH と ユーザを表示するようにちょっと手を加える。


[root@nagios libexec]# diff -Nur check_vnc_org check_vnc
--- check_vnc_org   2010-01-12 17:34:09.000000000 +0900
+++ check_vnc   2010-01-14 11:51:04.000000000 +0900
@@ -26,7 +26,8 @@
 CRITICAL = 2
 UNKNOWN  = 3
 
-import os
+#import os
+import pwd, os
 import re
 import sys
 import signal
@@ -43,6 +44,8 @@
 __title__       = "Nagios Plugin for VNC"
 __version__     = 0.4
 
+#os.environ['PATH'] = '/usr/local/bin'
+
 DEFAULT_TIMEOUT = 10
 # The standard VNC port
 DEFAULT_PORT    = 5900
@@ -65,6 +68,9 @@
     else:
         # This one is intentionally different
         print "UNKNOWN: %s" % message
+        print os.environ['PATH']
+        print pwd.getpwuid(os.getuid())[0]
+
         sys.exit(UNKNOWN)


と、こんなメッセージが出るので。


UNKNOWN: 'vncsnapshot' cannot be found in path. Please install the vncsnapshot program or fix your PATH environment variable
/sbin:/usr/sbin:/bin:/usr/bin
nagios


PATH → /sbin:/usr/sbin:/bin:/usr/bin
user → nagios
ということらしい。

nagios ユーザはともかく、この PATH ってどこで設定してるんだろうか…。


/etc/rc.d/rc.sysinit の中で定義、
/etc/init.d/functions

# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin"
export PATH

で定義してあるっぽいけどなぁ。


python と PATH 。
あとで調べよう。みんなのPython に載ってるかしら。。

Jan 11, 2010

2年ぶりにユキヤマへ。

リフト券 リフト上


ほんと、久しぶりにスキーしてきました。前の会社の同期と2人で。。

久しぶりしぎて出発する時間も忘れてたので、見事に出遅れて行きの高速は渋滞…。そうかもっとはやくでてたのか…。
高速のインターから近いスキー場は混んでることが多いので、遠いスキー場に行くことが多かったけど、今回は時間がなかったので近いところに。。

もっと滑れたような気がするけど、こんなもんだったかなぁ。。
思ったより空いてて、心配になりました。。みんなユキヤマ行かないのかなー。

帰りはなめこセンター(なめセン)へ、子宝あめが相変わらず売ってたり。
なめこ汁もらって、おみやげ買ってきました。

なめセン もれなくもらえるなめこ汁!!!

帰り道も渋滞なし。


今朝起きたときの筋肉痛はほとんどなし。
なんだろう、筋肉痛にならないほど筋肉が落ちてるのか…。ぬぅ。

Dec 28, 2009

大学の時の友達と忘年会。

ポスト @ 21:27:07 | 飲み会

一通りブームの去ったジンギスカン。。ブームの前からのお店、うまかったです。

ジンギスカン@岩本町

そういや、「『ロケット打ち上げ』の『打ち上げ』は『打ち上げ』って言うの?」って聞くの忘れた。


カラオケで歌える歌がなくて、嵐の歌などを ipod につっこみました…。

ファイルのないディレクトリを削除する。

ポスト @ 14:12:12 | linux,bash

☆ピノ
※写真と本文は関係ありません。


tmpwatch でフォルダは削除されないので…。

[root@backup_samba_server ~]# find /home/samba/.trach/ -type d -empty -delete

怖いけどできる。


参考にさせていただきました。
[linux][bsd] 空ディレクトリだけを削除する

Dec 25, 2009

rdiff-backup でエラー。

ポスト @ 12:54:27 | rdiff-backup,linux

rdiff-backup を導入してしばらく、サーバがハングアップ後『バックアップのエラー』メールが届くようになりました。

rdiff-backup フォルダの backup.log を見てみると

UpdateError "ファイル名" File changed from regular file before signature

とエラーが…。

調べると 公式ページの Wiki に情報が。

Go into the "rdiff-backup-data" directory and find the most recent "file_statistics" and "mirror_metadata" gzipped files.

最新の "file_statistics" と "mirror_metadata" を解凍して該当部分を削除して圧縮するといいとのこと。

解凍してファイルを確認すると確かに文字化け( 便 → 偏 へ文字化けてる)の情報が記録されてる…。

修正して再圧縮。深夜には直ってるはず。。


さっきのを最後まで読むと ruby スクリプトがあるらしい。ので修正後に試したみた。


[root@samba_server rdiff-backup-data]# ruby ./fixRdiffBackupData.rb .
dir=. time=2009-12-08T03:00:03+09:00
ERROR LOG
  read 1, ignored 1
FILE STAT
  read 753013, ignored 0
MIRROR META
  read 7319092, ignored 0


日本語通るかあやしいけど LOG にエラーがあるのは見て取れる。FILE STAT, MIRROR META の方は修正してるので何も検出されない? 今度また失敗したら試そう。

Dec 01, 2009

起動時のファイルシステムのチェック(fsck)間隔を変更するには

ポスト @ 14:49:36 | linux,vine4.2

客先のファイルサーバの停電の再起動で時間がかかったりかからなかったりするので、どうなってるのか調べた結果を書いておく。

 ちなみに、FedoraのインストーラでフォーマットしたHDDの場合は、「Maximum mount count」と「Check interval」の値がそれぞれ「-1」と「0」に設定されており、ファイルシステムの自動チェックは行われない。

[root@landisk root]# cat /etc/vine-release
Vine Linux 4.2 (Lynch Bages)


[root@landisk root]# tune2fs /dev/sda7 -l
tune2fs 1.38 (30-Jun-2005)
Filesystem volume name:   /home
Last mounted on:          
Filesystem UUID:          c8a20838-8dfb-40d7-af9d-9e6dcdc92bda
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              29048832
Block count:              58078983
Reserved block count:     2903949
Free blocks:              54564334
Free inodes:              28999574
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         16384
Inode blocks per group:   512
Filesystem created:       Wed Apr 30 12:34:40 2008
Last mount time:          Mon Aug 31 11:10:43 2009
Last write time:          Mon Aug 31 11:10:43 2009
Mount count:              8
Maximum mount count:      -1
Last checked:             Wed Apr 30 12:34:40 2008
Check interval:           0 ()
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:       128
Journal inode:            8
Default directory hash:   tea
Directory Hash Seed:      d973d6b4-5d31-4ffe-b1bc-63cac0cfecb9
Journal backup:           inode blocks


Vine 4.2 もチェックされないなぁ。

Nov 27, 2009

Nagios の NSCA 監視側設定。

ポスト @ 12:33:14 | nagios

狛犬(かごのなか)
※写真と本文は関係ありません。


忘れるので書いておこう。
今回は遠隔サーバ(監視するサーバ)の設定です。

※Nagios 本体は tar から コンパイルして /usr/local/nagios にインストール済み。サーバ単体で localhost の監視を出来るのを確認する。


Nagios Addons から NSCA をダウンロード。

解凍

tar zxvf nsca-2.7.2.tar.gz
cd nsca-2.7.2

コンパイル

./configure
make all

インストール

cp src/send_nsca /usr/local/nagios/bin/
chown nagios.nagios /usr/local/nagios/bin/send_nsca
chmod 755 $_
cp sample-config/send_nsca.cfg /usr/local/nagios/etc/ chown nagios.nagios /usr/local/nagios/etc/send_nsca.cfg
chmod 640 $_


nagios 設定

enable_notifications=0
# このサーバからの警告発信を無効にする。
obsess_over_services=1
# 各サービスのチェック後コマンドを実行するオプション。使うコマンドは『ocsp_command』で設定。
ocsp_command=submit_check_result
# 実行するコマンド。『submit_check_result』 というコマンドを『/usr/local/nagios/etc/objects/commands.cfg』 に記載する。


vi /usr/local/nagios/etc/send_nsca.cfg
監視する側と設定を合わせる。
password=heoeoeoeoeojsasldfaas
encryption_method=3


『submit_check_result』 を作成する。 vi /usr/local/nagios/libexec/submit_check_result


#!/bin/sh
central_server="monitor"
# Arguments:
#  $1 = host_name (Short name of host that the service is
#       associated with)
#  $2 = svc_description (Description of the service)
#  $3 = state_string (A string representing the status of
#       the given service - "OK", "WARNING", "CRITICAL"
#       or "UNKNOWN")
#  $4 = plugin_output (A text string that should be used
#       as the plugin output for the service checks)
#
# Convert the state string to the corresponding return code
return_code=-1
case "$3" in
    OK)
        return_code=0
        ;;
    WARNING)
        return_code=1
        ;;
    CRITICAL)
        return_code=2
        ;;
    UNKNOWN)
        return_code=-1
        ;;
    [0-2])
        return_code=$3
        ;;
esac
# pipe the service check info into the send_nsca program, which
# in turn transmits the data to the nsca daemon on the central
# monitoring server
/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/local/nagios/bin/send_nsca $central_server -c /usr/local/nagios/etc/send_nsca.cfg


『/usr/local/nagios/etc/objects/commands.cfg』に ocsp_command コマンド追加。

###############
# for nsca client
define command{
command_name submit_check_result
command_line /usr/local/nagios/libexec/submit_check_result $HOSTNAME$ '$SERVICEDESC$' $SERVICESTATEID$ '$SERVICEOUTPUT$'
}
###############


引っかかったところ。

mcript-devel インストールしてないのでエラー。
→こんなエラー


[root@chiba_sv src]# /usr/local/nagios/bin/send_nsca -H example.com   -c /usr/local/nagios/etc/send_nsca.cfg
Invalid encryption method (3) in config file '/usr/local/nagios/etc/send_nsca.cfg' - Line 64
Client was not compiled with mcrypt library, so encryption is unavailable.
Error: Config file '/usr/local/nagios/etc/send_nsca.cfg' contained errors...


php5-apache2 インストールしてない。( Vine 5.0 )
→ 左のメニューがリンク切れ、表示が変。

ホスト名 localhost から変更しなかったので、監視元サーバに認識されない。
→『/usr/local/nagios/etc/objects/localhost.cfg』のhost_name を監視元サーバと合わせないと、識別されないのでいつまでたっても監視元サーバに認識されない。


参考にさせていただいたサイト。(ありがとうございます!)
雑記録 - Nagios NSCAによる遠隔サーバの内部リソース監視

以前のログ