Graylog 4 安裝及設定 - Debian 10
BUBU 因最近有採買一台性能比較好的主機,將原本舊的設備上的服務都轉移到這台新設備上運行,因此之前無法使用 log 伺服器,現在可以重新架設一台並且轉換系統來運行服務。
110.10.02 內容修改為 Debian 10
版本,並且修正安裝流程
111.09.18 服務所安裝版本,目前最新版本是 Graylog 4.3 版
運行環境
本工作室環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
- 系統環境: Debian 10
- Web 服務: Nginx 1.23
更新系統
- 更新系統
sudo apt update && sudo apt upgrade
- 安裝必要的套件服務
sudo apt install apt-transport-https openjdk-11-jre-headless uuid-runtime pwgen dirmngr gnupg wget
安裝MongoDB
- 新增加 MongoDB 來源庫
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- 安裝 MongoDB 服務
sudo apt-get update
sudo apt-get install -y mongodb-org
- 設定 MongoDB 啟動服務
重新載入系統設定檔
sudo systemctl daemon-reload
開機時自動啟動
sudo systemctl enable mongod.service
啟動 MongoDB 服務
sudo systemctl restart mongod.service
查看目前該服務狀態
sudo systemctl --type=service --state=active | grep mongod
安裝 Elasticsearch
- 新增加 Elasticsearch 來源庫
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
- 安裝 Elasticsearch
sudo apt update && sudo apt install elasticsearch-oss
- 修改 Elasticsearch 設定檔
sudo tee -a /etc/elasticsearch/elasticsearch.yml > /dev/null <<EOT
cluster.name: graylog
action.auto_create_index: false
EOT
- 設定 Elasticsearch 啟動服務
重新載入系統設定檔
sudo systemctl daemon-reload
開機自動啟動服務
sudo systemctl enable elasticsearch.service
啟動 Elasticsearch 服務
sudo systemctl restart elasticsearch.service
查檢目前該服務狀態
sudo systemctl --type=service --state=active | grep elasticsearch.service
- 檢查Elasticsearch健康狀況
curl –XGET localhost:9200/_cluster/health?pretty=true
若一切正常,應該會得到以下訊息內容
curl: (3) Failed to convert –XGET to ACE; string contains a disallowed character
{
"cluster_name" : "graylog",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
安裝 Graylog Server
- 新增加 Graylog 來源庫
wget https://packages.graylog2.org/repo/packages/graylog-4.3-repository_latest.deb
sudo dpkg -i graylog-4.3-repository_latest.deb
- 安裝 Graylog 服務
sudo apt-get update && sudo apt-get install graylog-server graylog-integrations-plugins
- 設置Graylog管理員的密鑰
利用pwgen輔助工具產生密碼for server.conf中的password_secret
SECRET=$(pwgen -s 96 1)
sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf
- 查看
/etc/graylog/server/server.conf
內容,password_secret
參數如下
- 設定 Graylog 管理員 admin 的密碼,由於密碼使用
SHA
雜湊演算法,我們需要把明文密碼轉換為hash
值,然後賦值給root_password_sha2
參數。
例如:以下列命令產生密碼為 test1234
的 hash
值。
echo -n test1234 | sha256sum | awk '{print $1}'
- 以下是產生出來的畫面
- 將以上命令產出之
Hash
值,填入到server.conf
中root_password_sha2
參數。vim /etc/graylog/server/server.conf
- 設定 Graylog 服務,開啟設定檔
vim /etc/graylog/server/server.conf
這是設定 http
http_bind_address = 0.0.0.0:9000 (192.168.x.x為Graylog Server IP)
設定郵件
root_email = "[email protected]"
設定時區,不然收到的記錄會是國際標準時區
root_timezone = ROC # 重要,若不設定為ROC,則進來Log的timestamp會變成以UTC時間紀錄,
# 允許wildcard搜尋語法
allow_leading_wildcard_searches = true
- 設定 Graylog 啟動服務
啟重 Graylog 服務
systemctl start graylog-server.service
開機時自動啟重 Graylog 服務
systemctl enable graylog-server.service
登錄 Graylog Web
- 使用瀏覽器訪問 http://graylog_public_IP_domain:9000/,你應該可以看到一個登錄介面,使用帳號 admin 和前面設置的密碼登入。
設定rsyslog設定檔
- 如果是使用syslog回報的話,那這個設定檔要做個小設定,不然會無法正常回其他台設備回報先進到
rsyslog
設定檔
vim /etc/rsyslog.conf
- 新增加內容如下
移到最下面增加一行
這是用 TPC 來接收
#*.* @@remote-host:514
這是用 UDP 來接收
#*.* @127.0.0.1:10514 Prot號要跟Graylog裡面設定的要一樣
*.* @127.0.0.1:10514;RSYSLOG_SyslogProtocol23Format
- 重新啟動 rsyslog 服務
systemctl restart rsyslog
登入Graylog設定syslog服務
- 增加syslog服務
- 選擇你想要接收的服務,例:Syslog UDP
- 新增畫面,接收的名稱及Port號,填完之後存檔,就可以開始接收記錄了。
使用 NGINX 代理方式來連線
安裝 Nginx 官方提供的版本
# 安裝必要套件
sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
# 導入官方金鑰來確認該套件安全性
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
# 驗證現在的金鑰是否正確
gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
# 輸出的指紋如下 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <[email protected]>
# 想要使用的版本請自己選擇
# 來源庫新增加穩定版 nginx 服務
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
# 來源庫新增加主線 nginx 服務
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
# 安裝 nginx 服務
sudo apt update
sudo apt install nginx
# 啟動及自動啟動服務
systemctl start nginx ; systemctl enable nginx
- 新增給 Graylog 服務設定檔
vim /etc/nginx/conf.d/graylog.conf
server {
listen 80;
server_name 你的ip或網址;
#
access_log /var/log/nginx/graylog_access.log;
error_log /var/log/nginx/graylog_error.log;
#
fastcgi_buffers 64 4K;
#
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;
}
#
# location /graylog/ {
# 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/graylog/;
# rewrite ^/graylog/(.*)$ /$1 break;
# proxy_pass http://127.0.0.1:9000;
# }
}
- 啟動及自動啟動服務
systemctl start nginx ; systemctl enable nginx
- 再到 Graylog
vim /etc/graylog/server/server.conf
設定
http_publish_uri = http://192.168.x.x/
- 重啟 Graylog
systemctl restart graylog-server