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