Graylog 2.4 安裝及設定
這套由 Jason Cheng 大大所介紹的開源軟體,Graylog Server集中管理網路裝置Log記錄及分析。
安裝環境:
系統:CentOS 7
第一步:更新CentOS 7系統
系統更新:
yum update -y
安裝pwgen、perl-Digest-SHA輔助工具,設定Graylog時用來生成密碼
yum install epel-release -y
yum install pwgen perl-Digest-SHA -y
第二步:安裝Java
Elasticsearch執行於JVM上,因此需安裝Java 7 update 55或以上版本,並設定有JAVA_HOME環境變數。
- 早期的Java 7版本存在造成資料毀損與遺失的bug,Elasticsearch在啟動時會檢查過期的Java版本並無法成功啟動。
- l建議使用Java 1.8.0_131以上,因最近Java的重要update會提升JVM的記憶體使用效能。
(Elasticsearch官方建議不要使用JDK9,請使用JDK8) - 使用JVM Server mode (x64版本為server mode),將更加有效的利用記憶體
安裝指令如下:
yum install java-1.8.0-openjdk-headless.x86_64
第三步:安裝MongoDB
-
建立MongoDB源
# vim /etc/yum.repos.d/mongodb-org-3.6.repo
加入以下內容
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
-
安裝MongoDB
# yum install -y mongodb-org
-
啟動MongoDB
# systemctl start mongod
-
設定開機啟動MongoDB
# systemctl enable mongod
第四步:安裝Elasticsearch
Graylog 2.4不支援Elasticsearch 6.x版,故安裝5.x版。
-
安裝Elasticsearch GPG密鑰
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
-
建立Elasticsearch源
# vim /etc/yum.repos.d/elasticsearch.repo
加入以下內容[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
-
安裝Elasticsearch
# yum install -y elasticsearch
-
修改elasticsearch設定檔
# vim /etc/elasticsearch/elasticsearch.yml
### 設定cluster.name為garylog ###
cluster.name: graylog
-
啟動elasticsearch
# systemctl start elasticsearch
-
設定開機啟動elasticsearch
# systemctl enable elasticsearch
-
檢查Elasticsearch健康狀況
# curl –XGET localhost:9200/_cluster/health?pretty=true
若一切正常,應該會得到以下訊息內容--
{
"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 RPM軟件包
# rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.4-repository_latest.rpm
-
安裝graylog-server
# yum install -y graylog-server
-
設置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
-
設定Graylog管理員admin的密碼
由於密碼使用SHA雜湊演算法,我們需要把明文密碼轉換為hash值,然後賦值給root_password_sha2參數。
例如,以下列命令產生密碼為test1234的hash值。
# echo -n test1234 | sha256sum | awk '{print $1}'
將以上命令產出之Hash值,填入到server.conf中root_password_sha2參數.
# vi /etc/graylog/server/server.conf
-
設定Graylog Web接口和Server的溝通方式
預設Graylog只聽localhost,故若需以Web介面進行管理,須設定以下參數---
# vi /etc/graylog/server/server.conf
rest_listen_uri = http://192.168.x.x:9000/api/ (192.168.x.x為Graylog Server IP)
web_listen_uri = http://192.168.x.x:9000/
elasticsearch_cluster_name = graylog (需與elasticsearch設定檔的cluster.name參數同)
-
設定Graylog其他參數
# vim /etc/graylog/server/server.conf
# The email address of the root user.
# Default is empty
#root_email = ""
root_email = "[email protected]"
# The time zone setting of the root user. See http://www.joda.org/joda-time/timezones.html for a list of valid time zones.
# Default is UTC
#root_timezone = UTC
# 重要,若不設定為ROC,則進來Log的timestamp會變成以UTC時間紀錄,
# 會影響到搜尋結果
root_timezone = ROC
# 允許wildcard搜尋語法
# 例如 AND EventID:4771 AND NOT TargetUserName:*?
# 新增下列設定
allow_leading_wildcard_searches = true
-
啟動graylog-server
# systemctl start graylog-server.service
-
設定開機啟動graylog-server
# systemctl enable graylog-server.service
第六步:登錄Graylog Web
使用瀏覽器訪問 http://graylog_public_IP_domain:9000/
你應該可以看到一個登錄介面,使用帳號 admin 和前面設置的密碼登入。
第七步:設定rsyslog設定檔
如果是使用syslog回報的話,那這個設定檔要做個小設定,不然會無法正常回其他台設備回報
- 先進到rsyslog設定檔
#vim /etc/rsyslog.conf
修改內容如下:
修改前
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
修改後
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
移到最下面增加一行
#*.* @@remote-host:514
#*.* @127.0.0.1:10514 Prot號要跟Graylog裡面設定的要一樣而且不能設定成514不然會無法收到記錄
*.* @127.0.0.1:10514;RSYSLOG_SyslogProtocol23Format
然後重改rsyslog服務
systemctl restart rsyslog
第八步:登入Graylog設定syslog服務
1.增加syslog服務
2.選擇你想要接收的服務,例:Syslog UDP
3.新增畫面,接收的名稱及Port號,填完之後存檔,就可以開始接收記錄了。