Graylog收集Nginx日志

Graylog

日志监控系统

Graylog是一个开源的日志聚合、分析、审计、展现和预警工具。功能上和ELK类似,但又比ELK要简单,依靠着更加简洁,高效,部署使用简单的优势很快受到许多人的青睐。本篇文章主要介绍Graylog的安装部署以及如何使用Graylog收集分析Nginx日志 .....

一、安装部署

graylog采用单机部署,,采用最小化部署,架构如下

Graylog收集Nginx日志_第1张图片
img

Graylog收集Nginx日志_第2张图片
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

Graylog收集Nginx日志_第3张图片
img

最后一行添加action.auto_create_index: false

Graylog收集Nginx日志_第4张图片
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 

然后将生成的password_secret密码和root_password_sha2密码字符串,添加到配置文件/etc/graylog/server/server.conf中,分别在55行和66行

Graylog收集Nginx日志_第5张图片
img

然后修改web登陆接口,在104行,按照如下配置,默认端口9000,可以修改

Graylog收集Nginx日志_第6张图片
img

完成修改后保存,然后启动graylog

chkconfig --add graylog-serversystemctl daemon-reload 
systemctl enable graylog-server.servicesystemctl start graylog-server.service

然后可以使用浏览器登陆 http://ip:9000

默认管理员用户名:admin

密码:root_password_sha2配置设定的密码

Graylog收集Nginx日志_第7张图片
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的路径

Graylog收集Nginx日志_第8张图片
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”

Graylog收集Nginx日志_第9张图片
img

(2)选择Input源为Beats,并点击新建Input源

Graylog收集Nginx日志_第10张图片
img

(3)输入来源名,名字随便填写,这里为方便确认,填写为nginx,最后点击Save

Graylog收集Nginx日志_第11张图片
img

(4)配置完成后出现绿色的Running

Graylog收集Nginx日志_第12张图片
img
02配置sidecars

★ 日志源配置完成后开始配置收集日志的collector

★ 后端的collectors启动的时候会通过graylog的api来匹配自身的tags

★ 匹配tags之后会生成对应的filebeat的配置文件并开始收集日志

(1)点击“Cystem”--“Sidecars”

Graylog收集Nginx日志_第13张图片
img

(2)点击右上角“Configuration”进行配置

Graylog收集Nginx日志_第14张图片
img

(3)新建配置,也可以克隆已有的 Nginx 配置,点击 More actions,选择 Clone,命名格式:项目-filebeat-nginx

Graylog收集Nginx日志_第15张图片
img

(4)然后点击 edit,替换 tags 中的项目名称:tags: ["nginx", "项目"]

Graylog收集Nginx日志_第16张图片
img

(5)搜索刚刚的主机,running状态即可

Graylog收集Nginx日志_第17张图片
img
03配置Index Set

(1)新建Index Set。点击“System”--“Indices”--Create Index Set

注意:Max number of indices的值与刚刚新建配置中local后面的数字对应

Graylog收集Nginx日志_第18张图片
img
Graylog收集Nginx日志_第19张图片
img
04配置streams

(1)新建Streams。点击“Streams”--Create Stream。关联刚刚添加的日志,勾选 Remove matches from ‘All messages’ stream

Graylog收集Nginx日志_第20张图片
img

(2)点击 Manage Rules--Add Stream Rule,具体配置与刚刚配置参数里内容对应,保存。

Graylog收集Nginx日志_第21张图片
img
Graylog收集Nginx日志_第22张图片
img

(3)点击“Streams”查看,有日志写入表示日志对接成功。

你可能感兴趣的:(Graylog收集Nginx日志)