PacificRack 的Centos模板问题

今天趁着有时间,把闲置的一台512M的PacificRack年付小鸡改成TCP中转服务,连接到我的backend 小鸡webnx上

在控制面板上选择reinstall为centos7以后,发现经过很长一段时间以后,小鸡也无法ping通,也无法连接.

通过VNC登录以后,发现系统早就安装完毕,但是通过ip add命令发现ens3网卡没有公网IP. 

等等,为什么是ens3网卡而不是eth0网卡?cd到/etc/sysconfig/network-scripts中,发现配置的网卡名字就是eth0, 但是系统确使用的是ens3找个名字,看来问题在这里.

看了一下SolusVM 控制面板里面的network card,发现network  card被改成了intel pro, 如下图所示

 

Intel Pro常用于windows vm当中,linux 系统中应该用virtio才对

于是把network card改回virtio,并且重新安装了centos 7,然后发现centos 7 也能够正确的配置网卡了,SSH也能正常连接了

阿里云ECS的坑 – 系统硬件时间

用了这么久 的阿里云ecs,也是今天无意间才发现的,更准确的说应该是centos 7的坑,在centos 6上那样直接修改时区的办法不行了

1)拿到了阿里云的ecs,第一件事就是应该修改系统的hwclock,这是因为阿里云的ecs默认使用的是hwclock 是cst,也就是中国时区。这个可以是可以,但是国际上通用的办法是使用UTC时间,这更能避免很多问题:

timedatectl set-local-rtc 0

2) 第二个坑就是因为有了第一个问题以后,在centos 6上我经常使用下面的办法修改时区(个人习惯,所有的服务器都是UTC或者EST时区):

cp /usr/share/zoneinfo/America/New_York /etc/localtime

在centos 7上我也继续这么使用,在国外的服务器上没有一点问题,但是在阿里云ecs上就会出现下面的情况:

[[email protected] ~]# timedatectl
Local time: Wed 2020-01-29 07:57:08 EST
Universal time: Wed 2020-01-29 12:57:08 UTC
RTC time: Wed 2020-01-29 20:57:07
Time zone: Asia/Shanghai (EST, -0500)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: yes
DST active: no
Last DST change: DST ended at
Sun 2019-11-03 01:59:59 EDT
Sun 2019-11-03 01:00:00 EST
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2020-03-08 01:59:59 EST
Sun 2020-03-08 03:00:00 EDT

Warning: The system is configured to read the RTC time in the local time zone.
This mode can not be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.
If at all possible, use RTC in UTC by calling
'timedatectl set-local-rtc 0'.

重点是timezone 那一行, Asia/Shanghai 变成了EST了,明显不对, 我们需要用下面的命令修改一下:

timedatectl set-timezone "America/New_York"

重启以后,系统的各种时间才会恢复正常.

为什么要这么做?因为如果你不这么做,系统的时间和mysql 的时间会发生冲突,当你需要重启mysql服务的时候,就会出现:

InnoDB: Waiting for page_cleaner to finish flushing of buffer pool

让你需要最起码5分钟以上才能完全重启mysql服务或者重启服务器。。。

下午遇到了问题,一台新装的ecs服务器需要最少5分钟才能重启。。。刚开始以为是smokeping 重启过慢,仔细debug了开机启动,发现是关机速度太慢。。。然后看log 发现是mysql shutdown 时间太长,InnoDB需要清空buffer。。。再继续debug才发现这是系统时间的问题。。。

浪费了整整一下午。。。

Centos 7 Postfix使用第三方的smtp

参见前一篇文章,阿里云的ecs全部关闭了25端口,因此我们只能使用postfix来通过第三方的smtp服务发送一些系统邮件,比如说报警邮件.

这些第三方服务商一般提供25,587端口的smtp的服务,这里我们选择使用587端口

假设你的服务器的hostname是beta.iamhippo.com, 在/etc/aliases 中设定

root    [email protected]

表示所有发向root的邮件都转发到[email protected], 下面是详细的步骤:

1) 安装必须的library

centos/redhat/fedora:

yum install cyrus-sasl-plain

debian/ubuntu:

apt-get install libsasl2-modules

如果你不安装cyrus或者libsasl库,你会得到“no mechanism found error”

2) 设置smtp的用户名,密码

postfix的smtp的用户名和密码位于/etc/postfix/sasl_password

vi /etc/postfix/sasl_password

按照下面的格式添加验证信息:

[mail.isp.example]:587 username:password

我们需要hash一些这个文件来给postfix使用

postmap /etc/postfix/sasl_passwd

一切都正常的情况下,你会在这个目录/etc/postfix目录下看到sasl_passwd.db文件

必要的安全设置:

chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

3) 设置generic map

如果我们是通过配置csf,让系统自动发送报警邮件,那么一般是来自于[email protected], 我们想在邮件中替换这个邮件的话,可以使用generic的功能,比如说我们想把[email protected] 改成[email protected], 那么可以这么写:

[email protected] [email protected]

然后和sasl_password 一样,我们需要hash 一下

postmap /etc/postfix/generic
chown root:root /etc/postfix/generic /etc/postfix/generic.db
chmod 0600 /etc/postfix/generic /etc/postfix/generic.db

4) 配置reply server

这个配置起来就比较简单了,直接打开/etc/postfix/main.cf文件,在最末尾添加:

# specify SMTP relay host
relayhost = [mail.isp.example]:587


# enable SASL authentication
smtp_sasl_auth_enable = yes
# disallow methods that allow anonymous authentication.
smtp_sasl_security_options = noanonymous
# where to find sasl_passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
# Enable STARTTLS encryption
smtp_use_tls = yes
# where to find CA certificates
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
# where to find generic
smtp_generic_maps = hash:/etc/postfix/generic

保存配置,然后重启postfix

systemctl restart postfix

当然了,建议在重启之前先把postfix 中的queue mails 都删掉。。要不然积累了大量的邮件会一次性发出的

postsuper -d ALL

或者

postfix -f

或者

postfix flush

查看mail queue:

mailq

 

阿里云邮件推送的坑

国内的服务器一直在使用阿里云的,没有办法目前的情况下阿里云确实是国内的No.1

阿里云的ecs默认是关掉25端口的,就算是你申请解封25端口成功了,你也无法用25端口发信,他只允许你用25端口连接到其他的smtp服务器来发信.

使用阿里云的服务,自然而然的想到阿里云的邮件推送服务,而且他还赠送一部分免费的额度,对于我们这种只需要发送触发邮件的人来说,这是非常合适的.

但是这里的一个坑就是smtp协议下只支持25,80,465端口,而465端口一般用来支持STARTTLS, 这个协议比较老,国际标准化组织已经不再推荐,很多的程序例如iredmail默认已经不支持这个端口了。如果你使用的是debian,ubuntu的话,那么这是没有任何问题的,因为自带的postfix 的版本相对来说要新很多, 是3.0 的版本,支持465端口. 如果你使用的是centos7 并且使用的是自带的postfix的话,那么恭喜你,你获奖了。。。

centos7自带的postfix的版本相对来说要低很多,是2.10的版本。。。

而且postfix 的2.10的版本,对于465端口,也就是smtps并不是很支持,你需要使用的stunnel的转发smtps的请求. 详细请看这里:

http://www.postfix.org/TLS_README.html#client_smtps

网上铺天盖地的教程都是apt-get, 我想他们可以也没有想到在centos7 里面会出现问题,不值得花时间去演就演stunnel,那么多的提供标准服务的smtp服务商,舍弃阿里云推送就好了.

如果你的网站位于国外,那么你可以使用sendgrid或者mailgun,都是非常的方便

Centos 7 安装并配置monit

Monit 是一个开源的linux 程序,用来监控程序,并且在必要的时候重启.

在centos上安装的非常的简单.

首先需要安装epel repo:

yum install epel-release

然后就可以安装monit了

yum install monit

将monit加入开机自启动并且start monit进程:

systemctl enable monit
systemctl start monit

查看monit 状态:

systemctl status monit

更多

WebNX Utah机房E3-1275V5 1TB SSD服务器benchmark

在webhostingtalk上看到webnx 有一款机器在on sale,配置相当不错,而我又是webnx 的超级粉,立马拿下替换了原来旧的机器,新机器的配置如下:

Intel Xeon E3-1275v5 quadcore 3.6ghz
64gb ddr4 ECC ram
1TB Enterprise SSD
/29 5x usable ip's
30Tb over 1gbps
$65 ** limited time until we burn up the stock on hand!

实话实说,这个机器还是非常有新引力的,再加上webnx 100%的SLA 和 super connected network, 真的是非常爽的价格.

我准备用它来做ESXi 新的vCSA 主控. 

在deploy ESXi之前,先来测试一下这台机器的硬件和network. 

更多

Supermicro 服务器IPMI 安装CentOS问题

现在大部分的美国服务商都是使用的supermicro 的服务器,supermicro 一般都自带IPMI.

但是在使用Intel 的E3 CPU 的时候,确会出现这样那样的问题。

总体来说,对于E3 的CPU,supermicro 有两个系列, X10 和 X11,分别专门应该E3-V3,v4 和E3-V5,V6的CPU,问题也由此而来

  1. 安装centos 7 的时候,预加载完成以后就直接黑屏,这是因为IPMI 自带的Aspeed 显卡驱动的问题,在选择安装centos 7 的时候,press tab, 在kernel 的启动选项里面append nomodeset 就可以了
  2. 除了黑屏问题,还有显示soft lock up 等等,这个也是显卡的问题,需要在kernel 的启动选项里面append nomodeset
  3. https://serverfault.com/questions/889868/centos-installer-hangs-through-ipmi, 如果出现这个页面中的问题,或者hangs on start login service,又或者hangs on XXXXX zRAM什么的,那么真的无解,只能安装centos 7 比较老的版本,比如说1511
  4. 有些以5结尾的E3 的cpu,比如说E3-1245V3,E3-1275V5等等 自带显卡,那么也会和ipmi 的显卡aspeed 2400/2500 冲突,也需要在kernel 的启动选项里面选择append nomodeset

 

国外网站关于此问题的讨论:

https://unix.stackexchange.com/questions/353896/linux-install-goes-to-blank-screen

supermicro 官方给的解决方案:

https://www.supermicro.org.cn/support/faqs/faq.cfm?faq=30162

Fedora 也遇到了这样的问题:

https://mangolassi.it/topic/18685/fedora-29-server-or-28-install-is-stuck