grub-mkconfig mkdir /boot/grub2 grub-mkconfig -o /boot/grub2/grub.cfg
上传ipk包 然后执行
opkg update; opkg install luci-lib-ipkg; opkg install *.ipk
ipk包:
需要安装sensors和hddtemp并修改两个文件:
apt-update && apt-get install lm-sensors hddtemp -y
修改文件前请备份,改完重启服务后需要清理缓存,如果白屏或者菊花,请仔细检查配置文件。
1.第一个文件: 修改一处
vi /usr/share/perl5/PVE/API2/Nodes.pm
在364行附近 可以直接搜索my $dinfo = df(‘/’, 1);
在其后添加:
$res->{CPUtemperature} = sensors;
$res->{Nvmetemperature} = sensors;
$res->{HDDtemperature} = hddtemp /dev/sda;
2.第二个文件:修改二处
vi /usr/share/pve-manager/js/pvemanagerlib.js
在34827行左右 可以直接搜索 textField: ‘pveversion’,
在其后添加:
{
itemId: 'version',
colspan: 2,
printBar: false,
title: gettext('PVE Manager Version'),
textField: 'pveversion',
value: '',
},
#add=======================================================
{
itemId: 'CPUtemperature',
colspan: 2,
printBar: false,
title: gettext('CPU Temperature'),
textField: 'CPUtemperature',
renderer: function(value){
const c0 = value.match(/Core 0.*?\+([\d\.]+)?/)[1];
const c1 = value.match(/Core 1.*?\+([\d\.]+)?/)[1];
const c2 = value.match(/Core 2.*?\+([\d\.]+)?/)[1];
const c3 = value.match(/Core 3.*?\+([\d\.]+)?/)[1];
return `Core0: ${c0}℃ | Core1: ${c1}℃ | Core2: ${c2}℃ | Core3: ${c3}℃ `
}
},
{
itemId: 'Nvmetemperature',
colspan: 2,
printBar: false,
title: gettext('Nvme Temperature'),
textField: 'Nvmetemperature',
renderer: function(value){
const nvme = value.match(/Composite.*?\+([\d\.]+)?/)[1];
return `Nvme: ${nvme}℃ `
}
},
{
itemId: 'HDDtemperature',
colspan: 2,
printBar: false,
title: gettext('HDD Temperature'),
textField: 'HDDtemperature',
renderer: function(value) {
value = value.replace(/Â/g, '');
return value.replace(/\n/g, '<br>')
}
},
#end=======================================================
{
itemId: 'repositoryStatus',
colspan: 2,
printBar: false,
title: gettext('Repository Status'),
setValue: function(value) { // for binding below
this.updateValue(value);
},
bind: {
value: '{repoStatusMessage}',
},
},
在34719行附近 可以直接搜索return fmt(gettext(‘No Proxmox VE repository enabled!’)
修改height : 400 (*需按情况修改,每多一行数据增加25)
return fmt(gettext('No Proxmox VE repository enabled!'), 'exclamation-circle critical');
}
return Proxmox.Utils.unknownText;
},
},
},
#edit=================================
height: 400,
#edit=================================
bodyPadding: '15 5 15 5',
layout: {
type: 'table',
columns: 2,
tableAttrs: {
style: {
width: '100%',
3.重启服务
systemctl restart pveproxy
4.清理浏览器缓存后可以看到效果
height:375效果:

height:400效果:

sftp开启了chroot安全登录后,无法访问不了系统的时区文件,需要在用户chroot的目录下,创建一层etc目录,并将时区文件复制进etc目录。
mkdir /xxx/etc cp /usr/share/zoneinfo/Asia/Shanghai xxx/etc/localtime
硬件:双网口主板 + m.2(用于安装proxmox和黑群引导) + sata盘(群晖系统和数据盘)
这样可以保证数据的安全,m.2如果故障,更换m.2重装proxmox环境加黑群引导,sata盘上的群晖可以直接拉起(sata可通过群晖raid来保护)。如果三者全部安装在同一块盘上,请前置整列卡或主板raid1,否则请勿存放重要数据,安全毫无保障,除非只是想装来玩玩。
开始安装:
1.先下载debian10镜像
我用的是网络安装包 软碟通写入u盘
2.uefi启动u盘,在m.2上最小化安装debian10,sata盘先不用接以免选错盘,进入系统后参考官方文档在debian10上安装proxmox 6.2 没什么问题 不再赘述
以前一直使用debian9+proxmox5.4,5.4现在已经停止支持了,这次装了6.2感觉良好,界面和5.4保持一致,用6.2没有任何不适应,以后的新机器应该都会直接上D10+PVE6.x了。
安装后确定没报错,访问https://ip:8006,可以出来页面说明安装成功,重启一次机器(重启加载proxmox内核否则无法创建虚拟机)。然后访问登陆 proxmox管理地址。
3.开始安装
准备好引导和群晖系统
我选择918引导+6.2.3系统 918引导需要cpu为Haswell(4代intel)及以上,最大支持8核心(线程)
需要其他版本的,引导和镜像的官方链接在下方:
引导:https://xpenology.com/forum/topic/13333-tutorialreference-6x-loaders-and-platforms/
黑群6.2.3镜像:https://archive.synology.com/download/DSM/release/6.2.3/25426/
准备好引导和系统后,将引导上传proxmox (如果是压缩包先解压,需要的文件是synoboot.img) 可参考下图

上传后点右上角新建虚拟机 可参考下图组


系统和硬盘默认 CPU和内存按需求填写 网络如果你有双亡口 则选择无网络设备 稍后添加直通网口给群晖 如果是单网口 则需要配置虚拟网卡和网桥 需要修改/etc/network/interfaces 信息
确认后等虚拟机创建完成后不要打开它,先为他添加直通网卡和sata设备(直通sata后所有的sata设备都会给直通群晖,所以proxmox需要安装在m.2) 可参考下图

#!/bin/sh check() { #e.g. python version 2.7(P1.P2) #e.g. openssl version 1.0.2(O1.O2.O3) P1=2 P2=7 O1=1 UP1=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $1}'` UP2=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $2}'` UO1=`openssl version|awk '{print $2}'|awk -F '.' '{print $1}'` echo $UP1.$UP2 echo $UO1 if [ $UP1 -gt $P1 ]&&[ $UO -eq $O ];then echo 'Your python version is 3+!, Openssl version is 1+' elif [ $UP1 -eq $P1 ]&&[ $UO -eq $O ];then if [ $UP2 -ge $P2 ]&&[ $UO -eq $O ];then echo 'Your python version is 2.7+!, Openssl version is 1+' elif [ $UP2 -lt $P2 ]&&[ $UO -eq $O ];then echo 'Your python version is 2.7-!, Openssl version is 1+' elif [ $UP2 -lt $P2 ]&&[ $UO -lt $O ];then echo 'Your python version is 2.7-!, Openssl version is 1-' fi else echo 'no python , Openssl version is 1-' fi } check
端口监控脚本:touch 1.sh
#!/bin/bash ADDR=10.1.25.2 TMPSTR=`ping ${ADDR} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'` port=443 check_ip=`nmap $TMPSTR -p $port|grep open|wc -l` starttime=$(date +%Y-%m-%d\ %H:%M:%S) echo $starttime if [ $check_ip -eq 0 ];then echo "${starttime} ${TMPSTR}:${port} DEAD!!!" >>error.txt fi echo "${starttime} ${TMPSTR}:${port} OK" >>success.txt
如果需要每分钟检测一次 将 */1 * * * * /bin/bash 1.sh 加入crontab即可 如果需要秒级监控 则需要第二个脚本配合使用
touch 2.sh
#!/bin/bash step=2 for (( i = 0; i < 60; i=(i+step) )); do $(/bin/bash '第一个脚本的绝对路径') sleep $step done exit 0
然后再将*/1 * * * * /bin/bash 2.sh 加入crontab即可
监控输出效果如下

安装heirloom-mailx
apt-get install heirloom-mailx
申请证书 使用gmail邮箱发件 需要在gmail账户安全设置中开启允许不安全应用
mkdir -p /root/.certs/ apt-get install libnss3-tools echo -n | openssl s_client -connect smtp.gmail.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/mail.crt certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/mail.crt certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/mail.crt certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ~/.certs -i ~/.certs/mail.crt certutil -L -d /root/.certs
在配置文件 /etc/s-nail.rc 中底部加入自己的smtp信息
set [email protected] set smtp=smtps://smtp.gmail.com:465 set [email protected] set smtp-auth-password=xxxx set smtp-auth=login set ssl-verify=ignore set nss-config-dir=/root/.certs
保存后测试发件
echo test | s-nail -s "testtitle" [email protected]
此时gmail会提示拦截未知登录,需要允许后再去修改一次密码 ,然后更新新密码到配置文件中,再次执行测试邮件,邮件就可以正常收到。
接下来 新建一个报警通知脚本 (自带的email类型是个坑 应该是只能使用内网smtp服务器 需要用s-nail和脚本来实现外网smtp)
vi /usr/lib/zabbix/alertscripts/mailx.sh
#!/bin/bash echo "$3" | s-nail -s "$2" $1
然后在zabbix中新建一个报警媒介,类型选择脚本,名称为/usr/lib/zabbix/alertscripts/「mailx.sh」

然后点击右上角用户图标-报警媒介 添加需要通知的邮箱和报警规则 更新即可

用iso安装的一台proxmox5.4 每天运行一段时间后节点离线 虚拟机运行正常 但无法监控和控制

重启pvestatd服务后约10秒 可恢复绿色状态
systemctl restart pvestatd
可加入crontab 定时重启 问题基本解决
分离服务:
复制一份sshd服务
cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service cp /etc/pam.d/sshd /etc/pam.d/sftpd cp /etc/ssh/sshd_config /etc/ssh/sftpd_config ln -sf /usr/sbin/service /usr/sbin/rcsftpd ln -sf /usr/sbin/sshd /usr/sbin/sftpd cp /etc/sysconfig/sshd /etc/sysconfig/sftp
修改sftpd.service配置文件
vm /etc/systemd/system/sftpd.service

修改sftpd_config配置文件
vm /etc/ssh/sftpd_config
116行,将PidFile /var/run/sshd.pid改成PidFile /var/run/sftpd.pid
第132行,将
Subsystem sftp /usr/libexec/openssh/sftp-server
注释,并添以下5行
Subsystem sftp internal-sftp Match User sftpuser1 ChrootDirectory /data/sftpuser1 X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp Match User sftpuser2 ChrootDirectory /data/sftpuser2 X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
ChrootDirectory可以锁定sftp用户的登录根目录,设置ChrootDirectory会遇到两个坑
1、 设置的目录 如:/data/user1 所属用户不能设置为user1:user1否则连不上 需要设置为root:user1
2、/data/user1 权限不能设置为777 否则也连不上 设置755可以连上 但用户在他的自己根下无法写入 所以在用户根下再建一个目录 /data/user1/data 这个目录可以自由设置归属和权限