Graylog是一个优秀的日志平台,这几天因为需要使用他,所以在这里记录一下安装和使用。
Graylog3.2版本文档:https://docs.graylog.org/en/3.2/index.html
准备工作
系统环境:Ubuntu18、docker、docker-compose
安装
我选择了docker的安装方式,Graylog需要mongo、elasticsearch的支持,我的docker-compose.yml如下,端口根据需要自行调整:
version: '2'
services:
# MongoDB
mongodb:
image: mongo:latest
container_name: graylog-mongodb
ports:
- 27027:27017
# Elasticsearch
elasticsearch:
image: elasticsearch:6.7.0
container_name: graylog-elasticsearch
environment:
- http.host=0.0.0.0
- transport.host=localhost
- network.host=0.0.0.0
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
ports:
- 9200:9200
- 9300:9300
# Graylog
graylog:
image: graylog/graylog:3.2
container_name: graylog
environment:
# 自行修改
- GRAYLOG_PASSWORD_SECRET=somepasswordpepper
# Password: admin
- GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
# 提供给外部web端访问,我搭建Graylog的服务器IP是192.168.1.104,因为9000端口已经被占用了,所以这里我用了9001
- GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.1.104:9001/
links:
- mongodb:mongo
- elasticsearch
depends_on:
- mongodb
- elasticsearch
ports:
# Graylog web interface and REST API
- 9001:9000
# Syslog TCP
- 514:514
# Syslog UDP
- 514:514/udp
# GELF TCP
- 12201:12201
# GELF UDP
- 12201:12201/udp
# 5044 TCP
- 5044:5044
# 5044 UDP
- 5044:5044/udp
访问Graylog的Web端
Graylog提供了Web的操作界面,安装完成之后即可在浏览器通过ip+端口访问:http://192.168.1.104:9001,效果如下:
收集Nginx日志
服务器上的Graylog到这里已经搭建完成了。
Graylog收集日志的方式有很多种,因为篇幅有限,所以在这里以通过Graylog Collector Sidecar收集Nginx日志为例:
- 创建server_api_token
- Nginx所在服务器安装并配置:Graylog Collector Sidecar,它会与Graylog服务器通信,拉取配置信息,然后读取本地日志并上传
- Nginx所在服务器安装:filebeat(我使用的它,可以自行选择其它的)
- 配置Graylog的相关设置,Nginx服务器Graylog Collector Sidecar的一些设置是在这里完成的
- 配置完成,Graylog Collector Sidecar上传日志
创建server_api_token
下一个步骤在配置sidecar的时候会用到该token,文档在这:http://docs.graylog.org/en/3.0/pages/configuration/rest_api.html#creating-and-using-access-token
首先在Web管理界面,进入System/Authentication,选择左边的Users,在列表中点击按钮:Edit tokens
在界面中填入值,并生成Token,拷贝Token的值需要点击按钮:Copy to clipboard
server_api_token到此创建完成!
安装Graylog Collector Sidecar
在Nginx所在服务器安装,安装的时候注意版本问题:https://docs.graylog.org/en/3.2/pages/sidecar.html#installation。
下载地址:https://github.com/Graylog2/collector-sidecar/releases
我用的版本是:graylog-sidecar_1.0.1-1_amd64.deb。
安装:sudo dpkg -i graylog-sidecar_1.0.1-1_amd64.deb
安装完成之后,默认的配置文件在这里:/etc/graylog/sidecar/sidecar.yml,我们需要修改他,具体文档:https://docs.graylog.org/en/3.2/pages/sidecar.html#sidecar-configuration,我的配置文件如下:
server_url: http://192.168.1.104:9001/api/
server_api_token: "123456" ## 这就是上面步骤获取到的那个server_api_token
node_id: nginxUbuntuPc
update_interval: 10
tls_skip_verify: true
send_status: true
list_log_files: []
cache_path: /var/cache/graylog-sidecar
log_path: /var/log/graylog-sidecar
log_rotation_time: 86400
log_max_age: 604800
tags: nginx_beats_input ## 这个值随意输入一个
backends:
- name: nxlog
enabled: false
binary_path: /usr/bin/nxlog
configuration_path: /etc/graylog/collector-sidecar/generated/nxlog.conf
- name: filebeat
enabled: true
binary_path: /usr/bin/filebeat
configuration_path: /etc/graylog/collector-sidecar/generated/filebeat.yml
配置完成,保存退出,启动:
sudo /usr/bin/graylog-sidecar -service install
## 先安装了filebeat再启动,也就是先执行下一步
sudo systemctl start graylog-sidecar
查看运行日志:
tail -f /var/log/graylog-sidecar/sidecar.log
安装filebeat
在Nginx所在服务器安装,文档:https://docs.graylog.org/en/3.2/pages/sidecar.html#install-collectors
下载地址:https://www.elastic.co/cn/downloads/beats/filebeat
安装:sudo dpkg -i filebeat-7.6.1-amd64.deb
配置Graylog
1.首先在Web管理界面,进入System/Inputs,进行如下操作:
接着填入参数,端口根据需要进行修改,然后保存即可:
如何上面配置没问题,那么会看到它处于运行状态:
2.Web界面进入System/Sidecars,进行如下操作:
Collector根据需要这里选择了:filebeat on Linux
paths处填写你Nginx服务器上日志所在位置
hosts处填写Graylog服务器的IP+端口(上面System/Inputs时候填入的端口):
点击Create即可!
3.继续在System/Sidecars界面:
如果前面的Graylog Collector Sidecar配置正确,并启动成功了,那么这里是能看见下面列表的。如果什么都没有,根据错误信息检查配置并重新启动Graylog Collector Sidecar。
选择列表里面的filebeat,然后Configure选择刚才建立的Collectors Configuration。这个步骤我已经操作过了,所以看见的效果有一点不一样:
配置完成,查看日志
配置已经完成了,接下来启动Nginx,并尝试访问Nginx让他生成日志,接着在Graylog查看上传的日志:
到此基本完成Nginx的日志简单收集,Graylog还有很多强大的功能,后续更新。。。。