Java (>= 8)
MongoDB 3.2
Elasticsearch 2.X
graylog 2.3.2
IP 192.168.0.210
centos 7.x
IP 192.168.0.210 (單機測試)
結構:mongodb + elasticsearch + graylog + nxlog + collector_sidecar
mongodb:存儲元數據,一般安裝好後不用其他設置
elasticsearch:存儲日誌
graylog:web界面,負責接收用戶輸入數據,展示elasticsearch裏的數據
nxlog ,collector_sidecar:日誌收集,傳送
jdk請自行安裝,這裏不再說明,可在下面地址下載相關版本:
1.安裝mongodb(這裏以3.2爲例)
vim /etc/yum.repos.d/mongodb-org-3.2.repo #添加yum源
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
yum install mongodb-org
添加系統服務及啓動
chkconfig --add mongod
systemctl daemon-reload
/sbin/chkconfig mongod on
systemctl start mongod.service
注意:這裏沒有進行mongodb的相關配置包括graylog連接
的配置,graylog啓動時會自行創建相關數據
2.elasticsearch安裝
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/elasticsearch.repo #加入以下
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
yum install -y elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
#修改成自己的信息,切記去除註釋後的內容前面不要有空格,不然可能會啓動失敗
cluster.name: graylog
# elasticsearch集羣名稱,若有多個集羣,可根據此屬性區分。
node.name: node-210 #集羣節點名稱,elasticsearch啓動時會自動創建,也可手動配置
network.host: 192.168.0.210 #設置綁定的ip地址
http.port: 9200 #設置對外服務的Http端口,默認是9200
discovery.zen.ping.unicast.hosts: ["192.168.0.210"]
#設置集羣中master集羣初始化列表,這個數組裏的機器將被自動發現加入集羣,多個用逗號隔開
添加至系統服務及啓動:
chkconfig --add elasticsearch
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl restart elasticsearch.service
3.graylog安裝(web界面)
$ sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.rpm
#獲取最新版本
$ sudo yum install -y graylog-server pwgen
#安裝最新版本,pwgen用於密碼加密生成
配置
vi /etc/graylog/server/server.conf
#配置graylog,修改以下幾個地方,其他地方保持默認,也可根據實際情況進行設置
password_secret =ZOauN2D9OknUXUDJbj4Lebb9zPB0SYfgcLELyo7r3yJK5r6Ep6CFfLco4hPy0tc3QEgYIDUP2RZcXdlCpZm43PvuIIyFuWPS
# 對密碼進行加鹽處理(就是密碼加鹽也就是密碼後面加上很長的一串字符串再進行加密),如 md5(md5(password)+salt)和SHA512(SHA512(password)+salt) 方式這裏使用pwgen隨機生成密碼:pwgen -N 1 -s 96
root_username = admin #登陸web界面用戶名,這裏去除前面註釋
root_password_sha2 =8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
#設置登陸web密碼,使用 sha256sum進行加密,可使用 echo -n 123456 | sha256sum 命令在系統中生成,這裏以123456爲例說明。
root_timezone = +08:00 #設置時區
rest_listen_uri = http://192.168.0.210:9000/api/ #地址更改成自己的ip,這裏以192.168.0.210爲例,用於接受Graylog Collector Sidecar發送的心跳信息,collectors也可以訪問次uri
rest_transport_uri = http://192.168.0.210:9000/api/
web_listen_uri = http://192.168.0.210:9000/ # graylog-web訪問地址
elasticsearch_hosts = http://192.168.0.210:9200 #elasticsearch地址,用於接入elasticsearch引擎
allow_leading_wildcard_searches = true #模糊通配,建議打開,不過比較消耗內存。
allow_highlighting = true #(運行查詢結果高亮) elasticsearch_shards = 1 (當前只安裝了一個elasticsearch)
elasticsearch_cluster_name = graylog #必須與elasticsearch設置相同
mongodb_uri = mongodb://localhost/graylog # MongoDB服務器身份驗證,使用默認即可,這裏不需要像mysql一樣導入表,只存儲原數據
$ sudo systemctl start graylog-server
$ sudo systemctl enable graylog-server
添加防火牆:
firewall-cmd --zone=public --add-port=9000/tcp --permanent
systemctl restart firewalld.service
4.Collector端與nxlog的部署
nxlog:
yum -y install libdbi #要求爲 libdbi >= 0.8.1
wget http://mirror.cnop.net/nxlog/linux/nxlog-ce-2.9.1716-1_rhel7.x86_64.rpm
rpm -ivh nxlog-ce-2.9.1716-1_rhel7.x86_64.rpm
gpasswd -a nxlog root
chown -R nxlog.nxlog /var/spool/collector-sidecar/nxlog
vim /etc/nxlog.conf #注意,本處定義log文件nxlog必須有讀權限,不然後面可能查詢不到日誌信息
########################################
# Modules #
########################################
<Extension gelf>
Module xm_gelf
</Extension>
<Input in>
Module im_file
File "/var/log/messages"
</Input>
<Output out>
Module om_udp
Host 192.168.0.210
Port 12201
OutputType GELF
</Output>
########################################
# Routes #
########################################
<Route r>
Path in => out
</Route>
以上代碼這裏截個圖,以防顯示不全:
systemctl restart nxlog
Collector :Graylog Collector Sidecar是一種用於採集日誌的輕量級配置管理系統,也稱爲後端,作爲守護進程運行。
wget http://mirror.cnop.net/Graylog/collector-sidecar/collector-sidecar-0.1.4-1.x86_64.rpm
或去官方下載最新:
https://github.com/Graylog2/collector-sidecar/releases
$ sudo rpm -ivh collector-sidecar-0.1.4-1.x86_64.rpm
$ sudo graylog-collector-sidecar -service install $ sudo systemctl start collector-sidecar
vim /etc/graylog/collector-sidecar/collector_sidecar.yml #根據情況修改
server_url: http://192.168.0.210:9000/api/
update_interval: 10
tls_skip_verify: false
send_status: true
list_log_files:
node_id: graylog-collector-sidecar #多臺機器請修改成不同id
collector_id: file:/etc/graylog/collector-sidecar/collector-id
cache_path: /var/cache/graylog/collector-sidecar
log_path: /var/log/graylog/collector-sidecar
log_rotation_time: 86400
log_max_age: 604800
tags:
- nginx
backends:
- name: nxlog
enabled: true
binary_path: /usr/bin/nxlog
configuration_path: /etc/graylog/collector-sidecar/generated/nxlog.conf
systemctl restart collector-sidecar
systemctl enable collector-sidecar
systemctl restart nxlog
/sbin/chkconfig nxlog on
參考:http://docs.graylog.org/en/2.3/pages/collector_sidecar.html
5.web訪問:
點擊 System ->Collectors
點擊 Create configuration
這裏任意輸入一個名稱,這裏以test爲例:
點擊名稱"test",進入配置界面:
設置output和input相關信息,與nxlog的配置文件相同:
點擊右側 Create Output ,選擇相關Type和名字,ip,端口等信息,
點擊右側 Create Input:
Type [NXLog] file input
Path to Logfile /var/log/messages
重啓客戶端的collector-sidecar:
systemctl restart collector-sidecar
設置web接收日誌:
system->inputs->Launch new input
選擇主機節點
設置標題
設置ip
設置端口(默認)
graylog web查看Collectors 是否運行正常:
http://192.168.0.210:9000/system/collectors
可手動 echo 推送一條數據到被監控的日誌文件中,最後回到主界面查看日誌:
其他常見:
nxlog日誌查看:
tail -f /var/log/graylog/collector-sidecar/nxlog.log
錯誤::
原因,請確定 elasticsearch 是否起來。
經上牽扯到代碼部分本網頁可能部分不能完全顯示,請參考附件:
http://www.cnop.net/uploadfile/2017/1129/20171129044810559.pdf
http://www.cnop.net/uploadfile/2017/1129/20171129050325594.docx
參考:
http://docs.graylog.org/en/2.3/
http://cocojoey.lofter.com/post/1eff2f40_10a6d448
https://www.cnblogs.com/wsl222000/p/6041835.html
轉載請註明出處: