背景
客户有一堆ESXi服务器,在暂时没有预算的情况下,需要运维人员方便实时的掌握ESXi服务器的运行状态,确保ESXi服务器的稳定运行。
设计
收集ESXi服务器本地的日志(vmkwarning.log)定时自动发送到运维人员邮箱。
环境
ESXi服务器 — 监控对象,日志产生源
邮件服务器 - 局域网作为邮件发送使用,因特网使用163邮箱即可
收集服务器 - 搜集ESXi的日志,并完成定时发送
拓扑
配置步骤
1、创建一台win2003虚拟机,命名为hmail,分配IP10.x.x.42,安装hmail客户端,完成配置,并建立发送告警邮件账户tim01@test.com,建立接收告警账户test02@test.com。
2、测试Hmail可用
3、创建一台Centos虚拟机,命名centos,分配IP 10.x.x.41。
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
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分钟发送一次日志到指定邮箱