手搓简易前端监控的JS代码

需求

有个前端推广落地页的单页面需要监控用户的访问速度、加载速度、DNS解析速度以及用户点击等各种状况。一方面给前端提供改进的参考依据,另一方面可以监控用户行为路径。找了各种代码和平台,要么收费,要么太过臃肿提供大量不需要的分析而且自定义跟踪用户路径也特别复杂。决定简单手搓一个满足自己业务需要的前端JS再把资料回传后端以备分析。

Podman部署Dify

AlmaLinux9.6 (Sage Margay)默认yum包用的是podman和podman compose,而Dify官方通的是docker-compose的部署方案,本以为很简单,结果碰到几个小问题记录下:

Linux日志压缩工具对比

在Linux环境下进行日志压缩时,工具的选择需要平衡压缩速度、压缩比和系统资源占用。以下是基于性能、压缩效率及资源消耗的对比与推荐方案:


一、核心工具对比

gzip

• 压缩速度:最快,适合需要快速压缩的场景(如频繁生成的小日志文件)。 • 压缩比:较低(通常为2:1~3:1),但文本日志的重复内容仍能有效压缩。

AlmaLinux 9服务器初始化命令集

AlmaLinux 9设计的服务器初始化命令集,整合了安全加固、网络配置、系统优化等关键步骤,所有命令均经过生产环境验证:

yum update -y && yum install epel-release -y && yum install rpmfusion-free-release -y


一、系统安全加固

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 禁用SELinux(生产环境建议改为permissive模式)
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sudo setenforce 0

# 创建管理用户并禁用root远程登录
NEW_USER="sysadmin"
sudo useradd -m -s /bin/bash $NEW_USER
echo "临时密码:$NEW_USER:ChangeMe123!" | sudo chpasswd
sudo usermod -aG wheel $NEW_USER
sudo sed -i 's/^# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/' /etc/sudoers
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

# SSH安全配置(修改默认端口为22222)
SSH_PORT=22222
sudo sed -i "s/#Port 22/Port $SSH_PORT/" /etc/ssh/sshd_config
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd

# 防火墙规则配置
sudo firewall-cmd --permanent --add-port=$SSH_PORT/tcp
sudo firewall-cmd --permanent --remove-service=dhcpv6-client
sudo firewall-cmd --reload

二、网络配置优化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 配置静态IP(示例:192.168.1.100/24)
CONN_NAME="ens160"  # 需根据实际网卡名称修改
sudo nmcli con mod "$CONN_NAME" ipv4.addresses 192.168.1.100/24
sudo nmcli con mod "$CONN_NAME" ipv4.gateway 192.168.1.1
sudo nmcli con mod "$CONN_NAME" ipv4.dns "8.8.8.8 114.114.114.114"
sudo nmcli con mod "$CONN_NAME" ipv4.method manual
sudo nmcli con down "$CONN_NAME" && sudo nmcli con up "$CONN_NAME"

# 禁用IPv6
sudo grubby --update-kernel ALL --args ipv6.disable=1
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

# 内核网络参数调优
sudo tee -a /etc/sysctl.conf <<EOF
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn = 65535
vm.swappiness = 10
EOF
sudo sysctl -p

三、软件环境配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 更换阿里云镜像源
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
         -e 's|^#baseurl=http://repo.almalinux.org|baseurl=https://mirrors.aliyun.com/almalinux|g' \
         -i.bak /etc/yum.repos.d/almalinux*.repo

# 安装基础工具包
sudo dnf install -y epel-release
sudo dnf install -y vim-enhanced net-tools lsof htop tmux chrony git jq ncdu tree unzip

# 时间同步配置
sudo timedatectl set-timezone Asia/Shanghai
sudo sed -i 's/^pool 2.*/pool ntp.aliyun.com iburst/' /etc/chrony.conf
sudo systemctl restart chronyd

四、系统性能优化

1
2
3
4
5
6
7
8
9
# 文件描述符限制
echo "* soft nofile 65535" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65535" | sudo tee -a /etc/security/limits.conf

# 禁用不必要服务
sudo systemctl disable --now postfix bluetooth cups

# 日志轮转配置
sudo sed -i 's/rotate 4/rotate 12/' /etc/logrotate.conf

五、安全审计配置

1
2
3
4
5
6
7
# 安装审计工具
sudo dnf install -y aide
sudo aide --init && sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

# 配置审计规则
echo "-w /etc/passwd -p wa -k identity" | sudo tee -a /etc/audit/rules.d/audit.rules
sudo systemctl restart auditd

六、执行收尾工作

1
2
3
4
5
6
7
8
9
# 清理缓存并更新系统
sudo dnf update -y --exclude=kernel*
sudo dnf clean all

echo "=============== 初始化完成 ==============="
echo "后续操作建议:"
echo "1. 立即修改sysadmin密码:sudo passwd sysadmin"
echo "2. 检查SSH端口连通性:nc -zv 服务器IP $SSH_PORT"
echo "3. 部署SSH密钥认证(参考:ssh-keygen -t ed25519)"

关键特性说明

小内存服务器编译解决方案

问题

拉了个golang项目要部署在一台1core512m12g的扶贫主机上编译,go build的时候报:collect2: fatal error: ld terminated with signal 9 [Killed]正常是系统内存或Swap不足导致ld被系统强制终止。