CentOS7.5中Postfix邮件服务器的搭建(三)-----(web/mysql/disk/memory)监控和邮件报警脚本

3 篇文章 0 订阅

CentOS7.5中Postfix邮件服务器的搭建(三)-----(web/mysql/disk/memory)监控和邮件报警脚本

监控apache状态、监控mysql的状态、监控内存使用以及硬盘的使用。

1、搭建搭建LAMP架构环境

[root@mail ~]# yum install -y
> httpd
> mariadb-servermariadb
> php
> php-mysql
> php-gd
> libjpeg*
> php-ldap
> php-odbc
> php-pear
> php-xml
> php-xmlrpc
> php-mhash //安装lamp架构的软件包和插件包,反斜杠表示强制换行

2、配置apache服务器

[root@mail ~]# vi/etc/httpd/conf/httpd.conf //修改httpd的配置文件
ServerName mail.test.com //找到修改主机名即客户浏览器访问的网址名
DirectoryIndex index.html index.php //找到并修改httpd服务器识别的默认网页名

[root@mail ~]# vi/etc/php.ini //修改php初始文件
date.timezone =PRC //找到并修改时区为东八区

[root@mail ~]#systemctl start httpd //启动apache服务器

[root@mail ~]#systemctl start mariadb //启动mariadb数据库

[root@mail ~]#netstat -anpt | grep 80 //查看httpd服务的80端口是否在监听,在监听则服务器启动成功

[root@mail ~]#netstat -anpt | grep 3306 //查看数据库3306端口是否在监听,在监听则启动成功

[root@mail ~]#mysql_secure_installation //对数据库进行安全配置,设置root数据库密码,其余的全部y即可

[root@mail ~]# vi/var/www/html/index.php //编辑php测试页面

<?php

phpinfo();

?>                  //调用一个函数,输出php配置信息到页面中

下面可以用与其相连的真机浏览器访问测试页,域名或ip地址访问均可,显示如下则表示httpd服务器工作没有问题。
在这里插入图片描述

3、设置邮件组

[root@mail ~]#vi /etc/aliases //编辑组别名
staff:tom,jack

[root@mail ~]#vi /etc/aliases //编辑组别名

[root@mail ~]#newaliases //生成hash数据库文件

[root@mail ~]#vi /etc/postfix/main.cf

alias_maps =hash:/etc/aliases //在配置文件中找到改行并修改邮件组用户

[root@mail config]#systemctl reload postfix //重新加载读取postfix服务器

测试向staff@test.com发信的时候jack,tom都会收到

用lucy账户登录并向staff组发信,分别登录jack,tom发现都收到了lucy的邮件,邮件组测试成功。

4、编写监控apache脚本
 #!/bin/bash
 #web.sh

date=$(date +%m/%d/%Y)
status=$(ps aux | grep httpd | grep -v grep)
#截取httpd进程,并把结果赋予变量status
if [ -n "$status" ]
#如果status的值不为空,即httpd服务存在,则执行then中的命令
then
	echo "$(date) httpd is OK!" >> /tmp/autostart-acc.log
	# 将当前的正确状态记录入正确运行日志中
else
	/etc/rc.d/init.d/httpd start &>/dev/null
#httpd服务异常时,重新启动httpd服务,并将启动信息扔入null文件夹中
	echo "$(date) restart httpd!" >> /tmp/autostart-err.log
#重启httpd服务后,将错误信息记录入错误日志文件中
	echo "http was stop and restarted it"|mail -s "Restart http at $date" staff
fi

给web.sh文件执行权限
[root@mail mnt]# chmod a+x web.sh

添加定时任务:
[root@mail mnt]# crontab -e
*/30 * * * * 每隔30分钟执行一次脚本

5、编写监控mysql脚本
#!/bin/bash

mysql -uroot -p******** -e "show databases;" >/dev/null


if [ $? -eq 0 ];then      #判断上一条命令是否执行成功

     echo "mysql is starting"|mail -s 'mysql server' $1  #$1为外部输入参数

else

     echo "mysql is stop"|mail -s 'mysql server' 

     systemctl start mariadb

fi
6、编写内存报警脚本
#!/bin/bash
#mem.sh

use=`free -m|awk '{if(NR==2){print int($3*100/$2)}}'`
fr=$(( 100 - $use ))  #计算空闲内存占比

if [ $fr -lt 90 ];then
	TEMP=$(mktemp tmp.XXXXXX)
	free -k > $TEMP
	str="mem space is $fr%"
	echo $str >> $TEMP
	cat $TEMP|mail -s 'mem space is less than 90%!!!' tom    #小于90%时发邮件报警
	rm -f $TEMP
else
	str="mem space is greater than 90%"
fi

tom接收邮件:
在这里插入图片描述

7、编写磁盘使用情况脚本
#!/bin/bash
#disk.sh

date=$(date +%m/%d/%Y)
MAIL=$(which mailx)
TEMP=$(mktemp temp.XXXXXX)

df -k > $TEMP
cat $TEMP | $MAIL -s "Disk stats for $date" $1 #$1为取外部输入参数
rm -f $TEMP

执行脚本:
[root@mail mnt]# ./disk.sh staff
我们发送邮件给staff,tom和jack都能收到邮件:

在这里插入图片描述

参考 f1228308235 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/f1228308235/article/details/80457472?utm_source=copy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值