在Linux系统中,我们可以使用各种软件之间的关联与配合,完成我们想要完成的工作,这也正是Linux系统人性化的一方面,而MUTT+MSMTP的邮件组合便为我们提供了不错的应用解决方案。

应用背景:

  公司新上线了一个项目,设计到的服务器有9台,公司想通过邮件的方式来监控主机的运行状态,以及判断服务器上的资源是否可用,如果不可用自动执行重启应用的操作,并且发送一封Email邮件通知相关人员。

  在了解了需求之后,我们就可以整理出自己的一套解决方案,首先在这个项目需求中涉及到了Email邮件的发送,我们就会想到搭建Email邮件服务器,例如sendmail、postfix等等,但是这里我们仅仅是需要发送邮件,对于费尽心思搭建的一套Email邮件服务器来讲简直就是浪费资源。对于这样简单发送邮件的需求,我们用Msmtp客户端加上发送邮件需要的Mutt程序完全就可以实现了。

Msmtp (下载地址:http://sourceforge.net/projects/msmtp/files/msmtp/)

  Msmtp是一款专门负责邮件发送的客户端软件,基于GPL发布。支持TLS/SSL、DNS模式、IPv6、服务器端认证、多用户等特性。该软件和mpop是姊妹软件。

Msmtp软件安装

tar jxf msmtp-1.4.16.tar.bz2
./configure  --prefix=/usr/local/msmtp
make
make install

MUTT (系统一般自带 下载地址:http://sourceforge.jp/projects/sfnet_mutt/releases/)

  mutt是linux下的一个email程序。Mutt 显然是一个 Unix 的邮件程序,它跟一般的 Windows 邮件程序不同,它不是一个包罗万象的大杂烩。你甚至会发现它根本不直接发出邮件,它从来不自己编辑邮件,它从来不自己对邮件进行加密和数字签名,Mutt 更像一个文件管理器,只不过它管理的是email。它的功能是借助各个最强大的程序来实现的。这符合 UNIX 的设计思想。

Mutt安装

tar zxf mutt-1.5.21.tar.gz
./configure
make
make install

  软件的安装非常简单,安装之后我们就可以对其进行配置了,比较有意思的是这两个程序的配置文件都为隐藏文件,路径为家目录。

Msmtp

cd ~
vi .msmtprc

 host smtp.163.com   #你的邮件服务器地址
 tls off   #关闭tls
 auth plain   #设定登录方式
 from youraddress@163.com   #发送Email的邮件地址
 user yourname   #发送Email的用户名
 password yourpassword   #发送Email的用户名密码

chmod 600 .msmtprc   #不允许其他用户访问该文件
touch .msmtp.log   #创建日志记录文件

Mutt

cd ~
vi .muttrc

 set sendmail="/usr/local/msmtp/bin/msmtp"   #指定msmtp执行的路径
 set use_from=yes    #指定是否显示来自用户(别名)
 set realname="阿布"   #发件人别名
 set from=youradress@163.com  #指定要使用的email地址
 set rfc2047_parameters=yes   #解决附件中文乱码的问题
 set charset="GBK"   #指定发送的邮件文字编码(与服务器保持一致)

  软件配置完成后我们可以使用下面的命令来进行测试

  echo “这里输入的是你邮件的正文内容” | mutt -s ‘这里是你邮件的标题’ test@test.com(指定要发送到谁的邮箱)

  正常接收到测试邮件后,说明程序的安装及配置是没有问题的,接下来就可以配合系统来发送监控邮件了,而我们只需要将系统关键的信息提取出来即可,举例如下:

vi sendmail.sh

 #!/bin/bash
 cpu=`vmstat 1 2 | sed -n '$p' |awk '{printf "%8s |%6s |%9s", $13,$14,$15}'`
 mem=`free | grep 'buffers/cache' | awk '{print $4}'`
 swap=`free | grep 'Swap' | awk '{print $4}'`
 echo “您CPU目前使用量为:$cpu 内存使用量为:$mem 虚拟内存使用量为:$swap”

chmod 755 sendmail.sh
./sendmail.sh | mutt -s ‘system_monitor’ myemailtest@163.com

  同样的我们也可以使用它来监控我们的系统应用,例如监控Apache的运行情况,如果80端口不能正常工作,那么重新启动Apache应用,同时发送一封Email通知相关人员。

vi appcheck.sh

 #!/bin/bash
 curl http://127.0.0.1
 if [ $? -eq 0 ];then
  echo “is ok!”
 else
  /usr/local/apache/bin/apachectl restart
  echo -e “您的Apache已于`date +%Y-%m-%d-%H:%M`执行重启,请您关注此信息!”

chmod 755 appcheck.sh

  最后我们可以将两个shell脚本加入到系统计划任务中,通过crontab计划任务可以实现公司的邮件监控需求,当然所监控的内容不止这些,另外如果你的邮件中需要包含附件,可以采用如下方式:

  echo “test” | mutt -s ‘test’ youremail@test.com -a /usr/local/filename

写在最后

  整个过程没有太多的技术含量,但是通过应用程序之间的配合既可以达到我们所要的需求,我们应该广开思路,通过MSMTP+MUTT在加上系统计划任务,我们可以让系统完成很多事情,同时我们也可以收到相应的邮件通知,例如Mysql数据库备份、网站定时备份等等。

  原创文章转载请注明,本为地址:http://www.abuve.com/737.html

转载于:https://blog.51cto.com/abuve/824839

MSMTP+MUTT轻松实现服务器资源监控相关推荐

  1. JMeter性能测试——PerfMon Metric Collector服务器资源监控插件详解

    我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过实时监控,可以准确的把握不同测试场景下服务器资源消耗情况的变化 ...

  2. 南柯服务器压力,性能测试中AIX服务器资源监控与瓶颈分析-2

    51Testing软件测试网*Me?l]9s@Fp 2.性能瓶颈定位及实例分析51Testing软件测试网)Mk0P,K;XI#PY51Testing软件测试网CXZu5Z0W4\ 2.1 性能瓶颈定 ...

  3. 服务器性能监测工具NMON下载及使用【Centos内核服务器资源监控】

    一.nmon下载使用|数据采集 1. NMON版本选择和下载 以Linux服务器为例,不同的操作系统内核需要选择对应版本的NMON安装包使用,首先查看被监控服务器内核版本.el7.x86_64:el7 ...

  4. perfmon 端口修改_Jmeter 5.3 服务器资源监控插件 PerfMon 使用介绍

    jmeter(windows 版)下载 启动 jmeter 下载 .zip 文件后解压,找到解压目录下的 bin 目录,找到 jmeter.bat 文件,双击启动即可 下载 jmeter-plugin ...

  5. Jmeter 5.3 服务器资源监控插件 PerfMon 使用介绍

    http://xieboke.net/article/345/ jmeter(windows 版)下载 列表:Index of /jmeter/binaries 启动 jmeter 下载 .zip 文 ...

  6. 服务器资源监控方案--nmon

    性能测试过程中,经常要监控服务器资源,方案有很多,可以用性能测试工具自带的也可以用linux自带的监控命令,最好的方案是使用IBM的一个监控工具:nmon,现在已经有新版本的叫:njmon njmon ...

  7. zabbix监控服务器日志文件,Zabbix对服务器资源进行监控及百度告警的整合

    Zabbix介绍 跟nagios一样是一款开源的服务器资源监控软件.达到企业级对万百上千台服务器.虚拟机.网络设备进行实时监控. 安装 安装环境:Centos 6.5,相关的下载地址在 1.yum安装 ...

  8. 性能测试loadrunner之Analysis、WIN服务资源监控、nomon工具介绍、性能测试报告

    目录: 一.windows服务资源监控 二.nomon安装教程 三.Analysis分析 四.生成报告 五.性能测试总结: 一.windows服务资源监控 如果是windows服务器和测试机不在同一台 ...

  9. 服务器虚拟化可视化软件,虚拟化资源监控软件GUI的设计与开发

    摘要: 随着信息化进程的发展,企业的应用服务器的部署规模和提供的服务在不断的扩大,在IT成本不断提高的形势下,具有成本优势的虚拟化更加令人瞩目.随着服务器虚拟化技术的不断发展与普及,服务器虚拟化技术已 ...

  10. Loadrunner监控windows服务器资源

    1.开启服务器Remote Procedure Call (RPC)和RemoteRegistry服务 2.设置服务器本地安全策略--本地策略--安全选项--网络访问:本地账户的共享和安全模型为经典 ...

最新文章

  1. python多线程端口扫描程序
  2. 熵的定义(很好的方法论工具尤其第三熵增益的计算)
  3. Science新研究颠覆认知,有望一举解决困扰器官移植60余年问题,网友:生物课本得改了...
  4. python程序员月薪多少-据说做Python程序员,都月薪上万?
  5. 初等数论--二次剩余与二次同余方程--既约剩余系中二次剩余的个数
  6. 聚类算法(part1)--DBSCAN
  7. 让我们的标签语义化成为一种习惯好处多多
  8. 3-docker 架构和底层技术简介
  9. php mb ereg,mb_ereg_replace
  10. 2018中国大学生程序设计竞赛-网络选拔赛题解
  11. Java千百问局部变量、类变量、实例变量有什么区别
  12. wp转shp_将china.wl拓扑生成的wp面转换成shp格式,然后在arcgis中打开,截图,提交截图。...
  13. manjaro linux 使用Xorg显示服务器
  14. nginx跨域配置及压缩配置
  15. 学校做计算机教室锐捷,锐捷网络云课堂:让学生爱上每一节课
  16. Ubuntu16.04 微信网页版安装
  17. C# PDF转图片(JPG,Png)
  18. 纯css改变checkbook样式
  19. java知识点ppt背景图片_Java 给PPT幻灯片添加背景颜色和背景图片
  20. 外贸常用术语_外贸业务中常用的术语

热门文章

  1. Mac很好用的音乐转换器:NoteBurner Spotify Music Converter mac
  2. 教你在macOS Big Sur 11.0 系统中在右键菜单中添加发送共享到微信或QQ的功能?
  3. Android自定义动画之实现3D翻转的动画
  4. 关于URL编码/javascript/js url 编码/url的三个js编码函数
  5. 简单好用一键恢复丢失办公文档
  6. 5个酷毙的Python工具
  7. angular4学习记录 -- 依赖注入
  8. 中国域名商域名注册保有量28强:美橙互联夺回第八
  9. the third assignment of software testing
  10. 存储虚拟化技术之解读