ubuntu 安裝 zabbix-sender
# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
# sudo dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
# sudo 1apt update
# sudo apt install zabbix-sender
ubuntu 安裝 zabbix-sender
# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
# sudo dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
# sudo 1apt update
# sudo apt install zabbix-sender
ubuntu 24.04.1 install zabbix 7.0_ngnix
設定固定IP
1.sudo nano /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: false
addresses: [192.168.137.205/24]
routes:
- to: default
via: 192.168.137.1
nameservers:
addresses: [1.1.1.1,8.8.8.8]
重啟網路設定
sudo netplan apply
更改系統的時區
看目前時區
timedatectl
修改時區
sudo timedatectl set-timezone Asia/Taipei
安裝NTP同步時間
sudo apt update
sudo apt upgrade
sudo reboot
sudo apt install -y ntp
sudo systemctl start ntp
sudo systemctl enable ntp
ntpq -p
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
sudo apt update
安装Zabbix server,Web前端,agent
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent mysql-server
mysql --version
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
sudo mysql -uroot
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '1qaz2wsx';
exit;
sudo mysql_secure_installation
Enter password for user root:
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: n
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
mysql -uroot -p
# mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
# mysql> create user zabbix@localhost identified by '1qaz2wsx';
# mysql> grant all privileges on zabbix.* to zabbix@localhost;
# mysql> set global log_bin_trust_function_creators = 1;
# mysql> SHOW VARIABLES LIKE 'char%';
# mysql> SHOW VARIABLES LIKE 'collation%';
# mysql> quit;
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
mysql -uroot -p
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
sudo nano /etc/zabbix/zabbix_server.conf
修改
DBPassword=1qaz2wsx
sudo nano /etc/zabbix/nginx.conf
listen 80;
server_name 192.168.137.243;--zabbix server ip
# sudo systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
# sudo systemctl enable zabbix-server zabbix-agent nginx php8.3-fpm
http://IP --設定一些規則
http://IP Admin--zabbix --登入
/usr/share/zabbix/conf/zabbix.conf.php --設定位置
sudo nano /usr/share/zabbix/include/locales.inc.php #打開此文件確認中文已經打開顯示(true)
'zh_TW' => ['name' => _('Chinese (zh_TW)'), 'display' => true],
sudo apt install -y language-pack-zh-hant language-pack-zh-hans #安裝中文
sudo nano /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
添加以下2行
LANG="zh_TW.UTF-8"
LANGUAGE="zh_TW:zh:en_US:en"
sudo dpkg-reconfigure locales
sudo systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
find / -name fonts
cd /usr/share/zabbix/assets/fonts
ls
graphfont.ttf
sudo wget https://alist.yyzq.cf/d/%20%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%9B%98/software%20/fonts/simkai.ttf #下載新字體
sudo mv graphfont.ttf graphfont.ttfbak #備份原字體
sudo mv simkai.ttf graphfont.ttf #使用新字體
sudo systemctl restart zabbix-server zabbix-agent nginx php8.3-fpm
ubuntu install snmpv3 設定
cilent端
===========================================
sudo apt install snmp snmpd libsnmp-dev
sudo service snmpd stop
sudo net-snmp-config --create-snmpv3-user -ro -X AES -A SHA -a my_authpass -x my_privpass snmpv3user
或
sudo net-snmp-create-v3-user -ro -X AES -A SHA -a my_authpass -x my_privpass snmpv3user
/etc/snmp/snmpd.conf
###########################################################################
#
# snmpd.conf
# An example configuration file for configuring the Net-SNMP agent ('snmpd')
# See snmpd.conf(5) man page for details
#
###########################################################################
# SECTION: System Information Setup
#
# syslocation: The [typically physical] location of the system.
# Note that setting this value here means that when trying to
# perform an snmp SET operation to the sysLocation.0 variable will make
# the agent return the "notWritable" error code. IE, including
# this token in the snmpd.conf file will disable write access to
# the variable.
# arguments: location_string
sysLocation Sitting on the Dock of the Bay
sysContact Me <me@example.org>
# sysservices: The proper value for the sysServices object.
# arguments: sysservices_number
sysServices 72
###########################################################################
# SECTION: Agent Operating Mode
#
# This section defines how the agent will operate when it
# is running.
# master: Should the agent operate as a master agent or not.
# Currently, the only supported master agent type for this token
# is "agentx".
#
# arguments: (on|yes|agentx|all|off|no)
master agentx
# agentaddress: The IP address and port number that the agent will listen on.
# By default the agent listens to any and all traffic from any
# interface on the default SNMP port (161). This allows you to
# specify which address, interface, transport type and port(s) that you
# want the agent to listen on. Multiple definitions of this token
# are concatenated together (using ':'s).
# arguments: [transport:]port[@interface/address],...
#agentaddress 127.0.0.1,[::1]
###########################################################################
# SECTION: Access Control Setup
#
# This section defines who is allowed to talk to your running
# snmp agent.
# Views
# arguments viewname included [oid]
# system + hrSystem groups only
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.25.1
view systemview included .1
# rocommunity: a SNMPv1/SNMPv2c read-only access community name
# arguments: community [default|hostname|network/bits] [oid | -V view]
# Read-only access to everyone to the systemonly view
rocommunity public default -V systemonly
rocommunity6 public default -V systemonly
# SNMPv3 doesn't use communities, but users with (optionally) an
# authentication and encryption string. This user needs to be created
# with what they can view with rouser/rwuser lines in this file.
#
# createUser username (MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224) authpassphrase [DES|AES] [privpassphrase]
# e.g.
# createuser authPrivUser SHA-512 myauthphrase AES myprivphrase
#
# This should be put into /var/lib/snmp/snmpd.conf
#
# rouser: a SNMPv3 read-only access username
# arguments: username [noauth|auth|priv [OID | -V VIEW [CONTEXT]]]
rouser authPrivUser authpriv -V systemonly
# include a all *.conf files in a directory
includeDir /etc/snmp/snmpd.conf.d
存檔後
sudo systemctl restart snmpd
================================================================
zabbix server
sudo apt install snmp snmpd libsnmp-dev
看是否抓到資料
sudo snmpwalk -v 3 -a SHA -A my_authpass -x AES -X my_privpass -l authpriv -u snmpv3user guestip | head -10
1.sudo hostnamectl set-hostname new_hostname
2.sudo sed -i "s/old_hostname/new_hostname/g" /etc/hosts
重新開機即可
將 HuggingFace 模型轉換為 GGUF
1.安裝python 3.11.9,不要用python 3.12版
2.安裝git
3.重新開機
4.git clone https://github.com/ggerganov/llama.cpp.git
5.cd llama.cpp
pip install -r requirements.txt
6.測試llama.cpp
python convert.py -h
出現:ImportError: DLL load failed while importing _sentencepiece: 找不到指定的模組。
安裝Microsoft visual c++ 2015 redistributable(x64)
https://www.microsoft.com/en-us/download/confirmation.aspx?id=48145
安裝後在執行一次python convert.py -h
7.將下載 HuggingFace 模型目錄複製到llama.cpp目錄下
python convert.py c:\llama.cpp\INX-TEXT_Bailong-instruct-7B --outfile bailong-instruct-7b-f16.gguf --outtype f16
轉出來大小約13.5G,還是太大
8.Windows使用llama.cpp量化(quantize)前準備
llama.cpp量化(quantize) 前要先做make。
9.下載w64devkit-1.xxx並執行w64devkit.exe。
https://github.com/ggerganov/llama.cpp?tab=readme-ov-file#build
https://github.com/skeeto/w64devkit/releases/tag/v1.23.0
下載w64devkit-1.23.0.zip並解壓
10.進入w64devkit目錄並執行w64devkit.exe
11.然後進入llama.cpp目錄 cd /llama.cpp
12.執行make
會跑一下下,完成後執行exit跳回windos的命令提示字元CMD下
quantize.exe就會生成在llama.cpp的資料夾下
# 以q4_k_m 為例
# q4_k_m:提供了不同程度的準確性和推理速度,適合需要平衡資源使用的場景。
13.cd llama.cpp
14.執行.\quantize.exe bailong-instruct-7b-f16.gguf bailong-instruct-7b-q4_k_m.gguf q4_k_m
當中數字是代表量化的 bits 設定;以下是參考他對於不同量化的推薦和說明:
q2_k:特定張量 (Tensor) 采用較高的精度設置,而其他的則保持基礎級別。
q3_k_l、q3_k_m、q3_k_s:這些變體在不同張量上使用不同級別的精度,從而達到性能和效率的平衡。
q4_0:這是最初的量化方案,使用 4 位精度。
q4_1和q4_k_m、q4_k_s:這些提供了不同程度的準確性和推理速度,適合需要平衡資源使用的場景。
q5_0、q5_1、q5_k_m、q5_k_s:這些版本在保證更高準確度的同時,會使用更多的資源並且推理速度較慢。
q6_k和q8_0:這些提供了最高的精度,但是因為高資源消耗和慢速度,可能不適合所有用戶。
如果追求較低成本和保持模型效能的情況推薦使用用 Q5_K_M,如果想更節省 RAM,則可以考慮 Q4_K_M。一般來說,帶有 K_M 的版本會比 K_S 的版本表現更佳。不過不建議使用 Q2_K 或 Q3_* 等版本,因為它們會顯著降低模型的整體性能。
----------------------------------------------------------------------------------------------
如何下載HuggingFace的模組
1.進入HuggingFace想要處理的模組例如INX-TEXT/Bailong-instruct-7B
那就去HuggingFace網頁搜尋INX-TEXT/Bailong-instruct-7B
2.進入後點選Files,在右邊有3個.,點選後出現clone repository,會出現如何下載
3.git lfs install
4.git clone https://huggingface.co/INX-TEXT/Bailong-instruct-7B
會出現要HuggingFace的帳號及密碼,輸入後才可下載--不能使用因為要你的token
4-1.使用download.py,或者一個個去下載
from huggingface_hub import snapshot_download
model_id = "INX-TEXT/Bailong-instruct-7B" # hugginFace's model name
snapshot_download(
repo_id=model_id,
local_dir="INX-TEXT_Bailong-instruct-7B",
local_dir_use_symlinks=False,
revision="main",
use_auth_token="<YOUR_HF_ACCESS_TOKEN>")
YOUR_HF_ACCESS_TOKEN--使用帳號進入後在settings--Access Tokens中去設定
執行 python download.py
5.上傳轉檔及量化後的 GGUF 模型到 Huggingface Repo
避免透過 git pull 來上傳大型的檔案下來寫一個 upload.py
from huggingface_hub import HfApi
import os
api = HfApi()
HF_ACCESS_TOKEN = "<YOUR_HF_WRITE_ACCESS_TOKEN>"
model_id = "NeroUCH/Bailong-instruct-7B-GGUF"
api.create_repo(
model_id,
exist_ok=True,
repo_type="model", # 上傳格式為模型
use_auth_token=HF_ACCESS_TOKEN,
)
# upload the model to the hub
# upload model name includes the Bailong-instruct-7B in same folder
for file in os.listdir():
if file.endswith(".gguf"):
model_name = file.lower()
api.upload_file(
repo_id=model_id,
path_in_repo=model_name,
path_or_fileobj=f"{os.getcwd()}/{file}",
repo_type="model", # 上傳格式為模型
use_auth_token=HF_ACCESS_TOKE)
參考:
https://medium.com/@NeroHin/%E5%B0%87-huggingface-%E6%A0%BC%E5%BC%8F%E6%A8%A1%E5%BC%8F%E8%BD%89%E6%8F%9B%E7%82%BA-gguf-%E4%BB%A5inx-text-bailong-instruct-7b-%E7%82%BA%E4%BE%8B-a2cfdd892cbc
https://medium.com/@zhanyanjiework/%E5%B0%87huggingface%E6%A8%A1%E5%9E%8B%E8%BD%89%E6%8F%9B%E7%82%BAgguf%E5%8F%8A%E4%BD%BF%E7%94%A8llama-cpp%E9%80%B2%E8%A1%8C%E9%87%8F%E5%8C%96-%E4%BB%A5taide-b-11-0-0%E6%A8%A1%E5%9E%8B%E7%82%BA%E4%BE%8B-%E9%83%A8%E7%BD%B2lm-studio-366bc4bcb690
因為使用程式使用docker,所以要改為http://host.docker.internal:1234/v1/
需要先按下鍵盤的「Shift + F10」、理論上他會開啟一個命令提示字元的視窗。這時候在裡面輸入「oobe\bypassnro」後按下 Enter,系統應該就會重開,重新開始初始化的流程