ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux操作系统性能指标监控与通知

Linux操作系统性能指标监控与通知

原创 Linux操作系统 作者:醋溜包菜 时间:2022-09-30 13:38:51 0 删除 编辑

最近整了一台服务器,搭建了 web 网站,整了一下监控系统,这样也方便,我用的是 3A 的服务器,服务挺不错的

系统的性能指标监控是比较常见的针对系统的管理场景,比如系统有挖矿程序,或者系统本身存在高CPU 进程 ( 正常应用 ) ,除了 CPU 之外,也可以监控内存,硬盘,网络流星等使用情况。通过监控和发送通知,可以及时对系统的运行情况进行把控进而实现正确的处置。如果发现某些异常 CPU 消耗,甚至可以直接结束掉进程。

(1) 通过相应的命令能够输出需要的指标。

(2) 通过 awk 对输出结果进行过滤,找到对应的值。

(3) 根据对应的值进行判断,进而决定后续处理方式。

一、使用yes 程序监控 CPU

#获取总的CPu使用率并转化为整数用于后续判断
cpu=$(top -n 1 | grep ^%Cpu | awk '{print int($8)}')
或
cpu=$(top -n 1 | grep ^%Cpu | awk '{print $8}' | awk -F . '{print $1} ')
#获取是消耗CPU的进程信息
pcpu=`ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk '{print $3}'`
echo $pcpu / 4 | bc #计算单核CPU的使用率,与总CPU使用率才有可比性
#如何搜集内存使用信息
top -n 1 | grep "^KiB Mem" | awk '{print $6}'
或者使用free 也可以采集内存使用情况
#如何搜集硬盘使用信息
df -h | grep ^/dev/mapper
#网络流量
ip -s link


二、发送邮件通知

1 、安装 mailx 邮件客户端

yum install mailx -y

早期的邮件客户端通常使用sendmail 来发送邮件,而新版本上使用的是 postfix 进行邮件的发送和接收。在 Linux 中,只要配置好邮件客户端及 SMTP 账号后,不仅可以向当前系统的任意账号发送内部邮件,即我们看到的 /var/spool/mail/user 的文本型邮件,也可以向外网正常的邮箱地址发送邮件,如向 12345678@qq.com 发送邮件。

2 、向本地系统用户发邮件

systemctl start postfix #先确保postfix邮件发送服务启动
echo "This is email body" | mail -s "test email" root #直接使用管道发送简单邮件正文#
mail -s "test email" root < /etc/passwd #直接使用输入重定向的方式读取一个文件内容作为正文
cp /dev/nu1l /var/spool/mai1/root #先清空邮件


使用mail 命令可以直接查看邮件,输入序号查看邮件正文,输入 q 退出,输入 h 回到邮件列表

�3 、向外部邮箱地址发邮件

(1 )确定邮件账号的 SMTP 信息,可以使用蜗牛学院的测试邮箱账号 , 或使用 QQ 邮箱账号。

(2 )编辑 /etc/mail.rc ,将上述 SMTP 信息输入

set from=student@woniuxy.com
set smtp=smtp.woniuxy.com
set smtp-auth-user=student@woniuxy.com
set smtp-auth-password=Student123
set smtp-auth=login


(3) 使用以下命令发送邮件

mail -s "test email" 15903523@qq.com < /etc/passwd
mail -s "test.email" -a /opt/picture.png 15903523@qq.com < /etc/passwd #带附件


1 、 top -n 1 查看程序信息


在vm ware 中开启 yes 程序, [root@numberone ~]# yes ,之后在xshell 中再次 top -n 1 查看程序信息


2 、

[root@numberone ~]# cpu=$(top -n 1 | grep ^%Cpu | awk '{print int($8)}')
[root@numberone ~]# echo $cpu



3 、

[root@numberone ~]# [ $cpu -lt 75 ]
[root@numberone ~]# echo $?


0
为0 ,说明小于 75


[root@numberone ~]# [ $cpu -lt 70 ]
[root@numberone ~]# echo $?



为1 说明不小于 70 ,即大于 70


4 、

[root@numberone ~]# pcpu= `ps aux | sort -k 3 -r | head -n 2 | tail -n 1 |awk ‘{print $3}’[root@numberone ~]# echo $pcpu`99.7[root@numberone ~]# echo $pcpu / 4 | bc24[root@numberone ~]# top -n 1 |grep “^KiB Mem” | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 6}̲'` `3113076` `[…(top -n 1 | grep ^%Cpu | awk ‘{print int ($8)}’)
if [ c p u − l t 75 ] ; t h e n p c p u = cpu -lt 75 ]; then pcpu=cpu−lt75];thenpcpu=(ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 3}̲') ppcp…(echo p c p u / 4 ∣ b c ) p i d = pcpu / 4 | bc) pid=pcpu/4∣bc)pid=(ps aux | sort -k 3 -r | head -n 2 | tail -n 1 | awk ‘{print $2}’)
echo “CPU is lower, $pid consume $ppcpu%”
else
echo “CPU is OK”
fi




6、[root@numberone ~]# yum install mailx -y


[root@numberone ~]# systemctl start postfix



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70022313/viewspace-2916929/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-09-21

  • 博文量
    24
  • 访问量
    14639