如何监控linux服务器端口,用什么命令
Admin 2022-06-08 群英技术资讯 871 次浏览
今天这篇我们来学习和了解“如何监控linux服务器端口,用什么命令”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“如何监控linux服务器端口,用什么命令”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!所以我们要实时监控这些服务,如果发现有服务出现异常,需要立即告警。这里我们不打算通过进程名来判断服务的状态。我们打算通过端口的监听来判断服务的运行状态。
linux服务器上有一个命令可以用来查看端口状态:netstat。但是在centOS7上,需要先安装net-tools工具,才有这个命令。已经安装这个工具包后,我们来使用netstat命令,看看它会显示哪些信息
# netstat -tlnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 11213/redis-server tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1556/nginx: master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 984/sshd tcp 0 0 127.0.0.1:88 0.0.0.0:* LISTEN 17446/httpd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1556/nginx: master tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 25859/mongod tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7138/mysqld
上面显示的信息,不管是端口6379的redis,还是3306的mysql等等,都是运行我司系统必须的服务。然后,我们通过grep命令,过滤掉第一行以及第二行
# netstat -tlnp | grep tcp tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 11213/redis-server tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1556/nginx: master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 984/sshd tcp 0 0 127.0.0.1:88 0.0.0.0:* LISTEN 17446/httpd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1556/nginx: master tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 25859/mongod tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7138/mysqld
然后再通过awk命令获取第四列的信息。
# netstat -tlnp | grep tcp | awk '{print $4}'
127.0.0.1:6379
0.0.0.0:80
0.0.0.0:22
127.0.0.1:88
0.0.0.0:443
127.0.0.1:27017
0.0.0.0:3306最后再通过cut命令获取到端口号。
# netstat -tlnp | grep tcp | awk '{print $4}' | cut -d: -f2
6379
80
22
88
443
27017
3306通过上面的操作,我们能获取目前服务器端口的情况,然后我们将需要运行服务的端口存放在数组中,然后遍历该数组和拿到的这些信息做对比。
ports="80 88 443 3306 6379 27017"
for port in $ports
do
echo $port
done遍历这些需要监听的端口后,我们来将端口与netstat获取到的信息作对比。我们这里用grep命令来做判断。下面我们给出完整的代码:
#!/bin/bash
# 监控服务器端口情况
export LANG=en
ports="80 88 443 3306 6379 27017"
netstat_info=$(netstat -tlnp | grep tcp | awk '{print $4}' | cut -d: -f2)
for port in $ports
do
flag=$(echo $netstat_info | grep $port)
if [ -z "$flag" ];then
echo "$port is dead"
fi
done对于端口监控的脚本编写还是很容易的。下面我们来测试下该脚本是否能正常监控端口。所有服务都正常的情况下,执行该脚本不会输出任何信息。如果关闭了nginx服务,则应该出现信息。
首先,所有服务都正常的情况下,执行脚本
# ./port.sh # #不会有任何信息出现
现在我们来主动关闭nginx服务,然后再来运行该脚本,查看会出现什么信息
# /etc/init.d/nginx stop Stoping nginx... done # ./port.sh 80 is dead 443 is dead
由此得知,该脚本能正常监控服务器端口情况。日常工作中,经常将上述脚本和定时任务以及告警程序一起使用。将此脚本发到定人任务去,没分钟执行一次,当发现指定端口没有被监听,则触发告警程序。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
解决方法:1、利用“vim /etc/fstab”重新分配tmp目录大小;2、添加“tmpfs /tmp tmpfs nodev,nosuid,size=需要的空间大小 0 0”将tmp文件更改为指定的空间大小;3、重新启动之后,利用“df -h”可以查看更改后的tmp空间大小。
在linux中,可以利用sed命令来删除指定文件的某几行,执行“sed 'M,Nd' 文件名”语句可以删除从M到N的连续行内容,执行“sed 'N1d;N2d;N3d;$d' 文件名”语句可以删除不连续的第N1、N2、N3行内容,执行“sed '/特定字符/d' 文件名”语句可以删除包含特定字符的行,执行“sed '/^特定字符/d' 文件名”语句可以删除特定字符开头的行。
linux查看用户组下所有用户的两种方法:1、使用cat和grep命令查看用户组配置文件“/etc/group”中的内容,并过滤输出指定用户组的信息即可,语法“cat /etc/group|grep 组名”,可以输出指定用户组中的用户列表。2、使用“sudo yum members”命令安装members工具包,执行“members 组名”命令列出指定用户组下所有的用户即可。
本文来给大家说说看linux操作系统中的APT命令的详细内容,对这方面知识点需要了解清楚的小伙伴可以看看小编所整理的资料,一定不会让你失望的。
在linux中,root权限是超级管理员用户的最高管理权限;root权限可以超越任何用户和用户组对文件或目录进行读取修改或者删除;linux通过UID来区分用户权限级别,UID为0的用户则被系统认定为具有超级权限,也即root权限。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008