2025/08/29

最近試了一下 wazuh

安裝很方便 官方文件如下



但安裝好後如果要更改admin的密碼 依官方文件試了很多次都無法成功
還會導致wazuh 有問題打不開



安裝好後主要設定檔是

/var/ossec/etc/ossec.conf

目前只改了 email通知跟 啟動syslog server

<email_notification>yes</email_notification>
    <smtp_server>10.0.0.1</smtp_server>
    <email_from>wazuh@abc.com</email_from>
    <email_to>abc@abc.com</email_to>
    <email_maxperhour>12</email_maxperhour>
    <email_log_source>alerts.log</email_log_source>
    <agents_disconnection_time>10m</agents_disconnection_time>
    <agents_disconnection_alert_time>0</agents_disconnection_alert_time>
    <update_check>yes</update_check>
  </global>

  <alerts>
    <log_alert_level>3</log_alert_level>
    <email_alert_level>10</email_alert_level>        這裡修改那個level 以上要發通知
  </alerts>


啟動 syslog server

<remote>
  <connection>syslog</connection>
  <port>514</port>
  <protocol>udp</protocol>
  <allowed-ips>10.0.0.0/8</allowed-ips>
  <local_ip>10.1.1.1</local_ip>
</remote>

wazuh 會自動解析log 但如果解析規則沒有定義 就不會出現在 discover


client 端要自己把要monior的檔案加上去 才會送到 server進行解析

<localfile>
  <location>/var/log/httpd/access_log</location>
  <log_format>apache</log_format>
</localfile>

<localfile>
  <location>/var/log/httpd/error_log</location>
  <log_format>syslog</log_format>
</localfile>

<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/secure</location> 
</localfile>

2025/08/21

如何在librenms設定到達某個臨界值時發出告警

最快的方式

點開要設定告警的圖
找出url上的 id 值
如下所示
http://10.0.0.1/graphs/to=1755736500/id=22718/type=sensor_fanspeed/from=1755650100/

id 是 22718

再來設定 alert rule
如下圖
設定名稱, sesssor id , 跟告警值
設完後儲存即可



















第二個方式

點開要取值的圖 如下

註記表示在 alert rule 需要使用的 名稱








接下來 create new alert rule



















設定名稱, rule 即可
如果需要限定作用几器 再額外加上 match devices


建立感測器警報規則時最常會用到的選項如下

選項 (Attribute) 資料類型 說明

sensor_value            數字         (最常用) 感測器目前讀取到的數值。例如,電壓的 110、溫度的 25、電量的 98。

sensor_descr         文字         感測器的描述性名稱。例如 Input Phase 1、CPU Core 0 Temp、Toner Level。用來鎖定特定感測器。

sensor_type         文字         感測器的類型,通常來自 MIB 的定義。例如 voltage、temperature、charge、snmp。用來篩選某一類型的所有感測器。

sensor_class         文字         感測器的通用類別。與 sensor_type 類似,但更通用。例如 temperature、voltage、current 等。

sensor_limit         數字         設備本身定義的高臨界值。如果設備透過 SNMP 提供此資訊,您可以用它來做動態比較。

sensor_limit_low 數字         設備本身定義的低臨界值。

sensor_alert         數字 (0/1) 一個布林值 (Boolean),表示設備本身是否認為此感測器已處於警報狀態。1 代表是,0 代表否。


這些選項在特定情境下也可能很有用。

選項 (Attribute) 資料類型 說明

sensor_id             數字         感測器在 LibreNMS 資料庫中的唯一 ID。

sensor_prev         數字         感測器上一次輪詢 (poll) 時的數值。可用來比較數值的變化。

last_updated         時間戳         該感測器最後一次更新的時間

2025/08/20

zabbix設定好triger action
一直沒收到alert
查了半天
才知道server monitor的權限沒開
因為預設是 All groups None
記得要把權限加上去
至少要有read
 






如果要在zabbix要使用不同的mib

找到下方工具 應該是最方便使用的

https://github.com/Sean-Bradley/SNMPWALK2ZABBIX


只要以下指令

python3 snmpwalk2zabbix.py public 192.168.1.1 1.3.6.1.2.1

就會產生 template 的 xml 可以直接從 zabbix 匯入

但執行時出現以下問題
























試了好几次都一樣

原因出在產生出來的xml裡有雙引號

<template>"INSIGHTPOWER" SNMP</template>
<name>"INSIGHTPOWER" SNMP</name>

把雙引號拿掉就正常了


<template>INSIGHTPOWER SNMP</template>

<name>INSIGHTPOWER SNMP</name>

2025/08/19

今天有人問我自建rustdesk的問題
其實在好久之前本來就已經自建了
不過因為管制在內部
所以沒有考慮管制連線的問題
找了一些資料 把這段補起來

下載最新版本的 server


解開後直接執行

hbbs -k _
hbbr -k _

會產生以下二個檔

id_ed25519
id_ed25519.pub

需要cat id_ed25519.pub 的內容 取得公鑰字串

下載client軟体

下載後把檔名改成

rustdesk-host=<伺服器IP或域名>,key=<您的公鑰字串>.exe

假設您的伺服器 IP 是 10.0.0.0,公鑰是 A1B2C3D4E5F68I9J0...,那麼檔名就應該是: rustdesk-host=192.168.1.10,key=A1B2C3D4E5F68I9J0....exe

存檔後直接執行即可

如果不改檔名的話 可以執後再更改相關設定




2025/08/17

almalinux 10 出來一段時間了
想說來升級一下
依照官方的步驟



出現四個問題

Upgrade has been inhibited due to the following problems:
    1. Detected XFS filesystems incompatible with target kernel.
    2. Current x86-64 microarchitecture is unsupported in RHEL10
    3. Deprecated DHCP plugin configured

解決方法

第4點

ifcfg-* files located in /etc/sysconfig/network-scripts/
檔案裡要加上

第3點

sed -i'.bak' 's/^dhcp=dhclient//g' /usr/lib/NetworkManager/conf.d/10-dhcp-dhclient.conf

第2點

rhel 10 cpu 硬体最低支援是 x86-64-v3

檢查 cpu 支援指令

/usr/lib64/ld-linux-x86-64.so.2 --help

Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)

第1點

Title: Detected XFS filesystems incompatible with target kernel.
Summary: XFS v4 format has been deprecated and it has been removed from the target k
ernel. Such filesystems cannot be mounted by target system kernel and so the upgrade
 cannot proceed successfully. Following XFS filesystems have v4 format:
    - /
    - /home
Related links:
    - Backing up an XFS file system: https://red.ht/rhel-9-xfs-backup
    - Restoring an XFS file system from backup: https://red.ht/rhel-9-xfs-restore-fr
om-backup
Remediation: [hint] Migrate XFS v4 filesystems to new XFS v5 format. For filesystems
 hosting data, perform a back up, reformat, and restore procedure. Refer to official
 documentation for details. For filesystems hosting the system a clean installation
is recommended instead.

由於這台是centos 7 升上來的 所以 xfs 是 v4
如果要再升到almalinux 10 必須要升到 xfs v5
如何檢查 xfs是 v4 還是 v5


If the output is crc=0, it's a v4 filesystem. If it's crc=1, you have a v5 filesystem.


無法直接升級 只能備分 mkfs.xfs 再匯回資料

 rsync -avxHAX --progress /data/ /mnt/backup/data_backup/

umount /data

mkfs.xfs /dev/vda1

mount -t xfs /dev/vda1 /data

rsync -avxHAX --progress  /mnt/backup/data_backup/ /data/

2025/08/15

最近有個新的需求
希望在市電斷電
但發電机無作動是能關几
而且關几要有先後順序
首先詢問環控系統看看能不能讓我捉乾接點的訊號
廠商回覆是沒辦法
但他們可以增加這個功能
要收費
於是換個思考方式
目前就打算捉UPS的snmp值
只捉輸入電壓跟電池剩餘電量
由於現況是使用 AELTA 
找了一下SNMP的oid

輸入電壓有三相
1.3.6.1.2.1.33.1.3.3.1.3.1.0
1.3.6.1.2.1.33.1.3.3.1.3.2.0
1.3.6.1.2.1.33.1.3.3.1.3.3.0

旁路供電 三相

1.3.6.1.2.1.33.1.5.3.1.2.1.0
1.3.6.1.2.1.33.1.5.3.1.2.2.0
1.3.6.1.2.1.33.1.5.3.1.2.3.0 


只捉一相即可

電池剩餘電量

1.3.6.1.2.1.33.1.2.4.0

shell如下

#!/bin/bash

battery=$(/usr/bin/snmpwalk -v 2c -c public 10.0.0.1 1.3.6.1.2.1.33.1.2.4.0 | awk '{print $NF}'|cut -d '.' -f 1 )
#echo $battery

input_voltage=$(/usr/bin/snmpwalk -v 2c -c public 10.0.0.1 1.3.6.1.2.1.33.1.3.3.1.3.1.0 | awk '{print $NF}'|cut -d '.' -f 1 )
#echo $input_voltage

if [ $battery -lt 80 ] && [ $input_voltage -lt 50 ]; then

#       echo "ok"
        /usr/sbin/init 0

fi


2025/08/12

前不久提到可以使用 zap docker 相當方便
但今天使用時有一些狀況
首先是如果不限制 docker 的 cpu ram 會把宿主几的資源全部吃完導致當几
必須使用 --cpu --memory 來設定
範例如下

--cpus="18" --memory 20000MB

接續以上的問題
在LXC就算增加2個以上的core 依然無法設定 --cpus 大於一
所以要使用vm才能設定多個cpu

另外硬碟使用率會隨著被scan的網站規模變大而變大
所以要有足夠的硬碟空間 否則也會有掃到一半當几的問題
要特別注意