GNU/Linux >> Linux の 問題 >  >> Fedora

Fedora7でのmuninとmonitによるサーバー監視

この記事では、muninとmonitを使用してFedora7サーバーを監視する方法について説明します。 muninは、多くの構成を行わなくても、サーバーのほぼすべての側面(負荷平均、メモリ使用量、CPU使用率、MySQLスループット、eth0トラフィックなど)について気の利いた小さなグラフィックを生成しますが、monitはApache、MySQL、Postfixなどのサービスの可用性をチェックします。サービスが期待どおりに動作していないことが検出された場合の再起動などの適切なアクション。 2つの組み合わせにより、完全な監視が可能になります。現在または今後の問題を認識できるグラフィック(「すぐに大きなサーバーが必要、負荷平均が急速に増加しています」など)と、監視対象サービスの可用性を確保するウォッチドッグです。 。

muninを使用すると複数のサーバーを監視できますが、ここでは、それがインストールされているシステムの監視についてのみ説明します。

このチュートリアルはFedora7用に書かれていますが、構成はほとんど変更を加えずに他のディストリビューションにも適用されるはずです。

まず、このようなシステムを構築する方法はこれだけではありません。この目標を達成する方法はたくさんありますが、これが私のやり方です。これがあなたのために働くという保証はありません!

1予備メモ

システムのホスト名はserver1.example.comであり、ドキュメントルート/var/www/www.example.com/webを含むWebサイトwww.example.comがあります。

2muninのインストールと構成

muninをFedora7にインストールするには、次のようにします。

yum install munin munin-node

次に、muninのシステム起動リンクを作成して起動します:

chkconfig --levels 235 munin-node on
/etc/init.d/munin-node start

次に、munin構成ファイル/etc/munin/munin.confを編集する必要があります。 muninがその出力をディレクトリ/var/www/www.example.com/web/monitoringに配置するようにしたいので、htmldirの値を変更し、localhostの代わりにserver1.example.comという名前を使用するようにします。 HTML出力のlocaldomainであるため、localhost.localdomainをserver1.example.comに置き換えます。コメントがない場合、変更されたファイルは次のようになります。

vi /etc/munin/munin.conf
[...]
dbdir   /var/lib/munin
htmldir /var/www/www.example.com/web/monitoring
logdir  /var/log/munin
rundir  /var/run/munin

# Where to look for the HTML templates
tmpldir /etc/munin/templates
[...]
# a simple host tree
[server1.example.com]
    address 127.0.0.1
    use_node_name yes
[...]

次に、ディレクトリ/var/www/www.example.com/web/monitoringを作成し、その所有権をユーザーとグループmuninに変更します。そうしないと、muninはその出力をそのディレクトリに配置できません。次に、muninを再起動します:

mkdir -p /var/www/www.example.com/web/monitoring
chown munin:munin /var/www/www.example.com/web/monitoring
/etc/init.d/munin-node restart

muninが最初の出力を生成できるように数分待ってから、ブラウザでhttp://www.example.com/monitoring/にアクセスすると、最初の統計が表示されます。数日後、これは次のようになります。

(これは、muninが生成する多くのグラフィックのほんの一部です...)

3パスワードで保護するmunin出力ディレクトリ(オプション)

サーバーに関する小さな統計情報をすべての人に表示させたい場合を除いて、ディレクトリ/var/www/www.example.com/web/monitoringをパスワードで保護することをお勧めします。

これを行うには、/ var / www / www.example.com / web/monitoringに.htaccessファイルを作成します。

vi /var/www/www.example.com/web/monitoring/.htaccess
AuthType Basic
AuthName "Members Only"
AuthUserFile /var/www/www.example.com/.htpasswd
<limit GET PUT POST>
require valid-user
</limit>

次に、パスワードファイル/var/www/www.example.com/.htpasswdを作成する必要があります。ユーザー名adminでログインしたいので、これを行います:

htpasswd -c /var/www/www.example.com/.htpasswd admin

管理者のパスワードを入力すれば完了です!

4monitのインストールと構成

monitは、公式のFedora 7リポジトリからは入手できませんが、RPMforgeリポジトリからは入手できます(手順については、http://dag.wieers.com/rpm/FAQ.php#B2を参照してください)。 Fedora7でも機能するRHEL5用のRPMforgeパッケージをインストールします:

rpm -Uhv http://apt.sw.be/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

その後、monitをインストールします:

yum install monit

次に、monitのシステム起動リンクを作成します:

chkconfig --levels 235 monit on

monitのデフォルトの構成ファイルは/etc/monit.confで、すべてコメントアウトされているいくつかの構成例(http://www.tildeslash.com/monit/doc/examples.phpで他の構成例を見つけることができます)を見つけることができます。ただし、monitはディレクトリ/etc/monit.dで構成ファイルも検索するように指示されているため、/ etc / monit.confを変更する代わりに、新しい構成ファイル/etc/monit.d/monitrcを作成します。私の場合、proftpd、sshd、mysql、apache、postfixを監視したい、ポート2812でmonit Webインターフェイスを有効にしたい、https Webインターフェイスが必要、ログに記録したい in to ユーザー名adminとパスワードテストを使用したウェブインターフェース。monitが[メール保護]にメールアラートを送信するようにしたいので、ファイルは次のようになります。

vi /etc/monit.d/monitrc
set daemon  60
set logfile syslog facility log_daemon
set mailserver localhost
set mail-format { from: [email protected] }
set alert [email protected]
set httpd port 2812 and
     SSL ENABLE
     PEMFILE  /var/certs/monit.pem
     allow admin:test

check process proftpd with pidfile /var/run/proftpd.pid
   start program = "/etc/init.d/proftpd start"
   stop program  = "/etc/init.d/proftpd stop"
   if failed port 21 protocol ftp then restart
   if 5 restarts within 5 cycles then timeout

check process sshd with pidfile /var/run/sshd.pid
   start program  "/etc/init.d/sshd start"
   stop program  "/etc/init.d/sshd stop"
   if failed port 22 protocol ssh then restart
   if 5 restarts within 5 cycles then timeout

check process mysql with pidfile /var/run/mysqld/mysqld.pid
   group database
   start program = "/etc/init.d/mysqld start"
   stop program = "/etc/init.d/mysqld stop"
   if failed host 127.0.0.1 port 3306 then restart
   if 5 restarts within 5 cycles then timeout

check process apache with pidfile /var/run/httpd.pid
   group www
   start program = "/etc/init.d/httpd start"
   stop program  = "/etc/init.d/httpd stop"
   if failed host www.example.com port 80 protocol http
      and request "/monit/token" then restart
   if cpu is greater than 60% for 2 cycles then alert
   if cpu > 80% for 5 cycles then restart
   if totalmem > 500 MB for 5 cycles then restart
   if children > 250 then restart
   if loadavg(5min) greater than 10 for 8 cycles then stop
   if 3 restarts within 5 cycles then timeout

check process postfix with pidfile /var/spool/postfix/pid/master.pid
   group mail
   start program = "/etc/init.d/postfix start"
   stop  program = "/etc/init.d/postfix stop"
   if failed port 25 protocol smtp then restart
   if 5 restarts within 5 cycles then timeout

(サーバーに実際に存在するプロセスのみをチェックするようにしてください。そうしないと、monitが起動しません。つまり、monitにPostfixをチェックするように指示しても、Postfixがシステムにインストールされていない場合、monitは起動しません。)

構成ファイルはかなり自明です。オプションについて不明な点がある場合は、monitのドキュメントを参照してください:http://www.tildeslash.com/monit/doc/manual.php

monit構成のapache部分には、次のものがあります。

   if failed host www.example.com port 80 protocol http
      and request "/monit/token" then restart

これは、monitがポート80でwww.example.comに接続しようとし、/ var / www / www.example.com / web / monit/tokenであるファイル/monit/tokenにアクセスしようとすることを意味します。 /var/www/www.example.com/webです。 monitが成功しない場合は、Apacheが実行されていないことを意味し、monitはそれを再起動します。次に、ファイル/var/www/www.example.com/web/monit/tokenを作成し、それにランダムな文字列を書き込む必要があります。

mkdir /var/www/www.example.com/web/monit
echo "hello" > /var/www/www.example.com/web/monit/token

次に、SSLで暗号化されたmonit Webインターフェイスに必要なpem証明書(/var/certs/monit.pem)を作成します。

mkdir /var/certs
cd /var/certs

証明書を作成するには、OpenSSL構成ファイルが必要です。次のようになります:

vi /var/certs/monit.cnf
# create RSA certs - Server

RANDFILE = ./openssl.rnd

[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type

[ req_dn ]
countryName = Country Name (2 letter code)
countryName_default = MO

stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = Monitoria

localityName                    = Locality Name (eg, city)
localityName_default            = Monittown

organizationName                = Organization Name (eg, company)
organizationName_default        = Monit Inc.

organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = Dept. of Monitoring Technologies

commonName                      = Common Name (FQDN of your server)
commonName_default              = server.monit.mo

emailAddress                    = Email Address
emailAddress_default            = [email protected]

[ cert_type ]
nsCertType = server

次に、次のような証明書を作成します。

openssl req -new -x509 -days 365 -nodes -config ./monit.cnf -out /var/certs/monit.pem -keyout /var/certs/monit.pem
openssl gendh 512 >> /var/certs/monit.pem
openssl x509 -subject -dates -fingerprint -noout -in /var/certs/monit.pem
chmod 700 /var/certs/monit.pem

最後に、monitを開始できます:

/etc/init.d/monit start

次に、ブラウザでhttps://www.example.com:2812/にアクセスし(ポート2812がファイアウォールによってブロックされていないことを確認してください)、adminでログインしてテストすると、monitWebインターフェイスが表示されます。次のようになります:

(メイン画面)

(Apacheステータスページ)

/etc/monit.d/monitrcの構成に応じて、monitはサービスが失敗した場合にサービスを再起動し、サービスのプロセスIDが変更された場合などに通知メールを送信します。

楽しんでください!

  • munin:http://munin.projects.linpro.no
  • monit:http://www.tildeslash.com/monit/index.php

Fedora
  1. CentOS7でのIcinga2およびIcingaweb2によるサーバー監視

  2. Fedora12でGlusterFSを使用してNFSのようなスタンドアロンストレージサーバーを作成する

  3. Fedora Server 22のインストール–スクリーンショット付きのステップバイステップ

  1. Fedora13でGlusterFSを使用してNFSのようなスタンドアロンストレージサーバーを作成する

  2. Windows8でFedoraをインストールする|デュアルブートWindows8およびFedora16

  3. Fedora Server 23のインストール–スクリーンショット付きのステップバイステップ

  1. スクリーンショット付きのFedora27サーバーインストールガイド

  2. Fedora34にPostgres14をインストールして設定する方法

  3. Muninでサーバーを監視する