背景

客户有一堆ESXi服务器,在暂时没有预算的情况下,需要运维人员方便实时的掌握ESXi服务器的运行状态,确保ESXi服务器的稳定运行。

设计

收集ESXi服务器本地的日志(vmkwarning.log)定时自动发送到运维人员邮箱。

环境

ESXi服务器 — 监控对象,日志产生源

邮件服务器 - 局域网作为邮件发送使用,因特网使用163邮箱即可

收集服务器 - 搜集ESXi的日志,并完成定时发送 

拓扑

【VMware虚拟化解决方案】邮箱定时自动接收ESXi警报_ESXi




配置步骤

1、创建一台win2003虚拟机,命名为hmail,分配IP10.x.x.42,安装hmail客户端,完成配置,并建立发送告警邮件账户tim01@test.com,建立接收告警账户test02@test.com

【VMware虚拟化解决方案】邮箱定时自动接收ESXi警报_ESXi_02

2、测试Hmail可用

【VMware虚拟化解决方案】邮箱定时自动接收ESXi警报_ESXi_03

3、创建一台Centos虚拟机,命名centos,分配IP 10.x.x.41。

【VMware虚拟化解决方案】邮箱定时自动接收ESXi警报_有奖征文_04

4、在Centos上配置本地YUM,

mkdir /media/centos                            /新建挂载文件夹
mount –t  iso9660 /dev/cdrom /media/centos    /挂载Centos镜像
cd /media/centos
ls
cd /etc/yum.repos.d                            /进入yum目录
vi CentOS-Media.repo
[c5-media]
name=CentOS-$releasever - Media
baseurl=file:///media/centos/                 /选择镜像挂载目录
gpgcheck=1
enabled=1                                     /开启yum
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
yum clean all                                /清除yum缓存

5、Cenos上安装SCP

yum install openssl-clients

【VMware虚拟化解决方案】邮箱定时自动接收ESXi警报_有奖征文_05

6、配置ESXi主机和Centos虚拟机SSH免登录,首先开启ESXi的SSH服务,secureCRT工具连接ESXi主机10.x.x.153,生成公钥和私钥

/usr/lib/vmware/openssh/bin/ssh-keygen -t dsa
scp /.ssh/id_dsa.pub root@10.x.x.41:/home

7、Centos虚拟机生成公钥和私钥

ssh-keygen -t dsa
scp id_dsa.pub root@10.x.x.153:/tmp
cat /home/id_dsa.pub >> ~/.ssh/authorized_keys

8、回到ESXi 的SSH命令行,同样将cenos的公钥加入到esxi的认证密钥中

cat /tmp/id_dsa.pub >> /.ssh/authorized_keys

9、SSH认证完成,在Centos上测试SCP命令将ESXi的日志复制到本地/home目录下

scp root@10.x.x.153:/var/log/vmkwarning.log  /home/   /测试文件复制

10、默认crontab命令可以使用,没有命令请安装

yum install  crontabs

11、测试cron执行,并刷新查看cronvmkwarning.log  文件是否生成

crontab -u root -e
0 8  * * * scp root@10.x.x.153:/var/log/vmkwarning.log  /home/ >> /home/cronvmkwarning.log   /测试每天早上8点执行 从ESXi复制log到/home目录

12、下载msmtp,挂载进行安装

tar xvf msmtp-.tar.bz2
./configure --prefix=/usr/local/msmtp
make
make install
cd /usr/local/msmtp/
mkdir etc
cd etc

-----------   

vi msmtprc
account default
host 10.x.x.42                              /邮箱服务器Hail地址
port 25
from tim01@test.com                         /发件邮箱地址
auth login
tls off
user tim01@test.com
password 123456
logfile /var/log/mmlog
/usr/local/msmtp/bin/msmtp tim02@test.com      /测试接收功能

13、安装mutt   

vi /etc/Muttrc
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="tim01@test.com"  /选择发送邮箱
set editor="vim"


14、cron中添加命令

crontab -u root -e
*/10* * * * cd /home/ &&tail -n 50 vmkwarning.log >> vm1.log && cat /home/vm1.log | mutt -s "ESXi邮件告警日志"tim02@test.com   /每10分钟发送一次日志到指定邮箱

【VMware虚拟化解决方案】邮箱定时自动接收ESXi警报_VMware虚拟化_06