ここ最近、このレベルまでガッツリとした管理はやっていないのですが。
昔、かなりミッションクリティカルなサーバの運用・管理を一人でやっていて、それ以外にも平行して別の業務をやっていたので、日々の管理を如何に省力化するか・・・というのがかなり大きな課題になっていました。
しかし、その当時のサーバにはいわゆる今風の監視システムであるnagiosやmuninのような監視システムを導入することがサーバリソースの問題で難しく、さてどうしようか、と思った時にやっていた方法です。
内容は本当に簡単で「欲しい情報をメールで毎日送ってもらう」、この一言に尽きます。
logwatchを使ってサーバから情報をもらう
昔はデフォルトでインストールされていた気がするのですが、最近のサーバではインストールしないといけないのですね。
この”logwatch”というツール、毎日1回、サーバの情報を様々なログから収集して整理し、メールで送ってくれます。
久しぶりに先日使ってみたのですが、以前よりももっと幅の広い情報を収集・送付してくれるようです。
インストールは簡単で、yum一発で入るかと思います。
[bash]# sudo yum install logwatch[/bash]
これで動きます。
送られてくるメールの送信先メールアドレスを変更したい場合は
/usr/share/logwatch/default.conf/logwatch.conf
もしくは
/etc/logwatch/conf/logwatch.conf
をvi辺りで編集します。
編集箇所は下記です。
[bash]# Default person to mail reports to. Can be a local account or a
# complete email address. Variable Print should be set to No to
# enable mail feature.
MailTo = [email protected][/bash]
また、もう一カ所、下記を”High”に変更しておくと、細かい解析内容が送付されてきます。
[bash]# The default detail level for the report.
# This can either be Low, Med, High or a number.
# Low = 0
# Med = 5
# High = 10
Detail = High[/bash]
後は毎日4:00にレポートがメールで送られてきます。
メールを自動生成するスクリプトを組む
シェルスクリプトを使って、自分でメールを自動生成するスクリプトを組む、という方法もあります。
私の場合、バックアップ用のシェルスクリプトに組み込む形で、例えば”/home”領域の容量やディスク全体の容量を送信するようにしていました。
その場合、一度テキストファイルに全ての情報を保存し、その内容をまとめてメールするようにすると便利です。
例えば、以下のようなスクリプトを組むとディスク全体の容量(“df -m”)と/homeディレクトリにあるファイルの一覧(“du -h /home”)、そしてその時のメモリ使用量(free)がメールで送られてきます。
[bash]#!/bin/sh
#
echo "Daily report —-" > /home/scripts/daily.txt
echo " " >> /home/scripts/daily.txt
echo "df -m" >> /home/scripts/daily.txt
df -m >> /home/scripts/daily.txt
echo "du -h /home" >> /home/scripts/daily.txt
du -h /home >> /home/scripts/daily.txt
echo "free" >> /home/scripts/daily.txt
free >> /home/scripts/daily.txt
#
cat /home/scripts/daily.txt | mail -s "Daily report / sv01" [email protected][/bash]
他に必要な情報があれば、これをまねて”/home/scripts/daily.txt”に書き込むようにすれば勝手にメールにして送ってくれます。
あ、必ずスクリプトは保存して、cronで実行日時を指定して下さいね。
nagiosやmunin、zabbixといった規模の大きめな監視ツールを使うのもいいですが、シェルスクリプトを使って監視項目を絞り込んでいくのも一つの方法かと思います。
総合監視ツールでは見えないことが意外と見えてきたりします。
[tmkm-amazon]4774146439[/tmkm-amazon]