跳至主要內容
知识库

知识库

记录,成为更好的自己

常用工具
[[toc]] 日常工具 代码转图片 ; 正则表达式可视化工具 ; 在线调色板 ; web开发文档 ; 免版权插图 ; 娱乐社区 社区 Github (https://github.com/zhanghaijun666) : 全球最大开源社区。; CSDN (https://blog.csdn.net/) :老牌中文技术博客社区。; 掘金 (https...

编程技巧WindowsWindows大约 7 分钟
Prometheus+Grafana可视化监控

主机准备

## 时间同步
imedatectl set-timezone Asia/Shanghai
yum -y install ntpdate
/usr/sbin/ntpdate -u ntp1.aliyun.com

echo "0 5 * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null &" >> /var/spool/cron/root
crontab -l

运维技巧服务管理服务管理大约 2 分钟
网络配置

桥接网络

## 创建桥接连接
nmcli connection add type bridge ifname br0 con-name br0
 
## 添加网络接口到桥接连接
nmcli connection add type bridge-slave ifname enp1s0 master br0
nmcli connection add type bridge-slave ifname enp2s0 master br0
nmcli connection add type bridge-slave ifname enp3s0 master br0
nmcli connection add type bridge-slave ifname enp4s0 master br0
nmcli connection add type bridge-slave ifname enp5s0 master br0
nmcli connection add type bridge-slave ifname enp6s0 master br0
nmcli connection add type bridge-slave ifname enp7s0 master br0
nmcli connection add type bridge-slave ifname enp8s0 master br0
 
 
## 配置桥接连接的IPv4地址
# nmcli connection modify br0 ipv4.method manual ipv4.address 192.168.60.100/24
# nmcli connection modify br0 ipv4.addresses "192.168.100.26/24"
# nmcli connection modify br0 ipv4.gateway 192.168.100.2
# nmcli connection modify br0 ipv4.dns 8.8.8.8
 
## 设置IP地址:192.168.13.166
nmcli connection modify br0 ipv4.method manual ipv4.address 192.168.13.166/24 ipv4.gateway 192.168.13.1
## 添加IP地址:192.168.3.166
nmcli con mod br0 +ipv4.addresses "192.168.3.166/24"
 
# 重新加载连接
nmcli connection reload
 
# 启用桥接连接
nmcli connection up br0
systemctl restart network
 
## 删除桥接
nmcli connection delete br0
``

```bash
## 安装bridge-utils
apt-get install bridge-utils
yum instakk -y bridge-utils
 
## 创建桥接设备: 使用brctl命令创建一个桥接设备。假设你要创建一个名为br0的桥接设备,可以使用以下命令:
brctl addbr br0
 
## 将网络接口添加到桥接设备: 将要桥接的网络接口(网卡)添加到新创建的桥接设备中。例如,假设你有两个网卡eth0和eth1,可以使用以下命令:
brctl addif br0 eth0
brctl addif br0 eth1
 
## 激活桥接设备: 使用以下命令激活桥接设备:
ifconfig br0 up
 
## 配置IP地址: 为桥接设备分配一个IP地址。例如:
ifconfig br0 192.168.16.100 netmask 255.255.255.0
 
## 禁用原始网络接口: 如果你希望通过桥接设备来处理网络流量,可以禁用原始网络接口。例如:
ifconfig eth0 down
ifconfig eth1 down
## 或者使用ip link set命令:
ip link set dev eth0 down
ip link set dev eth1 down

编程技巧CentOSCentOS大约 5 分钟
插入式注解

需求

背景

公司提供了一套通用的JAVA基础组件包,希望可以通过promethus来监控现在公司内使用各版本代码库的比例,以及各版本代码库的使用情况。
这有利于我们做版本兼容,必要的时候可以对古早版本使用者溯源。

问题

需求似乎很简单,但真要获取自身的jar版本号还是挺麻烦的,有个比较简单但阴间的办法,就是给每一个组件都加上当前的jar版本号,写到配置文件里或者直接设置成常量,这样上报promethus时就可以直接获取到jar包版本号了,这个方法虽然可以解决问题,但每次迭代版本都要跟着改一遍所有组件包的版本号数据,过于麻烦。

有没有更好的解决办法呢?比如我们可不可以在gradle打包构建时拿到jar包的版本号,然后注入到每个组件中去呢?就像lombok那样,不需要写get、set方法,只需要加个注解标记就可以自动注入get、set方法。


编程技巧JavaJava大约 3 分钟
防范暴力破解攻击

Fail2Ban

Fail2Ban(Fail to Ban)是一种用于防范暴力破解攻击的开源软件。它的主要目标是通过监视系统日志文件,检测恶意行为(如多次登录失败、恶意IP地址等),并采取自动化的措施来阻止攻击者进一步访问系统。

以下是Fail2Ban的一些关键特性和工作原理:

  • 监视日志文件: Fail2Ban通过分析系统的日志文件,特别是包含安全相关信息的文件,来检测潜在的入侵尝试。
  • 定义规则: 用户可以定义自定义规则,告诉Fail2Ban在日志中搜索什么样的模式,并根据这些模式采取相应的行动。
  • 动态封禁: 一旦Fail2Ban检测到恶意行为,它将采取措施来阻止攻击者的进一步访问。这通常涉及到在防火墙规则中添加临时的封锁规则。
  • 可定制性: 用户可以根据自己的需求配置Fail2Ban,包括设置封锁的时间、阈值等参数。
  • 支持多种服务: Fail2Ban不仅限于防范SSH攻击,还支持监视和防范多种服务的暴力破解攻击,如FTP、HTTP、SMTP等。

运维技巧运维工具运维工具大约 2 分钟
集群管理-Pacemaker

Pacemaker介绍

Pacemaker 是一个开源的高可用性软件,用于在集群环境中管理和监控服务的可用性。旨在提供一套框架和工具,使用户能够在分布式系统中构建高可用性的服务。

主要用于构建高可用性的集群服务,确保在节点或服务出现故障时能够保持系统的稳定性和可用性。它被广泛应用于企业环境中的关键业务应用和服务,如数据库、Web 服务器、应用服务器等。

主要特点和功能

  1. 集群管理: Pacemaker 允许将多个节点组成一个集群,这些节点可以共同工作以提供服务的高可用性。集群中的节点通过网络通信协同工作。

  2. 资源管理: Pacemaker 可以管理和监控集群中的各种资源,如 IP 地址、虚拟 IP 地址、文件系统、数据库等。它能够启动、停止和迁移这些资源,以确保它们在整个集群中保持可用状态。

  3. 故障检测和自动恢复: Pacemaker 提供了故障检测机制,能够检测节点和资源的故障。一旦发现故障,它可以自动采取措施来恢复服务,例如迁移资源到其他健康的节点。

  4. 灵活的资源策略: Pacemaker 允许用户定义资源的启动顺序、亲和性规则和放置约束,以确保服务在特定节点上以期望的方式运行。

  5. 强大的插件架构: Pacemaker 的插件架构允许用户集成不同类型的资源代理,以支持各种服务和应用程序。它支持多种资源代理,如 OCF(Open Cluster Framework)资源代理、Systemd 服务资源代理等。

  6. Web 界面和命令行工具: Pacemaker 提供了直观的 Web 界面(Pacemaker GUI)和强大的命令行工具,用于配置、监控和管理集群。

  7. 可扩展性和兼容性: Pacemaker 是一个可扩展和高度模块化的系统,可以适应不同规模和类型的集群。它与各种存储系统、网络配置和硬件兼容,并支持多种操作系统。


技术积累集群搭建集群搭建大约 4 分钟
文档的操作

Stirling-PDF

一款功能强大、开箱即用的 PDF 工具,支持拆分/合并文件、添加/提取图片、压缩、加水印、添加/删除密码等功能,满足对 PDF 文件的所有需求。

version: '3.3'
services:
  stirling-pdf:
    image: frooodle/s-pdf:latest
    ports:
      - '8080:8080'
    volumes:
      - ./data/trainingData:/usr/share/tesseract-ocr/4.00/tessdata
      - ./data/extraConfigs:/configs
#      - ./data/customFiles:/customFiles/
    environment:
      - DOCKER_ENABLE_SECURITY=false
``

天信瑞安云盘服务云盘服务小于 1 分钟
组件的命名

按照设计师和前端工程师的共同认知进行命名和归类

基础(Basic) 布局(Layout) 导航(Navigations) 数据类(Data) 沟通类(Notice) 输入类(Input) 其他 Others
色彩 Color 布局 Layout 选项卡 Tabs 图表 Diagram 全局提醒 Message 输入框 Input 模态抽屉 Drawer
字体 Fonts 栅格 Grid 步骤条 Steps 列表 List 文字提示 Tootip 日期选择器 DatePicker 锚点 Anchor
图标 Icon 卡片 Card 面包屑 Breadcrumb 表格 Table 加载中 Loading 时间选择器 TimePicker 标签 Tag
动效 Motion 走马灯 Carousel 分页 Pagination 表单 Form 警告提示 Alert 单选框 Radio
按钮 Button 分割线 Divider 导航菜单 Menu 树 Tree 徽标数 Badge 多选框 Checkbox
用户引导 Onboarding 搜索框 Search
气泡确认 Popconfirm 穿梭框 Transfer
对话框 Dialog 下拉菜单 Dropdown
消息通知 Notification 树选择 TreeSelect
上传 Upload
开关 Switch
选择器 Select

项目管理代码规范代码规范小于 1 分钟
CSS命名规范

CSS 的命名,采用 BEM 命名规范,可以有效的避免组件间样式的相互污染,减少嵌套层级。具体规则如下:

BEM 是什么?

BEM 使用分隔符将类名区隔成三个部分:

[prefix]-[block]__[element]--[modifier]

  • prefix:全局的前缀,这里指代表 tdesign 的前缀,也就是 t-
  • Block(块) :组件的最外层父元素,这个类包含最通用和可重用的功能。
  • Element(元素) :组件内可包含一个或多个元素,元素为块添加了新功能。无需重置任何属性。
  • Modifier(修饰类) :块或元素都可以通过修饰词来表示为变体。

编程技巧CSSSCSSS大约 5 分钟
2
3
4
5
...
26