2024/11/29

PVE 的 LXC 使用 almalinux 9 時

把 開几需要啟動的指令下在 /etc/rc.local 沒有作用
因為 rc-local 這個daemon 一直起不來 有問題
改用 @reboot
如果還是一直不成功的話
會需要在之前先 sleep 一下

@reboot sleep 5;/root/some_thing_need_start 
使用curl 在 telegram傳送包含html tag 訊息的範例如下
不過支援的tag不多 主要是要加上  &parse_mode=HTML


curl -X POST "https://api.telegram.org/bot711025:AAFcn2dfjsldfkjsdlfjdkfcvZo/sendMessage" -d "chat_id=-100236747688384&text=<u>test</u>&parse_mode=HTML"
因為要管制跑在LXC上docker的網路
才發現把iptables直接下在 LXC上的 INPUT 是沒用的 

iptables -I INPUT -p tcp -s 10.0.0.0/8 --dport 1111 -j DROP

以上如果是啟動 docker 時 相對應到各自的 1111是無法管制連入 docker的
本來的認知是只要在最外層擋就好了 但並不是

要下在 DOCKER-USER 這個 chain 才有作用

iptables -I DOCKER-USER -p tcp -s 10.0.0.0/8 --dport 1111 -j DROP
今天在試PVE的 firewall 功能
因為是三層式的架構 所以 cluster node 跟 guest os 都必需要打開才會有作用
但是在打開cluster的firewall之後
管理介面就進不去了
查了一下文件才發現cluster firewall預設的規則是 DROP
唯一的解法是進 console 改 /etc/pve/firewall/cluster.fw 這個檔
把  enable: 0 改成 enable: 1
要打開前一定要記得要把 input policy 先改成 ACCEPT



2024/11/27

n8n裡有二個重要的東西一定要備分

一個是 credentials 一個是 workflow

指令如下

首先進到docker的 os

docker exec -it  n8n /bin/sh


備分 credentials 

n8n export:credentials --all --decrypt --output=exported-credentials.json

記得一定要用 --decrypt 

如果不加的話 因為每一台的 crypt key不同 匯入別台新的几器會有問題


備分 workflow

n8n export:workflow --all --output=exported-workflows.json


也可以使用 api 拿出來 

記得要先產生api key

語法如下

curl -X 'GET' \

  'http://10.0.0.1:5678/api/v1/workflows?active=true&tags=test,production&name=My%20Workflow&projectId=your_api_key' \

  -H 'accept: application/json'


備分檔可以傳出來或建個 workflow 定時丟出來



記一下在 almalinux 9 上安裝docker後再安裝n8n docker

先裝 docker

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

dnf install docker-ce docker-ce-cli containerd.io

裝好後設定docker 的 daemon

systemctl start docker
systemctl enable docker


接下來安裝 n8n

先建立放資料的 volume

docker volume create n8n_data

docker pull docker.n8n.io/n8nio/n8n


# Start docker 有些參數要加  以下方為準    官方說明太簡單

docker run -it --name n8n -p 5678:5678 --restart=always -e GENERIC_TIMEZONE="Asia/Taipei" -e TZ="Asia/Taipei" -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true -e N8N_SECURE_COOKIE=false -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

如果這裡timezone 沒設 每次新建 workflow的時候都要再改 有點煩 而且很容易忘記

再來就可以開browser登入了 http://10.0.0.1:5678


以下步驟是n8n docker 有新版本的更新方式 

docker pull docker.n8n.io/n8nio/n8n

# Get the container ID
docker ps -a

# Stop the container with ID container_id
docker stop [container_id]

# Remove the container with ID container_id
docker rm [container_id]

# Start the container
docker run -it --name n8n -p 5678:5678 --restart=always -e GENERIC_TIMEZONE="Asia/Taipei" -e TZ="Asia/Taipei" -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true -e N8N_SECURE_COOKIE=false -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

#remove unused image
docker image prune


這几天在玩 n8n 真的是個好東西

先講一下安裝

官方提供docker跟 npm的安裝方式

但試了 almalinux 9 及 debian 12 都安裝不起來

最後使用docker

n8n docker的基底用的還是 alpine linux

沒有 bash 只有 sh



https://n8n.io/

2024/11/20

今天把ntopng換到 almalinux9

官方說明頁面的步驟是

dnf config-manager --set-enabled crb
dnf install epel-release

錯了 
要先 dnf install epel-release
才能 dnf config-manager --set-enabled crb


安裝後進管理介面
一直出現這個訊息




















必須在
/etc/ntopng/ntopng.conf
加上

-X=500000

數字依据現實狀況而定

順便改一下這二個值

 -m=10.0.0.0/8,192.168.0.0/16

 -i=eth1


2024/11/15

今天有人問我為什麼mobaxterm進server後開圖檔很慢
試了 eog 跟 shotwell 真的很慢 都要30多秒
再試了 nomacs 不到1秒就開了

開圖檔記得要用 nomacs

2024/11/09

使用tfm時 置放檔案的目錄 不要放在 /var/www 或 /var/www/html 下
另外找個路徑
例如 /opt/tfm_file
再修改該目錄的權限

chown -R www-data:www-data /opt/tfm_file

以避免被直接存取的情況


5種在linux透過 serial 連接設備 console的方法

先找出 serial port

 dmesg|grep ttyS

[    0.818900] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    0.841214] 0000:00:03.3: ttyS4 at I/O 0x2248 (irq = 17, base_baud = 115200) is a 16550A

開放存取權限

sudo chmod 666 /dev/ttyS0

sudo chmod 666 /dev/ttyS4


screen

screen /dev/ttyUSB0 115200

crtl+a   /      quit

cu
tip
minicom
putty

2024/11/07

在 graylog 5 使用的 Geolocation 功能 在 graylog 6 也被限制了


















使用Geolocation 功能前必須 先有  Illuminate Processor 
但這個功能在open版被限制了



2024/11/06

graylog 6版後的index rotation改成了另一種方式











原本是設定

Max. days in storage 
180

Min. days in storage
60

主觀認知是能查到60天內的資料 超過60天系統會封存 但應該還是能查到
但事實上超過60天就查不到資料了

為了符合法規規定 所以現在改成

Max. days in storage 
181

Min. days in storage
180


覺得舊版的方式比較好 
能自己決定几天後就把 index close
然後再看狀況手動去砍

認真查了一下才發現graylog現在分成了三個版本

open的這個版本現在大幅減少支援的功能

為了解決以上的問題

看來只能定期手動或用crontab去close index

shell 如下

for i in {171..180}
do
        echo $i
        curl -u use:passwd -XPOST "http://10.0.0.1:9200/graylog_$i/_close"
done

目前觀察大約是每二天會 index rotate 一次 

需要查詢舊資料時再打開

curl -v -X POST -H "Content-Type: application/json" -H "X-Requested-By: XMLHttpRequest" -u user:passwd http://10.0.0.1:9000/api/system/indexer/indices/graylog_245/reopen




今天把另一台 graylog 5.2.12 轉到 graylog 6.1.1

graylog 5 預設就會有 syslog udp 514 的 input 不用再另外加

graylog 6 預設沒有 所以一定要記得加上去

漏了一段時間的 log 沒收到

2024/11/04

almalinux 8 預設安裝的php 7.2

記錄一下升級到 php 8.2的步驟

看一下目前使用的版本及系統支援的版本

dnf module list php

Last metadata expiration check: 2:45:04 ago on Mon 04 Nov 2024 09:34:39 AM CST.
AlmaLinux 8 - AppStream
Name     Stream         Profiles                      Summary                  
php      7.2 [d][e]     common [d], devel, minimal    PHP scripting language   
php      7.3            common [d], devel, minimal    PHP scripting language   
php      7.4            common [d], devel, minimal    PHP scripting language   
php      8.0            common [d], devel, minimal    PHP scripting language   
php      8.2            common [d], devel, minimal    PHP scripting language 

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

先reset 目前安裝的版本

dnf module reset php -y

再enable php 8.2

dnf module enable php:8.2 -y

接下來 dnf -y update 安裝所有 php8.2 相關套件

確認是否安裝完成

dnf module list php
AlmaLinux 8 - BaseOS                           6.2 MB/s | 7.4 MB     00:01    
AlmaLinux 8 - AppStream                        5.7 MB/s |  14 MB     00:02    
AlmaLinux 8 - Extras                            18 kB/s |  13 kB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64 8.3 MB/s |  14 MB     00:01    
AlmaLinux 8 - AppStream
Name      Stream      Profiles                       Summary                   
php       7.2 [d]     common [d], devel, minimal     PHP scripting language    
php       7.3         common [d], devel, minimal     PHP scripting language    
php       7.4         common [d], devel, minimal     PHP scripting language    
php       8.0         common [d], devel, minimal     PHP scripting language    
php       8.2 [e]     common [d], devel, minimal     PHP scripting language    

提示:預設[d]、已啟用[e]、已停用[x]、已安裝[i]

檢查目前版本

php -v


重開几看看所有服務是否正常


今天把 librenms的php 升到 8.3 (官方建議)

記錄一下流程
先把之前 apt-mark hold 的pkg unhold

php-cli
php-common
php-curl
php-fpm
php-gd
php-gmp
php-json
php-mbstring
php-mysql
php-pear
php-snmp
php-xml
php-zip

接下來移除原安裝的 php 並安裝 php8.3


php8.3-fpm.service 要重啟並 enable

systemctl restart php8.3-fpm.service
systemctl enable php8.3-fpm.service


/etc/php/8.3/cli/php.ini裡的 timezone要設定

date.timezone = Asia/Taipei


複制 /etc/php/8.1/fpm/pool.d/librenms.conf 到 /etc/php/8.3/fpm/pool.d

把 pkg hold 住 暫時不再升版本

apt-mark hold

php-cli
php-common
php-curl
php-fpm
php-gd
php-gmp
php-json
php-mbstring
php-mysql
php-pear
php-snmp
php-xml
php-zip


目前正常了 再觀察看看