Graylog收集Nginx日志
Graylog
日志监控系统
Graylog是一个开源的日志聚合、分析、审计、展现和预警工具。功能上和ELK类似,但又比ELK要简单,依靠着更加简洁,高效,部署使用简单的优势很快受到许多人的青睐。本篇文章主要介绍Graylog的安装部署以及如何使用Graylog收集分析Nginx日志 .....
一、安装部署
graylog采用单机部署,,采用最小化部署,架构如下
img img从上图可以看出大体上包括Elasticsearch、MongoDb和Graylog三部分。
▲ Graylog 提供 graylog 对外接口 ,Web界面,CPU
▲ Elasticsearch 日志文件的持久化存储和检索, IO
▲ MongoDB 只是存储一些 Graylog 的配置
安装Graylog应用程序需要下面的条件
[CentOS release 6.8 (Final)] Some modern Linux distribution (Debian Linux, Ubuntu Linux, or CentOSrecommended)
[elasticsearch-5.6.9] Elasticsearch 2.3.5 or later
[ mongodb-linux-x86_64-rhel62-3.6.5]MongoDB 2.4 or later (latest stable version is recommended)
[graylog-2.4.4]Oracle Java SE 8 (OpenJDK 8 also works; latest stable update is recommended)
安装之前需要先关闭selinux,清空iptables规则和关闭防火墙。准备好了就开始吧~
setenforce 0sed -i"s/SELINUX=enforcing/SELINUX=disabled/g"
/etc/selinux/configiptables -Fservice iptables savesystemctl disabled
firewalldsystemctl stop firewalld
1、先决条件
以最小的服务器设置为基础将需要这些额外的包:
yum install java-1.8.0-openjdk-headless.x86_64 #安装java软件包
yum install epel-release #安装epel软件仓库
yum install pwgen #安装pwgen生成密码
2、安装mongodb
首先创建软件仓库文件
/etc/yum.repos.d/mongodb-org.repo
使用以下内容添加存储库文件
touch /etc/yum.repos.d/mongodb-org.repocat
<< EOF >/etc/yum.repos.d/mongodb-org.repo
[mongodb-org-4.0]name=MongoDB
Repositorybaseurl=https://repo.mongodb.org/yum/RedHat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1 enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
配置完成后,可以通过yum安装最新版本的MongoDB
yum install mongodb-org
然后配置MongoDB作为服务开机启动
chkconfig --add mongodsystemctl daemon-reloadsudo
systemctl enable mongod.servicesystemctl start mongod.service
3、安装Elasticsearch
首先安装Elastic GPG密钥,然后添加包含以下内容的存储库文件中,graylog3.0采用的是elasticsearch6.x版本
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchtouch/etc/yum.repos.d/elasticsearch.repocat
<< EOF
>/etc/yum.repos.d/elasticsearch.repo[elasticsearch6.x]
name=Elasticsearch repository for 6.x
packagesbaseurl=https://artifacts.elastic.co/packages/oss-6.x/yumgpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md
EOF
随后安装最新版本。
yum install elasticsearch-oss
修改elasticsearch的配置文件
vim /etc/elasticsearch/elasticsearch.yml
在16行修改cluster.name改为graylog
img最后一行添加action.auto_create_index: false
img修改配置后,可以启动Elasticsearch:
chkconfig --add elasticsearchsystemctl daemon-reload
systemctl enable elasticsearch.servicesystemctl restart elasticsearch.service
4、安装Graylog
现在使用以下命令安装Graylog存储库配置和Graylog本身:
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpm
yum install graylog-server
安装完成后,首先生成password_secret
密码
pwgen -N 1 -s 96
生成root_password_sha2
密码 (后续Web登录时所需要使用的密码)
echo -n"Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d " " -f1
然后将生成的password_secret
密码和root_password_sha2
密码字符串,添加到配置文件/etc/graylog/server/server.conf中,分别在55行和66行
然后修改web登陆接口,在104行,按照如下配置,默认端口9000,可以修改
img完成修改后保存,然后启动graylog
chkconfig --add graylog-serversystemctl daemon-reload
systemctl enable graylog-server.servicesystemctl start graylog-server.service
然后可以使用浏览器登陆 http://ip:9000
默认管理员用户名:admin
密码:root_password_sha2配置设定的密码
img登录成功!Graylog配置搭建完成,接下来就可以把想要监控的日志接入进来了。
二、Graylog配置
1、安装rsyslog 应用 一般操作系统已经安装过不须要重新安装
yum install rsyslog
2、配置rsyslog 服务端
vi /etc/rsyslog.conf增加相关配置
$ModLoad imuxsock # provides support for local system
logging (e.g. via logger command)$ModLoad imklog # provides kernel logging
support (previously done by rklogd)$ModLoad imudp #开启支持upd的模块
$UDPServerRun 514 #允许接收udp 514的端口传来的日志
ModLoad imtcp #开启支持tcp的模块
$InputTCPServerRun 514 #允许接收tcp 514的端口传来的日志
local5.* /var/log/history.log
vi /etc/bashrc export HISTTIMEFORMAT= "%F %T whoami "
export PROMPT_COMMAND= '{ command=$(history 1 | { read x y; echo $y; });
logger -p local5.notice -t bash -i
"user=$USER,ppid=$PPID,from=$SSH_CLIENT,pwd=$PWD,command:$command"; }'
重启rsyslog 服务systemctl restart rsyslog
查看服务是否正常启动
tail -n 200 -f /var/log/history.log
3、安装部署 graylog-sidecar filebeat 客户端
wget https://live400-storage.oss-cn-hangzhou.aliyuncs.com/source/filebeat/filebeat-6.6.1-x86_64.rpm
wget https://live400-storage.oss-cn-hangzhou.aliyuncs.com/source/graylog/graylog-sidecar-1.0.0-1.x86_64.rpm
yum localinstall filebeat-6.6.1-x86_64.rpm
yum localinstall graylog-sidecar-1.0.0-1.x86_64.rpm
4、配置graylog-sidecar客户端,编辑sidecar.yml配置文件,注意修改tags和api的路径
img# list_log_files 参考,配置需要收集日志的文件目录
# list_log_files:
# - "/var/log"
- "/data/logs/nginx" #本次配置
# - "/data/logs/mysql"
# - "/data/logs/tomcat"
安装进程服务graylog-sidecar -service install
启动graylog 日志收集服务
service graylog-sidecar start
三、Graylog前端界面配置
01打开graylog的web界面,配置input来源
(1)点击“system”--“input”
img(2)选择Input源为Beats,并点击新建Input源
img(3)输入来源名,名字随便填写,这里为方便确认,填写为nginx,最后点击Save
img(4)配置完成后出现绿色的Running
img02配置sidecars
★ 日志源配置完成后开始配置收集日志的collector
★ 后端的collectors启动的时候会通过graylog的api来匹配自身的tags
★ 匹配tags之后会生成对应的filebeat的配置文件并开始收集日志
(1)点击“Cystem”--“Sidecars”
img(2)点击右上角“Configuration”进行配置
img(3)新建配置,也可以克隆已有的 Nginx 配置,点击 More actions,选择 Clone,命名格式:项目-filebeat-nginx
img(4)然后点击 edit,替换 tags 中的项目名称:tags: ["nginx", "项目"]
img(5)搜索刚刚的主机,running状态即可
img03配置Index Set
(1)新建Index Set。点击“System”--“Indices”--Create Index Set
注意:Max number of indices的值与刚刚新建配置中local后面的数字对应
img img04配置streams
(1)新建Streams。点击“Streams”--Create Stream。关联刚刚添加的日志,勾选 Remove matches from ‘All messages’ stream
img(2)点击 Manage Rules--Add Stream Rule,具体配置与刚刚配置参数里内容对应,保存。
imgimg
(3)点击“Streams”查看,有日志写入表示日志对接成功。