在撰寫這篇文章時,請確保您已經瞭解以下前提條件:
1. 您的服務器必須運行CentOS 7或更高版本的操作系統。
2. 您需要有root權限來執行本文中的命令。
3. 如果您沒有公網IP地址,則需要在防火牆中打開必要的端口以允許遠程訪問。
4. Yearning是一個數據庫審計系統,用於監控和記錄對MySQL/MariaDB數據庫服務器的所有活動。
5. 爲了進行遠程訪問,您可能還需要設置VPN或其他隧道技術來繞過防火牆限制。
6. 在進行任何數據庫操作之前,請務必備份好您的數據庫和相關配置文件。
CentOS 7上安裝Yearning的步驟
第1步:準備環境
首先,更新您的系統包索引以確保最新版本的軟件可用:
sudo yum update -y
接下來,安裝需要的依賴項:
sudo yum install gcc make cmake libtool pcre-devel libaio-devel zlib-devel openssl-devel readline-devel tcl-devel git wget unzip autoconf automake libjpeg-turbo-devel freetype-devel harfbuzz-devel graphviz-devel -y
第2步:下載並編譯Percona Server
由於Yearning依賴於Percona Server for MySQL,我們需要先下載並編譯它:
wget https://www.percona.com/downloads/percona-server-5.7/percona-server-5.7.x86_64.rpm
sudo yum localinstall percona-server-5.7.x86_64.rpm -y
第3步:安裝Yearning
現在我們可以開始安裝Yearning了。首先,克隆它的Git存儲庫:
git clone --depth=1 https://github.com/youzan/Yearning.git
cd Yearning
然後,使用CMake構建項目:
cmake . && make
最後,安裝Yearning及其所有依賴項:
sudo make install
第4步:配置Yearning
安裝完成後,您將需要配置Yearning以滿足您的需求。編輯`etc/my.cnf`文件以指定Percona Server的連接參數。例如:
[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/mysql
port=3306
socket=/tmp/mysqld.sock
symbolic-links=0
skip-name-resolve
bind-address = 192.168.1.100 # 這裏替換爲您的實際服務器IP地址
character-set-client-handshake = FALSE
default-time-zone = '+8:00'
innodb_buffer_pool_size = 1G
innodb_log_file_size = 128M
max_connections = 200
wait_timeout = 600
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
log_bin
slow_query_log
long_query_time = 1
# 以下是Yearning特定的選項
enable_gtid
audit_log_format = JSON
audit_log_users = '*'
audit_log_exclude_accounts = ''
保存更改後,重啓Percona Server以應用新設置:
sudo systemctl restart mysqld
第5步:啓動Yearning並驗證狀態
現在您可以啓動Yearning服務:
sudo yearn start
檢查服務的日誌以確認一切正常:
tail -f /var/log/yearn/yearn.log
如果一切順利,您應該會看到類似這樣的輸出:
2023-02-02 14:36:21 +08 [INFO]: Starting yearn service with version "5.7" and user "root"
2023-02-02 14:36:21 +08 [INFO]: Successfully connected to database server at localhost:3306
2023-02-02 14:36:21 +08 [INFO]: Start the audit log collector thread successfully
2023-02-02 14:36:21 +08 [INFO]: The web interface is available on http://localhost:8081
您可以通過瀏覽到http://localhost:8081來查看Yearning的管理界面(假設您已經在本地)。
第6步:設置無公網IP遠程SQL審覈與數據查詢
要允許從外部網絡訪問Yearning服務,您需要通過防火牆開放所需的端口。例如,如果Yearning正在監聽8081端口,您可以使用iptables或firewalld來添加相應的規則。此外,請確保您的路由器也轉發到這些端口的流量。
如果要從另一個位置訪問Yearning,您可能需要設置VPN或其他隧道技術來安全地連接到您的服務器並進行管理。在進行此操作之前,請務必考慮數據安全和隱私保護的重要性。
小結
在本篇文章中,我們介紹瞭如何在CentOS 7上安裝和配置Yearning以及如何在沒有公網IP的情況下實現遠程SQL審覈與數據查詢的方法。請記住,在進行此類操作時要格外小心,因爲它們可能會帶來額外的風險。始終保持良好的網絡安全實踐和安全意識是非常重要的。