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安装配置指南

Graylog优点:

  • 部署维护简单,上手难度小,一体化解决方案
  • 对比ES的json语法,搜索语法相对简单,搜索结果可高亮显示
  • 内置简单告警可以通过网页API或邮件提醒
  • 可直接导出搜索json文件,方便开发调用rest api的搜索脚本

三、Garylog架构图解

单节点安装

适用于小型日志收集,测试环境安装,没有冗余,但安装部署快速,本文采用此安装方法

Graylog安装配置指南

集群安装

适用于生产环境,在多个Graylog节点前增加负载均衡,ElasticSearch及MongoDB均采用集群部署,负载均衡器可以检查节点是否正常,如果节点连接断开,可将节点移除

Graylog安装配置指南

四、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,如果出现以下页面说明安装成功

Graylog安装配置指南

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