分享程式代碼相關筆記
目前文章總數:157 篇
最後更新:2024年 12月 07日
Elasticsearch是一個開源搜尋引擎,用於開源即時搜尋和分析大規模數據
Wiki說明:Wiki
GrayLog與相依的主要原因如下:
特色 | 說明 | |
---|---|---|
1. 高效的全文搜尋 | : | Elasticsearch提供快速、強大的全文搜尋功能,使 Graylog 能夠在大規模的日誌資料中執行高效的搜尋操作。 |
2. 即時資料分析 | : | 基於Elasticsearch 讓 Graylog 可實現複雜的查詢和分析操作,可快速反映分析內容。 |
Elasticsearch 依賴於Java套件,需要先安裝Java
進入CentOS後輸入以下:
sudo yum install java-1.8.0-openjdk-headless
安裝 Elasticsearch 的 GPG 密鑰
CentOS輸入以下:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
在CentOS的目錄下新增 /etc/yum.repos.d/elasticsearch.repo 檔案
檔案內容如下:
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
檔案配置好後,因為標記為7.x 因此只會安裝主版號為7的最新套件
Centos輸入以下:
sudo yum install elasticsearch
安裝完成後,請於 /etc/elasticsearch/elasticsearch.yml 開啟該檔案
將在cluster.name 的地方設定為 grayLog
※因為我們要將Elasticsearch與GrayLog相依
安裝後,依序輸入以下指令,讓其啟動,並保持開機的時侯自動執行
Centos依序輸入以下:
6-1. 開機自動啟動
sudo systemctl enable elasticsearch.service
6-2. 現在立刻執行
※現在會執行失敗是正常,因為GrayLog尚未安裝,最後重啟Server時,一切都會正常
sudo systemctl start elasticsearch.service
MongoDB 是一種 NoSQL 資料庫,其特點是文件存儲,具分散式處理架構之數據庫。
Wiki說明:Wiki
GrayLog主要依賴於MongoDB做存儲,因此必需安裝
在CentOS的目錄下新增 /etc/yum.repos.d/elasticsearch.repo 檔案
內容如下,請新增:
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
因為已經配置好指定版本,因此指令不需要輸入版號
CentOS輸入以下:
sudo yum install mongodb-org
安裝後,依序輸入以下指令,讓其啟動,並保持開機的時侯自動執行
Centos依序輸入以下:
4-1. 開機自動啟動
sudo systemctl enable mongod
4-2. 現在立刻執行
sudo systemctl start mongod
GrayLog是Log(日誌)管理與分析的開源平台軟體
Wiki說明:Wiki
GrayLog簡要優缺點出:
優點 | 說明 | |
---|---|---|
1. 開源且免費 | : | 適合小型和中小型組織,並且提供免費的Log收集 |
2. 高效能 | : | 與Elasticsearch、MongoDB結合,擁有強大的搜尋和過濾功能 |
3. 即時監控和儀表板 | : | 提供WebUI可視覺化介面 |
4. 分散式架構支持 | : | 可以橫向擴展,多點的情況下亦可適合大型組織分析Log |
缺點 | 說明 | |
---|---|---|
1. 學習曲線 | : | 查詢語法、與介面使用、配置、管理等都需要學習 |
2. 部署複雜 | : | 相依Elasticsearch、MongoDB,加上本身GrayLog具彈性配置,導致部署複雜 |
3. 儲存空間大 | : | 因相依MongoDB,使用BSON(二進位Json)的關係,在大量的Log寫入後,空間會大量占用 |
添加GrayLog 5.1官方庫到Server
進入CentOS後輸入以下:
sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-5.1-repository_latest.rpm
在CentOS 的目錄 /etc/yum.repos.d/graylog.repo 新增此檔案
檔案內容如下:
[graylog]
name=graylog
baseurl=https://packages.graylog2.org/repo/el/stable/5.1/$basearch/
gpgcheck=1
repo_gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-graylog
GrayLog強制需要設定密碼,需要安裝用戶先產生sha2的密碼,以便取得 root_password_sha2
CentOS輸入以下:
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
這邊範例是輸入123fff,然後得到一串雜湊
得到以下(每個人的會不同):
425de316d06a663e755e6b8ad72b92f8fc313afd18dc29fd485a9f1284fb678c
接著要取得 password_secret
先輸入以下:
< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;
可以得到(每個人的會不同):
jDH2Eo5m6zjjwgIA2y3d6sBFmvXArC4SVlfXlMLmhD4OFFDKFSyleuIZ2aHY0d2iLvAtVd2pUGFoaB-HZISqlx7dE7CcoBAt
安裝完後還需要接著進入目錄 /etc/graylog/server/server.conf 開啟檔案,進行配置,依序配置以下:
7-1. 設定 root_password_sha2 (對應Step 5)
7-2. 設定 password_secret (對應Step 6)
7-3. 設定 root_timezone = ROC (預設UTC,依照所需而設定,ROC為亞洲)
7-4. 設定 allow_leading_wildcard_searches = true (設true表示可以用 * 查詢Log)
安裝後,依序輸入以下指令,讓其啟動,並保持開機的時侯自動執行
Centos依序輸入以下:
8-1. 開機自動啟動
sudo systemctl enable graylog-server.service
4-2. 現在立刻執行
sudo systemctl start graylog-server.service
要啟動GrayLog WebUI還需要對Nginx做配置
進入Nginx目錄 /etc/nginx/conf.d/graylog.conf 並新增檔案graylog.conf
※預設只會有default.conf
將以下內容輸入到檔案graylog.conf 中
listen 9001 是webUI的端口,其中proxy_pass的9000是GrayLog Server安裝時的預設Port號
server {
listen 9001;
server_name localhost;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/;
proxy_pass http://127.0.0.1:9000;
}
}
上述都設定完成後,重新開機
reboot
重新開機後進入 -> http://192.168.51.62:9001/
可以看到以下畫面,帳號預設是admin 密碼是設定的Sha2(這裡用123fff)
登入後入如下,進入Welcome畫面
選擇右上角的System -> Input
我們要收集Log需要從WebUI開通
依序選擇選擇
1. 選擇 GELP UDP (說明:UDP傳輸的結構化Log)
2. 點擊 Launch New Input
3. 輸入想要顯示的 Title
4. 設定Port (說明:設定的Port才能接收日誌)
都完成後點擊最下方保存,配置就完成了
以下是測試用的Asp.net Core WebSite 發送GrayLog的測試代碼
執行後預期Server要收到訊息MilkTeaGreen Test publish
依序點擊以下,查詢Log
1. Log搜尋頁
2. 查詢全部
3. 剛剛發送的Log已出現在下方