Linux Linux 次次次 次 、一 次次次 次 、一 般般般般般 一 LOCAL @smokeymonkey 【 企企企企企企 企企 企 】 ・ 一 OS 企
LinuxLinux 、次の一、次の一歩歩
一般社団法人 LOCAL
@smokeymonkey
【企画セミナー】次の一歩・ OS編
自己紹介
@smokeymonkey 一般社団法人 LOCAL 社員 LOCAL インフラ部 所属 北海道情報セキュリティ勉強会 副代表 北海道開発オフ 所属 仕事 : 中間管理職
はじめに
本セミナーの主旨
対象者: CentOS や FreeBSD をおっかなびっくり触ってる人、 仮想ソリューションをおそるおそる触ってる人 レベル:初心者向け
テーマ:「次の一歩」にそった、 LOCAL 企画セミナーです。 Web デザイナーやプログラマの方などに 次の一歩を踏み出してもらうために、 Linux や FreeBSD 、仮想化ソリューションを題材に、 次の一歩を踏み出すための秘訣を伝授します。
「 Linux の次の一歩ってなんだろう?」
「 Web デザイナーやプログラマの方などに次の一歩を踏み出してもらうために」 サーバ用途に Linux をインストールした。 設定した Linux にコンテンツを載せた。 コンテンツを公開した。
→じゃあ次は?
こう考えました
当たり前のことだけど・・・「システムは動いてナンボ」
動き始めただけでは意味が無い。 動き続ける、使われ続けることに意味があ
る。 じゃあ Linux を保守・運用の観点から一歩
踏み出してみよう!
運用保守におけるシステム監視
外部監視 対象機器の外側から状態を監視するもの
逆に言えば、対象機器の内側からでは監視できないもの
疎通監視、サービス監視 内部監視
対象機器の内側から状態を監視するもの プロセス監視、リソース監視、ログ監視
外部監視の種類
疎通監視 ネットワーク的な接続状態の監視 ( 主に Ping)
サービス監視 特定のサービス ( ネットワークで言うポート )
が稼動状態にあるかどうかを監視する。 単純にサービスが接続可能であるか、だけでは
無く、サービス応答まで監視できるものもある。 例えば特定の Web コンテンツにアクセスできるか、
等。
内部監視の種類 プロセス監視
特定のプロセスが起動状態にあるかどうかを監視する。
リソース監視 リソースの負荷を監視する。 一時的な過負荷であるかを判断するためには、
日々リソースの使用率を計測しておく必要がある。
ログ監視 ログファイルに対し、特定のキーワードの出力
状態を監視する。 例 :ERROR 、 WARN 、 link down 等。
内部監視を実現するパッケージ
プロセス監視 Monit
リソース監視 MRTG
ログ監視 logwatch
Monit
プロセス監視を行うパッケージ 監視したいプロセスを指定して 特定の条件の検知して 指定したアクションを行う。
例 :httpd が down したら restart する。 例 :postfix の CPU 使用率が 90% を超えたら
restart する。 公式 (http://mmonit.com/monit/)
Monit のインストール
公式から Link されたパッケージ置き場 (http://dag.wieers.com/rpm/packages/monit/) から RPM パッケージをダウンロードする。
# rpm –ivh monit-4.9-2.el5.rf.i386.rpm
Monit の簡単な設定
/etc/monit.conf
/etc/monit.d/*
# vi /etc/monit.confset daemon 120Include /etc/monit.d/*
※ 例 :httpd が down したら restart するように# vi /etc/monit.d/httpd.confcheck process httpd with pidfile /var/run/httpd.pid start program = “/etc/init.d/httpd start” stop program = “/etc/init.d/httpd stop” if failed port 80 protocol HTTP then restart
例 : 実際に httpd を落としてみる
# /etc/init.d/monit startProcess Monitor (monit) を起動中 : Starting monit daemon [ OK ]# ps aux | grep httpdroot 29237 0.0 0.2 9944 2904 ? Ss 23:08 0:00 /usr/sbin/httpdapache 29238 0.0 0.1 9944 2068 ? S 23:08 0:00 /usr/sbin/httpd...# /etc/init.d/httpd stophttpd を停止中 : [ OK ]
※ しばらく待機…
# ps aux | grep httpdroot 29393 0.1 0.2 9944 2912 ? Ss 23:12 0:00 /usr/sbin/httpdapache 29394 0.0 0.1 9944 2060 ? S 23:12 0:00 /usr/sbin/httpd...
MRTG
リソース監視を行うパッケージ 公式より引用→「 The Multi Router Traffi
c Grapher (MRTG) はネットワークの負荷を監視するツールです」
現在は各システムリソースを ( 主に SNMP 経由で ) 取得、可視化し、監視する用途で使われている。
公式 (http://www.mrtg.jp/doc/)
「 SNMP 」とは 「 Simple Network Management Protocol
(シンプル ネットワーク マネージメント プロトコル、 SNMP )は、 DARPA モデルに準じたIP ネットワーク上のネットワーク機器を監視(モニタリング)・制御するための情報の通信方法を定めるプロトコルである。 」 (Wikipediaより ) つまり、 IP ネットワークの仕組みの上で、接続され
た機器 ( ノード ) の状態を監視したり、制御したりできる。
Linux サーバも、 IP ネットワークに接続されていて、SNMP が喋れれば、監視・制御が可能。
MRTG+net-snmp のインストール
MRTG でデータを取得するために、 net-snmp を yum でインストール。
MRTG を yum でインストール。
# yum –y install net-snmp
# yum –y install mrtg
net-snmp の簡単な設定
設定ファイルの編集
Snmp daemon の起動
# vi /etc/snmp/snmpd.confcom2sec local localhost privategroup MyGroup v1 localgroup MyGroup v2c localview all included .1 80access MyGroup "" any noauth exact all all none
# /etc/init.d/snmpd start
MRTG の簡単な設定
設定ファイルの作成→実行# cfgmaker [email protected] > /etc/mrtg/mrtg.cfg
# vi /etc/mrtg/mrtg.cfg※ 最低限 WorkDir だけ設定しないと動きません。
# LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg ※ 最初は LOG ファイルが無かったりで 2 回ほど WORNING が出ます。
こんな感じ
活用例
CPU 使用率を取得する メモリ使用率を取得する パーティション使用率を取得する 閾値超過時に通知する (ThreshProgI/O 、
ThreshProgOKI/OKO)
logwatch
ログ監視するパッケージ。 CentOS ではデフォルトでインストール
されている。 仕組みだけ確認してみましょう。
Cron の設定を確認
# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/
# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly
# ls -alF /etc/cron.daily/0logwatchlrwxrwxrwx 1 root root 39 6 月 8 13:40 0logwatch ->/usr/share/logwatch/scripts/logwatch.pl*
毎日 4:22 に Perl スクリプトが動くように設定されている
logwatch で送信されるメール例
Subject: *** SECURITY information for localhost.localdomain ***
localhost.localdomain : 6 月 10 21:47:37 : saru : user NOT in sudoers ;TTY=pts/1 ; PWD=/home/saru ; USER=root ; COMMAND=/usr/bin/yum installapache
Subject: Cron <root@localhost> LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg--lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
14-06-2010 22:00:02, Rateup WARNING: /usr/bin/rateup could not read the primarylog file for 127.0.0.1_2
統合監視システム システム監視を、個別の仕組みでは無く、
統合的に行えるもの。 複数機器を一括で管理可能。 現在はインターフェースが日本語化された
ものも多々ある。 ZABBIX Hinemos
導入コスト、運用コストが高いため、単体機器に対してはメリットが低く、複数の機器にて構成されたシステムにおいてメリットがある。
ZABBIX
ZABBIX
オフィシャル http://www.zabbix.com/
国内アンオフィシャルポータル http://www.zabbix.jp/
国内ベンダ Miracle
http://www.miraclelinux.com/products/m_plus/zabbix/index.html
NTT コムテクノロジー http://www.zabicom.com/
Hinemos
Hinemos
オフィシャル http://www.hinemos.info/
まとめ Linux サーバを「構築」出来た方が、
「運用」出来るようになること、を主旨として、ポインタをまとめてみました。
システム運用にたった一つの「正解」は無く、日々改善していくことで「最適解」を探していくしかありません。
皆さんの構築した Linux サーバが、いつまでもいつまでも使われ続けますように
以上、ありがとうございました。
Next: FreeBSDNext: FreeBSD 、次の一歩、次の一歩