网站web服务的监控6中方法
1、端口
本地:ss netstat lsof
远程:telnet、nmap,nc
2、本地进程
3、header(http code)curl -I 返回200就ok
4、URL(wget、curl),模拟用户的方式
5、php、java写监控程序,模拟用户方式。
实例:
本地端口
[root@node01 day7]# lsof -i :80 (大于等于1)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
clock-app 2195 root 21u IPv4 604135 0t0 TCP bogon:45729->199.239.182.178:http (ESTABLISHED)
httpd 130342 root 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130348 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130349 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130350 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130351 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130352 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130353 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130354 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130355 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
[root@node01 day7]# lsof -i :80|wc -l
11
远程端口
[root@node01 day7]# nmap 192.168.145.130 -p 80 (等于1)
Starting Nmap 5.51 ( http://nmap.org ) at 2017-08-01 21:26 CST
Nmap scan report for bogon (192.168.145.130)
Host is up (0.000038s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
[root@node01 day7]# nmap 192.168.145.130 -p 80|grep open
80/tcp open http
[root@node01 day7]# nmap 192.168.145.130 -p 80|grep open|wc -l
1
进程
[root@node01 day7]# ps -ef|grep apache|wc -l (大于等于2)
9
curl
[root@node01 day7]# curl -I 192.168.145.130 2>/dev/null|head -1
HTTP/1.1 403 Forbidden
[root@node01 day7]# curl -I -s -w "%{http_code}" 192.168.145.130 -o /dev/null (等于200)
200
[root@node01 ~]# curl -I -s -w "%{http_code}" www.baidu.com -o /dev/null
200
wget
[root@node01 day7]# wget --spider --timeout=100 --tries=2 192.168.145.130 &>/dev/null (返回值为0)
[root@node01 day7]# echo $?
以上每种方法都有不同的命令实现,详细可以看man。
实际检查脚本:
[root@node01 day7]# vi check_web.sh
#!/bin/sh
http_code=`curl -I -s -w "%{http_code}" 192.168.145.130 -o /dev/null`
if [ $http_code -ne 200 ]
then
echo "web is error"
else
echo "web is ok"
fi
[root@node01 day7]# sh check_web.sh
web is error
[root@node01 day7]# vi check_web.sh
#!/bin/sh
http_code=`curl -I -s -w "%{http_code}" www.baidu.com -o /dev/null`
if [ $http_code -ne 200 ]
then
echo "web is error"
else
echo "web is ok"
fi
[root@node01 day7]# sh check_web.sh
web is ok
====================================
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com
-I 仅测试HTTP头
-m 10 最多查询10s
-o /dev/null 屏蔽原有输出信息
-s silent
-w %{http_code} 控制额外输出
1、端口
本地:ss netstat lsof
远程:telnet、nmap,nc
2、本地进程
3、header(http code)curl -I 返回200就ok
4、URL(wget、curl),模拟用户的方式
5、php、java写监控程序,模拟用户方式。
实例:
本地端口
[root@node01 day7]# lsof -i :80 (大于等于1)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
clock-app 2195 root 21u IPv4 604135 0t0 TCP bogon:45729->199.239.182.178:http (ESTABLISHED)
httpd 130342 root 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130348 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130349 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130350 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130351 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130352 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130353 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130354 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
httpd 130355 apache 4u IPv6 329242 0t0 TCP *:http (LISTEN)
[root@node01 day7]# lsof -i :80|wc -l
11
远程端口
[root@node01 day7]# nmap 192.168.145.130 -p 80 (等于1)
Starting Nmap 5.51 ( http://nmap.org ) at 2017-08-01 21:26 CST
Nmap scan report for bogon (192.168.145.130)
Host is up (0.000038s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
[root@node01 day7]# nmap 192.168.145.130 -p 80|grep open
80/tcp open http
[root@node01 day7]# nmap 192.168.145.130 -p 80|grep open|wc -l
1
进程
[root@node01 day7]# ps -ef|grep apache|wc -l (大于等于2)
9
curl
[root@node01 day7]# curl -I 192.168.145.130 2>/dev/null|head -1
HTTP/1.1 403 Forbidden
[root@node01 day7]# curl -I -s -w "%{http_code}" 192.168.145.130 -o /dev/null (等于200)
200
[root@node01 ~]# curl -I -s -w "%{http_code}" www.baidu.com -o /dev/null
200
wget
[root@node01 day7]# wget --spider --timeout=100 --tries=2 192.168.145.130 &>/dev/null (返回值为0)
[root@node01 day7]# echo $?
以上每种方法都有不同的命令实现,详细可以看man。
实际检查脚本:
[root@node01 day7]# vi check_web.sh
#!/bin/sh
http_code=`curl -I -s -w "%{http_code}" 192.168.145.130 -o /dev/null`
if [ $http_code -ne 200 ]
then
echo "web is error"
else
echo "web is ok"
fi
[root@node01 day7]# sh check_web.sh
web is error
[root@node01 day7]# vi check_web.sh
#!/bin/sh
http_code=`curl -I -s -w "%{http_code}" www.baidu.com -o /dev/null`
if [ $http_code -ne 200 ]
then
echo "web is error"
else
echo "web is ok"
fi
[root@node01 day7]# sh check_web.sh
web is ok
====================================
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com
-I 仅测试HTTP头
-m 10 最多查询10s
-o /dev/null 屏蔽原有输出信息
-s silent
-w %{http_code} 控制额外输出