背景
客户有一堆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,
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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
1
|
yum install openssl-clients
|
6、配置ESXi主机和Centos虚拟机SSH免登录,首先开启ESXi的SSH服务,secureCRT工具连接ESXi主机10.x.x.153,生成公钥和私钥
1
2
|
/usr/lib/vmware/openssh/bin/ssh-keygen -t dsa
scp /.ssh/id_dsa.pub root@
10
.x.x.
41
:/home
|
7、Centos虚拟机生成公钥和私钥
1
2
3
|
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的认证密钥中
1
|
cat /tmp/id_dsa.pub >> /.ssh/authorized_keys
|
9、SSH认证完成,在Centos上测试SCP命令将ESXi的日志复制到本地/home目录下
1
|
scp root@
10
.x.x.
153
:/
var
/log/vmkwarning.log /home/ /测试文件复制
|
10、默认crontab命令可以使用,没有命令请安装
1
|
yum install crontabs
|
11、测试cron执行,并刷新查看cronvmkwarning.log 文件是否生成
1
2
|
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,挂载进行安装
1
2
3
4
5
6
|
tar xvf msmtp-.tar.bz2
./configure --prefix=/usr/local/msmtp
make
make install
cd /usr/local/msmtp/
mkdir etc
|
1
|
cd etc
|
-----------
1
2
3
4
5
6
7
8
9
10
11
|
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
1
2
3
4
5
|
vi /etc/Muttrc
set
sendmail=
"/usr/local/msmtp/bin/msmtp"
set
use_from=yes
set
realname=
"tim01@test.com"
/选择发送邮箱
set
editor=
"vim"
|
14、cron中添加命令
1
2
|
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
分钟发送一次日志到指定邮箱
|
本文转自 tim2009 51CTO博客,原文链接:http://blog.51cto.com/virtualbox/1409182,如需转载请自行联系原作者