背景
客户有一堆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上安装SCPyum 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 etccd 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、安装muttvi /etc/Muttrc
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="tim01@test.com" /选择发送邮箱
set editor="vim"
14、cron中添加命令