sudo mkdir -p /etc/sysmo/
sudo mkdir -p /opt/sysmo/
sudo mkdir -p /var/log/sysmo/
sudo firewall-cmd --add-port="自行設定"/tcp --permanent
sudo firewall-cmd --add-service=mysql --permanent
sudo firewall-cmd --reload
切換至/opt/目錄
cd /opt/sysmo/
Github 上下載
git clone https://github.com/Cost0903/System-Monitor.git
在終端機輸入 mysql
測試是否有 MySQL Server (注意 : MySQL Community Server 版本需要 8.0 以上)
若無:安裝 MySQL Community Server
wget http://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-"version".rpm-bundle.tar
tar -xvf mysql-"version".rpm-bundle.tar
sudo yum localinstall mysql-community-server-"version".rpm mysql-community-common-"version".rpm mysql-community-client-"version".rpm mysql-community-client-plugins-"version".rpm mysql-community-libs-"version".rpm mysql-community-libs-compat-"version".rpm
sudo systemctl enable --now mysqld
sudo systemctl status mysqld
grep 'temporary password' /var/log/mysqld.log (取得暫時密碼)
sudo mysql_secure_installation
# Enter
# Set root password : Y
# New password : P@ssw0rd
# Re-enter password : P@ssw0rd
# Remove anonymous users : Y
# Disallow root login remotely : Y
# Remove test database and access to it : Y
# Reload privilege tables now : Y
mysql -u root -p
#Enter password
登入後輸入
CREATE DATABASE log_db;
CREATE USER 'sysmo'@'#ip_address' IDENTIFIED BY '#password';
GRANT ALL PRIVILEGES ON logdb.* TO 'sysmo'@'#ip_address';
新增 server "Time Server ip address" iburst 至 chrony 設定檔
sudo dnf install chrony -y
sudo vim /etc/chrony.conf
systemctl enable --now chronyd
systemctl status chronyd
chronyc tracking
如有使用虛擬環境請先切換至特定環境 (注意 : 目前使用 Python 版本為 Python 3.10.7)
python3 -m pip install -r requirements.txt
vim /etc/sysmo/server_db.conf
# 更改以下參數
NAME = logdb # Database 名稱
HOST = 127.0.0.1 # MySQL Server 連線 IP
PORT = 3306 # 預設 Port 可更改
USER = sysmo # 資料庫使用者名稱
PASSWORD = password # 密碼原則請根據公司規定自行設置
cd /opt/System-Monitor/sysmo/
python3 manage.py makemigrations
python3 manage.py migrate
cd /opt/sysmo/server/logserver
python3 manage.py createsuperuser
修改 Server 設定
vim /etc/sysmo/server.conf
[logrotate]
INTERVAL = 180 # Agent 預設監控間隔
[DEFAULT_POLICY]
DEFAULT_MAJOR = 80 # 監控指標 Major 預設值
DEFAULT_WARNING = 90 # 監控指標 Warning 預設值
DEFAULT_CRITICAL = 95 # 監控指標 Critical 預設值
DEFAULT_OFFLINE_TIME = 2 # 監控指標 Offline 預設值 : INTERVAL * DEFAULT_OFFLINE_TIME
[SWAP_POLICY] # 獨立設置各項指標的預設值 (未完成) 預計為 CPU, Memroy, Swap, Disk 分開
SWAP_WARNING = 60
SWAP_MAJOR = 80
SWAP_CRITICAL = 90
[DISK_POLICY]
DISK_MAJOR = 90
DISK_WARNING = 80
DISK_CRITICAL = 97
[MODE]
DEBUG_MODE = 1 # 開啟後會紀錄 debug 標籤的訊息
[mail-config]
SWITCH = 1 # 1 為開啟寄信功能
HOST = smtp.gmail.com
PORT = 587
USE_TLS = True
USER = user@gmail.com
PASSWORD = password
[uwsgi]
uid = nginx # 使嗽 nginx 做為 User,可自行修改
chdir = /opt/sysmo/sysmo #
socket = /opt/sysmo/sysmo.sock
home = /opt/sysmo/.venv
module = sysmo.wsgi:application
master = True
processes = 4
threads = 4
vacuum = True
建立目錄
sudo mkdir -p /etc/nginx/sites-available
sudo mkdir -p /etc/nginx/sites-enabled
修改 nginx.conf
# include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
修改 sysmo-uwsgi.conf,請根據伺服器內目錄位置自行調整
upstream django {
server unix:////opt/sysmo/sysmo.sock;
}
server {
listen 80;
server_name _;
charset utf-8;
client_max_body_size 75M;
location / {
include /opt/sysmo/uwsgi_params;
uwsgi_pass django;
add_header Access-Control-Allow-Origin http://192.168.1.138;
}
location /static {
alias /opt/sysmo/sysmo/static/;
}
}
sudo systemctl enable --now nginx.service
sudo systemctl enable --now sysmo.service
sudo mkdir -p /etc/sysmo-agent # 存放設定檔
sudo mkdir -p /opt/sysmo-agent # 執行檔存放位置
sudo mkdir -p /var/log/sysmo-agent # Log 檔案存放位置
新增 server "Time Server ip address" iburst 至 chrony 設定檔
sudo dnf install chrony -y
sudo vim /etc/chrony.conf
systemctl enable --now chronyd
systemctl status chronyd
chronyc tracking
需下載 sysmo-agent, sysmo-agent.conf, sysmo-agent.service (包含在 Github 上)
git clone https://github.com/Cost0903/System-Monitor.git
cp sysmo-agent /opt/sysmo-agent/
cp sysmo-agent.conf /etc/sysmo-agent/
sudo cp sysmo-agent.service /usr/lib/systemd/system/
sudo systemctl daemon-reload
vim /etc/sysmo-agent/sysmo-agent.conf
[Interval]
Perform = 180 # 目前此參數無法自行設定,修改網頁上 interval 後會自行更改並重啟 Agent 以便生效
[Server]
# 使用的 IP:Port 可自行設定
Host = 192.168.1.138
Port = 9090
sudo systemctl enable --now sysmo-agent.service
systemctl status sysmo-agent.service
# /var/log/sysmo-agent/agent.log
tail -f /var/log/sysmo-agent/agent.log
如 Agent 有進行修改,需重新打包成 exe 檔案
pyinstaller -F sysmo-agent.py