Levelezés beállítása
A FreeBSD alapértelmezetten a Dragonfly Mail Agentet használja (DMA). Itt egyszerűen be lehet konfigurálni a gmail SMTP szerverét (vagy bármelyik SMTP szervert) smarthost-ként. Ehhez a következő konfigurációs fájlokba kell felvenni a beállításokat:
/etc/dma/dma.conf:
SMARTHOST smtp.gmail.com
PORT 587
AUTHPATH /etc/dma/auth.conf
SECURETRANSFER
STARTTLS
MASQUERADE xyz@gmail.com
/etc/dma/auth.conf:
xyz@gmail.com|smtp.gmail.com:aaaabbbbccccdddd
Ahol az aaaabbbbccccdddd az alkalmazás jelszó, amit a gmail fiókodban hoztál létre:
- Kétfaktoros authentikáció bekapcsolása: https://myaccount.google.com/security/signinoptions/two-step-verificati…
- Alkalmazás jelszó létrehozása: https://security.google.com/settings/security/apppasswords
Alias felvétele a root usernek:
/etc/aliases:
root: xyz@gmail.com
Tesztelés:
echo teszt | mail -v -s teszt root
Kapcsolódó FreeBSD kézikönyv leírás: https://docs.freebsd.org/en/books/handbook/mail/
SmartmonTools beállítása
Telepítés, és a szolgáltatás bekapcsolása:
pkg install smartmontools
sysrc smartd_enable="YES"
Smart infók lekérdezése manuális módon:
smartctl -a /dev/ada0
Konfigurálás:
1. Az /usr/local/etc-be települt egy példa konfigfiguráció (smartd.conf.sample), részletes magyarázattal, amiből ki lehet indulni. Ezen kívül a smartd.conf man oldalát érdemes még olvasni: https://man.freebsd.org/cgi/man.cgi?smartd.conf%285%29
cd /usr/local/etc
cp smartd.conf.sample smartd.conf
2. A smard.conf-ban egy DEVICESCAN-t tartalmazó sor van csak, ami nincs kikommentezve. Ehhez a sorhoz a megjegyzés:
# The word DEVICESCAN will cause any remaining lines in this configuration file to be ignored
Tehát akkor a DEVICESCAN sort ki kell kommentezni, mert mi saját beállításokat adunk meg.
3. Ebből a példa beállításból ki is indulhatunk (a példa alapján naponta 2 órakor fut egy short teszt, és szombaton 3 órakor long teszt):
# First ATA/SATA or SCSI/SAS disk. Monitor all attributes, enable
# automatic online data collection, automatic Attribute autosave, and
# start a short self-test every day between 2-3am, and a long self test
# Saturdays between 3-4am.
#/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03)
Ez alapján minden nap 1 órakor legyen short teszt, és minden hónapban 1-én és 15-én 2 órakor egy long (és küldjön emailt a root felhasználónak)
/dev/ada0 -a -o on -S on -s (S/../.././01|L/../(1|15)/./02) -m root
/dev/ada1 -a -o on -S on -s (S/../.././01|L/../(1|15)/./02) -m root
/dev/ada2 -a -o on -S on -s (S/../.././01|L/../(1|15)/./02) -m root
/dev/nvme0 -a -o on -S on -s (S/../.././01|L/../(1|15)/./02) -m root
Az email küldés kipróbálásához meg lehet adni minden beállításhoz a "-M test" paramétert is, ekkor a smartd szolgáltatás indítása után (service smartd start) a következő teszt email érkezik, minden HDD-hez:
/dev/ada0 -a -o on -S on -s (S/../.././01|L/../(1|15)/./02) -m root -M test
stb...
Az egyik teszt levél tartalma, ami érkezik a root-nak beállított gmail címre smartd indítása után:
Subject: SMART error (EmailTest) detected on host: nas
This message was generated by the smartd daemon running on:
host name: nas
DNS domain: [Empty]
The following warning/error was logged by the smartd daemon:
TEST EMAIL from smartd for device: /dev/ada1
Device info:
WDC WD30EFRX-68N32N0, S/N:WD-WCC7K5LP3Y6Z, WWN:5-0014ee-264d0913d, FW:82.00A82, 3.00 TB
For details see host's SYSLOG.
A "-M test" paramétert törölni kell, és újraindítani a smartd-t.
ZFS snapshot-ok:
FreeBSD alatt több snapshot management tool közül válaszhatunk, én egy olyat választottam, amit úgy látok a github alapján, hogy aktív fejlesztés alatt van, nem most kezdték el, jó dokumentációja van, és nagyobb tudású, pl zfs replikálást is tudok vele csinálni: https://zrepl.github.io/
Egy előadás róla: https://papers.freebsd.org/2018/bsdcan/schwarz-zrepl_zfs_replication/
Telepítés:
pkg install zrepl
Telepítés után a pkg ki is írja az instrukciókat:
SETUP BEFORE FIRST USE:
- Create the log file /var/log/zrepl.log:
# service newsyslog restart
- Teach syslogd to redirect facility local0 to the zrepl.log file:
# service syslogd reload
- Modify the /usr/local/etc/zrepl/zrepl.yml configuration file
- For remote backups, create the SSH key pair and authorized_keys file
- Enable the zrepl daemon to start automatically at boot:
# sysrc zrepl_enable="YES"
- Start the zrepl daemon:
# service zrepl start
A zrepl konfigurálását egy kicsit nehezebb volt megérteni, mert sok mindent lehet a toollal csinálni. Most csak a snapshot készítés a feladat.
A konfigurációt a /usr/local/etc/zrepl/zrepl.yml fájlba kell beírni. A jobs alá több job-ot meg lehet adni, ezeknek a típusát érdemes a doksiban elolvasni. A snapshot készítéshez a "snap" típust kell megadni.
A következő konfiguráció 15 percenként csinál egy snapshot-ot, és a "pruning" rész alatt van megadva, hogy hogyan tartsa meg a snapshotokat:
- 1 óráig mindent megőriz,
- 1 órásból 24-et,
- 1 naposból 35-öt
- 30 naposból 12-t.
A példa a tank0/data és az összes alatta lévő dataset-ből csinál snapshot-ot.
Azokat a snapshot-okat nem törli, amik nem zrepl_ prefixxel kezdődnek.
# zrepl main configuration file.
# For documentation, refer to https://zrepl.github.io/
#
global:
logging:
- type: "stdout"
level: "error"
format: "human"
- type: "syslog"
level: "info"
format: "logfmt"
# Add "jobs:" section(s) here for your specific use cases.
jobs:
- name: snapshot1
type: snap
filesystems: {
"tank0/data<": true,
}
snapshotting:
type: periodic
prefix: zrepl_
timestamp_format: "20060102-150405"
interval: 15m
pruning:
keep:
- type: grid
grid: 1x1h(keep=all) | 24x1h | 35x1d | 12x30d
regex: "^zrepl_.*"
- type: regex
negate: true
regex: "^zrepl_.*"
(A timestamp formátum megadása egy kicsit zavarba ejtő volt (mit keres ott egy konkrét timestamp), de go alatt ezek szerint így kell megadni: a 2006 az évet jelöli mindig, a 01 a hónapot, a 02 a napot, stb... Tehát nem yyyyMMdd... (például) a formátum string.)
A doksiban a kapcsolódó rész: https://zrepl.github.io/quickstart/backup_to_external_disk.html
ZFS scrubbing
A ZSF scrubbing célja a fájlrendszer ellenőrzése.
Az /etc/defaults/periodic.conf fájlban találtam:
# 800.scrub-zfs
daily_scrub_zfs_enable="NO"
daily_scrub_zfs_pools="" # empty string selects all pools
daily_scrub_zfs_default_threshold="35" # days between scrubs
#daily_scrub_zfs_${poolname}_threshold="35" # pool specific threshold
Ezek szerint default 35 naponként fut.
Ellenőrizni fogom, hogy tényleg futott-e.
További ötletek
- Prometheus, grafana telepítése: fájlrendszer monitorozás, IO, CPU, smart, snapshot-ok, stb..
- Tanúsítványok: Érdemes lehet egy saját CA tanúsítványt készíteni és azt telepíteni az eszközökre mint megbízható tanúsítványt. Ezzel a CA tanúsítvánnyal el lehet készíteni az egyes szolgáltatások HTTPS eléréséhez a tanúsítványt.
- Tűzfal (nem kell mindent elérni)
- dlaszlo blogja
- A hozzászóláshoz be kell jelentkezni
- 206 megtekintés