Muninで監視する(Munin 1.2.5の場合)

サーバの稼働状態を監視したいと思い、sysstat/sarでデータ取得を行っていますが、sarコマンドでチェックすると言っても、数字の羅列を見るよりは次のような要件を満たす方法の方が何かと便利です。

グラフ化 自動化 Webインターフェース

これらを手軽にできるツールがMuninです。 sarの収集データをgnuplotするなどを考えていましたが、基本的に同じデータを元にするのであれば、Muninを使ってみようと思い、導入しました。

実際に実行した結果、作成されるグラフ例です。これはCPU使用率を示しています。「Sat 0:00」過ぎからデータ収集を始めたので、グラフはその時点以降で描画されています。

CPU使用率

他も含めて、次のようなデータのグラフが生成され、Webブラウザで参照できるようになります。

localhost Disk Filesystem usage (in %) Inode usage (in %) Network Netstat Postfix Postfix Mailqueue Processes Fork rate Number of Processes VMstat System CPU usage Available entropy Interrupts & context switches Load average Memory usage File table usage Inode table usage Swap in/out

導入手順にクセや引っ掛かりは特別ないというのが感想ですが、

続きを読む »

logrotateのテスト方法

logrotateの設定を、

/etc/logrotate.conf /etc/logrotate.d/に置かれたファイル

にした後に、意図したとおりにログローテーションするかをテストします。

logrotateは、実際はcrondによって、定められたタイミングで実行されるわけですが、今すぐに実行できないといけませんし、crondの設定を変更したくありません。 また、実際にはローテーションされないようにする必要もあります。

こういうときには、次のようにlogrotateコマンドを実行します。logrotate.confを指定すればlogrotate設定全体のテスト、dovecotなどの個別設定を指定すれば個別設定のテストを実行できます。

[root ~]# logrotate -dv /etc/logrotate.conf [root ~]# logrotate -dv /etc/logrotate.d/dovecot

実行結果は、ローテーションする場合とローテーションしない場合の2通りを示しておきます。 なお、/etc/logrotate.d/dovecot の内容は次の通りです。

# dovecot SIGUSR1: Re-opens the log files. /var/log/dovecot.log { missingok notifempty size 50k postrotate /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true endscript }

サイズが設定値に達していないので、ローテーションしない場合 [root ~]# logrotate -dv /etc/logrotate.d/dovecot reading config 続きを読む »

logrotateの設定パラメータ

logrotateのファイル毎のローテーション方式は、

/etc/logrotate.conf /etc/logrotate.d/に置かれたファイル

に設定されますが、そこで使用するパラメータを整理しておきます。

パラメータ 機能の説明 missingok 指定のログファイルが存在しない場合でもエラーにしないで、次のログファイルの処理へ移る。 dailyweeklymonthlyyearly それぞれ、日次、週次、月次、年次でローテーションを行う。 notifempty 指定のログファイルが空の場合にはローテーションを行わない。 size サイズ(K/M) 指定したログファイルが指定したサイズより大きい場合にローテーションを行う。 compress ローテーションしたログファイルをgzipで圧縮する。 rotate ローテーションしたファイルを保持する世代数。 create [パーミッション] [ユーザ] [グループ] ローテーションの後に、新規のログファイルを作成する。 dateext ローテーションしたファイルの末尾に日付を付ける。 prerotate~スクリプト~endscript ローテーション条件に合致したログファイルがあった場合に、ログファイル毎に、ローテーションの前に実行するスクリプト。 postrotate~スクリプト~endscript ローテーション条件に合致したログファイルがあった場合に、ログファイル毎に、ローテーションの後に実行するスクリプト。 sharedscripts ローテーション条件に合致したログファイルがあった場合に実行するprerotate、postrotateで指定するスクリプトを、1回だけ実行するようにする。

続きを読む »

ダウンロードファイルのmd5ハッシュ値を確認する

wgetでパッケージファイルをダウンロードをしてきた後に、そのファイルの真偽をチェックするために、md5(128bit)ハッシュ値を確認する必要が出てきます。 その確認には、次のようにチェックサムコマンドを実行します。

[root ~]# md5sum ファイル名 md5ハッシュ値 ファイル名

表示されたmd5ハッシュ値を、公開されているハッシュ値と目視比較して、一致していれば真の正しいファイルと判断します。

なお、OpenSSLコマンドでも次のように実行することで同様の結果が得られます。

[root ~]# openssl md5 ファイル名 MD5(ファイル名)= md5ハッシュ値

LISTENポートを確認する

LISTEN状態(待機している状態)のIPアドレスとポート番号を確認するには、次のコマンドを使用します。

[root ~]# netstat -ln

さらに、ここで表示したいのはLISTENポートですので、次のように絞り込みを行うと便利です。このコマンドでは、「tcp」か「udp」で始まる行を表示します。

[root ~]# netstat -ln | egrep ^tcp\|^udp tcp 0 0 111.222.333.444:53 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN tcp 0 0 111.222.333.444:80 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:53 0.0.0.0:* udp 0 0 111.222.333.444:53 0.0.0.0:* udp 0 0 127.0.0.1:53 0.0.0.0:*

また、より簡単に次のようにすれば、同様の結果を得られます。

[root ~]# netstat -ln –tcp –udp

ちなみに、すべての状態のtcpのポートを表示するには次のようにします。

[root 続きを読む »