如何监控linux服务器端口,用什么命令
Admin 2022-06-08 群英技术资讯 654 次浏览
所以我们要实时监控这些服务,如果发现有服务出现异常,需要立即告警。这里我们不打算通过进程名来判断服务的状态。我们打算通过端口的监听来判断服务的运行状态。
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
vim操作模式有:1、正常模式,用来浏览和修改文本内容;2、插入模式,用来向文本中添加内容;3、可视模式,相当于高亮选取文本后的普通模式;4、命令模式,用于操作文本文件(不是操作文本文件的内容)。
今天给大家准备了一篇linux中设置java环境变量的教程内容,想要详细了解清楚这方面内容的小伙伴不妨看看小编整理的资料,一定会对你有所帮助的。
解决方法:1、利用“hostname hy”命令,将hostname改为hy;2、修改“/etc/hosts”文件或“/etc/sysconfig/network”文件修改hostname,并利用“service network restart”重启网络服务即可。
查看方法:1、用“df -h”命令;2、用“lsblk”命令;3、用“sudo lshw -class disk”命令;4、用“fdisk -l”命令;5、用“cat /proc/partitions”命令;6、用“lsscsi”命令。
今天和大家介绍下linux系统中两个命令的用法——df以及du,df命令可以查看文件系统的磁盘使用信息,du则可以用来查看文件或目录的大小。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008