SlideShare a Scribd company logo
Web・DB
監視
Webサーバの監視
No 監視分類 監視項目 監視内容 監視間
隔
1 死活監視 L3(ICMP) Ping監視を行う。 1分
L4(ポート) 80ポートを監視する。 1分2
L7(アプリ) Webコンテンツへのアクセ
スを監視する。
1分
3
4 リソース監視 ロードアベレージ 重要度に応じた閾値を設け
て各リソースを監視する。
[重要度]
緊急:使用率90%以上
警告:使用率80%以上
5分
5 CPU使用率 5分
6 メモリ使用率 5分
7 ディスク使用率 毎時
8 Inode使用率 毎時
9 ネットワーク使用率 5分
Webサーバの監視
No 監視分類 監視項目 監視内容 監視間隔
10 プロセス監視 プロセスの状態 httpdプロセスが稼働してい
ることを監視する。またプロ
セス稼働数がMaxClientの値
に達していないか監視する。
1分
11 ログ監視 エラーメッセー
ジ
フィルタリングによるログ監
視
5分
12 セキュリティ
監視
改ざんチェック Webコンテンツが改ざんされ
ていないかチェックサムで監
視する。
1日1回
13 その他監視 リンクチェック Webコンテンツ内で参照して
いる外部リンクへのアクセス
を監視する。
1日1回
スクリプト1,2
#!/bin/bash
# L3(ICMP)
IP=“対象IP”
TO=“宛先”
FROM=“送信元”
SUBJECT=“件名”
MESSAGE=“本文”
ping -c 1 $IP > /dev/null
if [ $? -ne 0 ]; then
echo $MESSAGE | mail -s $SUBJECT -r $FROM $TO
fi
#!/bin/bash
# L4(ポート)
IP=“対象IP”
PORT=“ポート番号”
nc -z $IP $PORT > /dev/null
if [ $? -ne 0 ]; then
# メール送信
fi
スクリプト3
#!/bin/bash
# L7(アプリ)
URL=“対象URL”
PORT=“ポート番号”
TRY=“リトライ回数”
TIMEOUT=“タイムアウト”
alive=`wget -nv --spider -t $TRY -T $TIMEOUT $URL 2>&1 | grep “200 OK”`
if [ $alive -ne 0 ]; then
# メール送信
fi
スクリプト4
#!/bin/bash
WARNING=1
avglist=$(cat /proc/loadavg | cut -d" " -f1,2,3)
for avg in ${avglist[@]}; do
avg=$(echo "$avg * 100" |bc|cut -d"." -f1)
if [ $avg -gt $WARNING ]; then
echo $MESSAGE | mail -s $SUBJECT $TO
fi
done
スクリプト5
#!/bin/bash
WARNING=1
user=`env LANG=C mpstat 1 1 | grep Average | awk '{print $3}' | sed -e "s/..*//g"`
nice=`env LANG=C mpstat 1 1 | grep Average | awk '{print $4}' | sed -e "s/..*//g"`
sys=`env LANG=C mpstat 1 1 | grep Average | awk '{print $5}' | sed -e "s/..*//g"`
cpu=`expr $user + $nice`
cpu=`expr $cpu + $sys`
if [ $cpu -gt $WARNING ]; then
echo $MESSAGE | mail -s $SUBJECT $TO
fi
スクリプト6
#!/bin/bash
WARNING=1
total=`grep "MemTotal" /proc/meminfo | awk '{print $2}'`
free=`grep "MemFree" /proc/meminfo | awk '{print $2}'`
buffers=`grep "Buffers" /proc/meminfo | awk '{print $2}'`
cached=`grep "Cached" /proc/meminfo | grep -v "SwapCached" | awk '{print $2}'`
memfree=`expr $free + $buffers`
memfree=`expr $memfree + $cached`
use=`expr $total - $memfree`
use=`expr $use * 100`
percent=`expr $use / $total`
if [ $percent -gt $WARNING ]; then
echo $percent
# echo $MESSAGE | mail -s $SUBJECT $TO
fi
スクリプト7
#!/bin/bash
WARNING=1
percent_list=(`df -P | awk '{print $5}' | grep -v Capacity | sed -e "s/%//g"`)
for percent in ${percent_list[@]}; do
if [ $percent -gt $WARNING ]; then
echo $percent
# echo $MESSAGE | mail -s $SUBJECT $TO
fi
done
スクリプト8
#!/bin/bash
WARNING=1
percent_list=(`df -i | awk '{print $5}' | grep -v IUse | sed -e "s/%//g"`)
for percent in ${percent_list[@]}; do
if [ $percent -gt $WARNING ]; then
echo $percent
# echo $MESSAGE | mail -s $SUBJECT $TO
fi
done
スクリプト9
!/bin/bash
rx_WARNING=1
tx_WARNING=1
NIC="eth0"
TRAFFIC=(`sar -n DEV 1 1 | grep $NIC | awk 'NR==1 {print $5" "$6}'`)
rx=`echo ${TRAFFIC[0]} | sed s/.[0-9,]*$//g`
tx=`echo ${TRAFFIC[1]} | sed s/.[0-9,]*$//g`
if [ $rx -gt $rx_WARNING -o $tx -gt $tx_WARNING ]; then
echo $rx$tx
# echo $MESSAGE | mail -s $SUBJECT $TO
fi
スクリプト10
#!/bin/bash
WARNING=
User=
MAXCLIENTS=
count=`ps aux | grep httpd | grep $User | wc -l`
if [ $count -eq 0 ]; then
#メール送信
elif [ $count -ge $MAXCLIENTS ]; then
#メール送信
fi
スクリプト11
#!/bin/bash
FILTER=""
LOG=""
while read line
do
log_message=`grep $FILTER $LOG`
if [ $? -eq 0 ]; then
echo ""
fi
done < $FILTER
スクリプト12
# cat sum_list.txt
2333890027d6a922a11b4408d1f9d483 /var/www/html/index.html
482769eb9418fd49b077cb22e045a744 /var/www/html/test.html
#!/bin/bash
SUM_LIST="sum_list.txt"
html_list=(`ls /var/www/html`)
for html in ${html_list[@]}; do
sum1=`grep $html $SUM_LIST | awk '{print $1}'`
sum2=`md5sum /var/www/html/$html | awk '{print $1}'`
if [ $sum1 != $sum2 ]; then
echo $html >> disagreement_list.txt
fi
done
if [ -s disagreement_list.txt ]; then
cat disagreement_list.txt
#cat disagreement_list.txt | mail -s $SUBJECT $TO
fi
スクリプト13
#!/bin/bash
# HTTP Link Check
use LWP;
use HTML::LinkExtor;
$url="チェック対象URL"
$browser = LWP::UserAgent->new;
$response = $brower->get($url);
$error_url="";
$p = HTML::LinkExtor->new(unlink(),$tag,$url);
$p->parse($response->{_content});
for $x ($p->links) {
@ret=@{$x};
$check_url=@{ret[2]};
$alive = `wget -nv --spider -t 1 -T 60 $check_url 2>&1 | grep "200 OK"`;
if ( $? != 0 ) {
$error_url = $error_url . $check_url . "n";
}
}
if($error){
system("echo error_url | mail -s $SUBJECT $TO");
}
DBサーバの監視
No 監視分類 監視項目 監視内容 監視間
隔
1 死活監視 MySQLデータベー
スへの接続確認
MySQLデータベースへ接続
できるか監視する。
1分
2 プロセス監視 プロセスの状態 MySQLデータベース・プロ
セスの稼働状況を監視する。
1分
3 レプリケーショ
ン監視
レプリケーション
の状態
レプリケーションの稼働状況
を監視する。
5分
4 その他の監視 スレッド数 スレッド数を閾値で監視する。5分
5 テーブルスペース
の空き
データベースのテーブルス
ペースの空き容量を監視する。
1日1回
6
クエリキャッシュ
ヒット率
クエリキャッシュヒット率が
閾値より低くないか監視する
1日1回
7
スロークエリログ スロークエリログの確認する。1日1回
スクリプト1
#$!/bin/bash
# MySQLデータベースへの接続確認
User=""
Pas=""
alive=`mysqladmin ping -u $User -p$Pas > /dev/null 2>&1`
if [ $alive -ne 0 ]; then
echo $MESSAGE | mail -s $SUBJECT $TO
fi
スクリプト2
#!/bin/bash
# MySQLデータベース・プロセスの稼働確認
mysqld_pro=`ps -e | grep mysqld | grep -v mysqld_safe | grep -v grep |
wc -l`
if [ $mysqld_pro -ne 0 ]; then
echo $MESSAGE | mail -s $SUBJECT -r $FROM $TO
fi
スクリプト3
#!/bin/bash
# レプリケーションの稼働状況確認
User=""
Pas=""
Host=""
Port="3306"
status=`mysql -u $User -p$Pas -P $Port -h $Host -e 'show slave statusG' 2>&1`
if [ $? -gt 0 ]; then
echo $MESSAGE | mail -s $SUBJECT -r $FROM $TO
fi
badcount=`echo $status | grep Running | grep No | wc -l`
if [ $badcount -gt 0 ]; then
echo $MESSAGE | mail -s $SUBJECT -r $FROM $TO
fi
スクリプト4
#!/bin/bash
# スレッド数の閾値監視
WARNING="閾値"
pro_count=`mysql -u $User -p$Pas -P $Port -h $Host -BNe 'show processlist' |
awk '{print $5}' | grep -v Sleep | wc -l`
if [ $pro_count -ge $WARNING ]; then
echo $MESSAGE | mail -s $SUBJECT -r $FROM $TO
fi
スクリプト5
#!/bin/bash
# データベースのテーブルスペースの空き容量チェック
WARNING="閾値"
DB_NAME="データベース名"
free=`mysql -u $User -p$Pas $DB_NAME -e "SHOW TABLE STATUS" | awk
'NR==2 {print $10}'`
if [ $free -gt $WARNING ]; then
echo $MESSAGE | mail -s $SUBJECT -r $FROM $TO
fi
スクリプト6
#!/bin/bash
# クエリキャッシュヒット率が閾値より低くないか監視する
WARNING=1
cache=(`mysqladmin -u $User -p$Pas extended-status | grep Qcache`)
Qcache_hits=`echo ${cache[2]}`
Qcache_inserts=`echo ${cache[3]}`
Qcache_not_cached=`echo ${cache[5]}`
sum=`expr $Qcache_hits + $Qcache_inserts + $Qcache_not_cached`
hit=`echo "scale=2; $Qcache_hits / $sum" | bc | sed s/^.//g`
if [ $hit -lt $WARNING ]; then
echo $MESSAGE | mail -s $SUBJECT -r $FROM $TO
fi
スクリプト7
#!/bin/bash
# スロークエリログの確認
SLOW_QUERY_LOG="スロークエリログのパス"
mysqldumpslow $SLOW_QUERY_LOG | mail -s $SUBJECT $TO
おまけ(ネットワーク構成)
LVS *2
WEB *2
AP *2
DB *2
ルータ ルータ
インターネット
LVS LVS
WEB WEB
AP AP
DB DB
LVS LVS
タグVLAN(10,20)
タグVLAN(20,30)
タグVLAN(30,40)
ポートVLAN(40)

More Related Content

Viewers also liked

Linux 系統管理與安全:系統防駭與資訊安全
Linux 系統管理與安全:系統防駭與資訊安全Linux 系統管理與安全:系統防駭與資訊安全
Linux 系統管理與安全:系統防駭與資訊安全
維泰 蔡
 
Linux 系統管理與安全:基本 Linux 系統知識
Linux 系統管理與安全:基本 Linux 系統知識Linux 系統管理與安全:基本 Linux 系統知識
Linux 系統管理與安全:基本 Linux 系統知識
維泰 蔡
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokee
yut148atgmaildotcom
 
Cheatsheet: Hex file headers and regex
Cheatsheet: Hex file headers and regexCheatsheet: Hex file headers and regex
Cheatsheet: Hex file headers and regex
Kasper de Waard
 
Tmux quick-reference
Tmux quick-referenceTmux quick-reference
Tmux quick-referenceRamesh Kumar
 
Webサーバ勉強会#5mod sedについて
Webサーバ勉強会#5mod sedについてWebサーバ勉強会#5mod sedについて
Webサーバ勉強会#5mod sedについてyut148atgmaildotcom
 
RHEL roadmap
RHEL roadmapRHEL roadmap
RHEL roadmap
Ramesh Kumar
 
UNIX SHELL IN DBA EVERYDAY
UNIX SHELL IN DBA EVERYDAYUNIX SHELL IN DBA EVERYDAY
UNIX SHELL IN DBA EVERYDAY
Andrejs Vorobjovs
 
Sorting techniques in Perl
Sorting techniques in PerlSorting techniques in Perl
Sorting techniques in Perl
Yogesh Sawant
 
Unix interview questions
Unix interview questionsUnix interview questions
Unix interview questions
Kalyan Hadoop
 
Hadoopp0f 150325024427-conversion-gate01
Hadoopp0f 150325024427-conversion-gate01Hadoopp0f 150325024427-conversion-gate01
Hadoopp0f 150325024427-conversion-gate01
Kalyan Hadoop
 
shell script introduction
shell script introductionshell script introduction
shell script introduction
Jie Jin
 
Recommender system
Recommender systemRecommender system
Recommender system
Jie Jin
 
Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions
Ahmed El-Arabawy
 
sed -- A programmer's perspective
sed -- A programmer's perspectivesed -- A programmer's perspective
sed -- A programmer's perspective
Li Ding
 
Orienit hadoop practical cluster setup screenshots
Orienit hadoop practical cluster setup screenshotsOrienit hadoop practical cluster setup screenshots
Orienit hadoop practical cluster setup screenshots
Kalyan Hadoop
 
Designing Tracing Tools
Designing Tracing ToolsDesigning Tracing Tools
Designing Tracing Tools
Brendan Gregg
 

Viewers also liked (20)

Linux 系統管理與安全:系統防駭與資訊安全
Linux 系統管理與安全:系統防駭與資訊安全Linux 系統管理與安全:系統防駭與資訊安全
Linux 系統管理與安全:系統防駭與資訊安全
 
Donate Organs
Donate OrgansDonate Organs
Donate Organs
 
Linux 系統管理與安全:基本 Linux 系統知識
Linux 系統管理與安全:基本 Linux 系統知識Linux 系統管理與安全:基本 Linux 系統知識
Linux 系統管理與安全:基本 Linux 系統知識
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokee
 
Cheatsheet: Hex file headers and regex
Cheatsheet: Hex file headers and regexCheatsheet: Hex file headers and regex
Cheatsheet: Hex file headers and regex
 
Tmux quick-reference
Tmux quick-referenceTmux quick-reference
Tmux quick-reference
 
Webサーバ勉強会#5mod sedについて
Webサーバ勉強会#5mod sedについてWebサーバ勉強会#5mod sedについて
Webサーバ勉強会#5mod sedについて
 
RHEL roadmap
RHEL roadmapRHEL roadmap
RHEL roadmap
 
UNIX SHELL IN DBA EVERYDAY
UNIX SHELL IN DBA EVERYDAYUNIX SHELL IN DBA EVERYDAY
UNIX SHELL IN DBA EVERYDAY
 
Cacti manual
Cacti manualCacti manual
Cacti manual
 
Sorting techniques in Perl
Sorting techniques in PerlSorting techniques in Perl
Sorting techniques in Perl
 
Unix interview questions
Unix interview questionsUnix interview questions
Unix interview questions
 
Hadoopp0f 150325024427-conversion-gate01
Hadoopp0f 150325024427-conversion-gate01Hadoopp0f 150325024427-conversion-gate01
Hadoopp0f 150325024427-conversion-gate01
 
Url
UrlUrl
Url
 
shell script introduction
shell script introductionshell script introduction
shell script introduction
 
Recommender system
Recommender systemRecommender system
Recommender system
 
Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions Course 102: Lecture 13: Regular Expressions
Course 102: Lecture 13: Regular Expressions
 
sed -- A programmer's perspective
sed -- A programmer's perspectivesed -- A programmer's perspective
sed -- A programmer's perspective
 
Orienit hadoop practical cluster setup screenshots
Orienit hadoop practical cluster setup screenshotsOrienit hadoop practical cluster setup screenshots
Orienit hadoop practical cluster setup screenshots
 
Designing Tracing Tools
Designing Tracing ToolsDesigning Tracing Tools
Designing Tracing Tools
 

Similar to Web_DBの監視

the study of monit
the study of monitthe study of monit
the study of monit
Tadayasu Yotsu
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
Yu Komiya
 
What is chef
What is chefWhat is chef
What is chef
Yukihiko SAWANOBORI
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミングlestrrat
 
Fluentd meetup #2
Fluentd meetup #2Fluentd meetup #2
Fluentd meetup #2
Tomohiro Ikeda
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12Ryuji Yamashita
 
behatエクステンションの作り方
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方
Ryo Tomidokoro
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
AdvancedTechNight
 
サーバー実装いろいろ
サーバー実装いろいろサーバー実装いろいろ
サーバー実装いろいろkjwtnb
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
LINE Corporation
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングYuichi Tateno
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
do_aki
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能についてshigeki_ohtsu
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 

Similar to Web_DBの監視 (20)

the study of monit
the study of monitthe study of monit
the study of monit
 
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
What is chef
What is chefWhat is chef
What is chef
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミング
 
Fluentd meetup #2
Fluentd meetup #2Fluentd meetup #2
Fluentd meetup #2
 
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12
 
behatエクステンションの作り方
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方
 
Haikara
HaikaraHaikara
Haikara
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
 
サーバー実装いろいろ
サーバー実装いろいろサーバー実装いろいろ
サーバー実装いろいろ
 
LINEのMySQL運用について
LINEのMySQL運用についてLINEのMySQL運用について
LINEのMySQL運用について
 
20081003
2008100320081003
20081003
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 
BBBBB
BBBBBBBBBB
BBBBB
 
1MB
1MB1MB
1MB
 
Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 

Web_DBの監視