1. 程式人生 > >Graylog安裝配置指南

Graylog安裝配置指南

一、Garylog平臺相關元件簡介

  •  Graylog-server:Graylog接收來自後端各種應用程式的日誌並提供Web訪問介面
  •  Graylog Collector Sidecar:負責收集應用程式日誌併發送至Graylog-server 
  •  Elasticsearch:用於索引和儲存接收到的日誌,效能依賴記憶體及硬碟IO
  •  MongoDB:負責儲存 Graylog 自身的配置資訊,負載不高
  •  GeoIP_CityDatabase:通過Graylog來分析Ngnix日誌,獲取訪問者IP,然後使用GeoIP2資料庫分析IP的地理位置

二、Garylog和ELK對比

整體架構對比

  • Graylog:Graylog Collector Sidecar -> Graylog Server(封裝ElstaicSearch) -> Graylog Web
  • ELK:Logstash -> ElasticSearch -> Kibana

Graylog優點:

  • 部署維護簡單,上手難度小,一體化解決方案
  • 對比ES的json語法,搜尋語法相對簡單,搜尋結果可高亮顯示
  • 內建簡單告警可以通過網頁API或郵件提醒
  • 可直接匯出搜尋json檔案,方便開發呼叫rest api的搜尋指令碼

三、Garylog架構圖解

單節點安裝

適用於小型日誌收集,測試環境安裝,沒有冗餘,但安裝部署快速,本文采用此安裝方法

叢集安裝

適用於生產環境,在多個Graylog節點前增加負載均衡,ElasticSearch及MongoDB均採用叢集部署,負載均衡器可以檢查節點是否正常,如果節點連線斷開,可將節點移除

四、Graylog安裝及配置

1.jdk安裝

安裝版本為jdk1.8.0_161,安裝過程(略)

2.ElasticSearch安裝

安裝版本為elasticsearch-5.6.11,安裝外掛x-pack,管理工具elasticsearch-head

中文分詞外掛elasticsearch-analysis-ik-5.6.11,elasticsearch-analysis-pinyin-5.6.11

注意Graylog2.4對應的ElasticSearch版本不能高於5.x,否則無法安裝

注意Graylog2.3及之前版本對應的ElasticSearch版本不能高於4.x,否則無法安裝

(1)安裝elasticsearch-5.6.11

解壓elasticsearch-5.6.11.tar.gz,tar -zxf elasticsearch-5.6.11.tar.gz -C /usr/local

修改elasticsearch.yml配置如下

path.data:
       - /data/elasticsearch_1
       - /data/elasticsearch_2
       - /data/elasticsearch_3

path.logs: /data/elasticsearch_logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
xpack.security.audit.enabled: true
xpack.security.authc.accept_default_password: false
indices.store.throttle.max_bytes_per_sec: 150mb
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
http.cors.enabled: true
http.cors.allow-origin: "*"

Elasticsearch不能用root啟動,需要新建使用者elastic,切換到elastic下啟動

./elasticsearch -d

通過瀏覽器訪問http://10.10.10.1:9200/,返回elasticsearch相關資訊說明啟動成功

(2)安裝x-pack

bin/elasticsearch-plugin install x-pack,按提示點選下一步安裝

(3)安裝中文分詞器ik及pinyin

進入/usr/local/elasticsearch-5.6.11/plugins,解壓elasticsearch-analysis-ik-5.6.11.zip到ik目錄

進入/usr/local/elasticsearch-5.6.11/plugins,解壓elasticsearch-analysis-pinyin-5.6.11.zip到pinyin目錄,重啟elasticsearch

在瀏覽器輸入下面地址,如果出現分詞說明配置成功

http://192.168.0.100:9200/_analyze?analyzer=ik&pretty=true&text=helloworld,%E6%AC%A2%E8%BF%8E%E6%82%A8

(4)安裝管理工具elasticsearch-head

解壓elasticsearch-head-master.zip到/usr/local/下

chown -R elastic:elastic /usr/local/elasticsearch-head-master
cd /usr/local/elasticsearch-head-master
npm install && nohup npm run start &

訪問http://10.10.10.1:9100,如果出現以下頁面說明安裝成功

3.MongoDB安裝

使用阿里雲MongoDB版RDS叢集,版本3.4,官方建議採用最新的版本,安裝過程(略)

4.Graylog-server安裝

安裝版本為graylog-2.4.6

rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-2.4-repository_latest.rpm

通過yum安裝yum -y install graylog-server

修改配置檔案vim /etc/graylog/server/server.conf,修改內容如下:

使用pwgen生成 password_secret加密碼 pwgen -N 1 -s 96

U9oMoxRYJ0DB4K30SsQPhAeL7237aTTy0kSpLiEbrNNSqGp6sQaJO4zq9fI2I6FEVkpIomGNQMrssj8IQqmgIhTDNrUbQbnk

將上面這段祕鑰新增到password_secret =

使用echo -n 123456 | sha256sum生成登入密碼,賬號為admin

8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

將上面這段祕鑰新增到root_password_sha2 =

修改時區root_timezone = UTC改為root_timezone = Asia/Shanghai

修改web及api監聽地址

rest_listen_uri = http://127.0.0.1:9000/api/ 改為 http://0.0.0.0:9000/graylog/api/

rest_transport_uri= http://192.168.1.1:9000/api/ 改為 https://graylog.example.com/graylog/api/

web_listen_uri = http://127.0.0.1:9000/ 改為 http://0.0.0.0:9000/graylog/

rest_enable_cors = false

修改ElasticSearch連線地址

elasticsearch_hosts = http://elastic:[email protected]:9200

修改MongoDB連線地址

mongodb_uri = mongodb://graylog:[email protected]:3717/graylog

新增開機自啟動chkconfig --add graylog-server

新增graylog-server到系統服務systemctl enable graylog-server.service

搜尋結果高亮allow_highlighting = true

5.Graylog-collector-sidecar安裝

到collector-sidecar的git專案下https://github.com/Graylog2/collector-sidecar/releases下載最新的穩定版

安裝rpm -i collector-sidecar-0.0.9-1.x86_64.rpm

修改配置檔案collector_sidecar.yml,改server_url: http://10.10.10.1:9000/graylog/api/,新增tags

檢查配置檔案是否正確

graylog-collector-sidecar -configtest -c /etc/graylog/collector-sidecar/collector_sidecar.yml

安裝服務graylog-collector-sidecar -service install

啟動服務systemctl start collector-sidecar

6.配置Nginx

server_name graylog.example.com;
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/api;
            proxy_pass       http://127.0.0.1:9000/graylog/;
        }

location /graylog/api/ {
            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_pass       http://127.0.0.1:9000/graylog/api/;
        }

配置完成後,重啟nginx和graylog-server