ELK日志收集分析系统搭建笔记之nginx篇

nginx篇

这一篇记录了logstash读取nginx日志的搭建与配置。
往往我们的nginx和logstash都不在同一台服务器上,logstash的file通道是读取不到远程的日志文件的,但是我们又不能每台nginx上都安装一个logstash,因为logstash太笨重了。根据官网提供的方案,采用filebate,在每一台nginx服务器上安装一个filebate服务,通过filebate发送日志到logstash,logstash只有几M而已,相比logstash,轻多了。

1.下载FilebateRPM包

下载地址:https://www.elastic.co/cn/downloads/past-releases
选择对应产品与版本,选中Filebate,版本因为ES是5.6.14,所以Filebate也选择5.6.14
ELK日志收集分析系统搭建笔记之nginx篇_第1张图片
选择好对应的版本之后,点击Downloads,进入之后找到RPM, 然后右键复制链接地址接着进入服务器,找一个你想存放RPM包的目录,然后输入命令:wget RPM包的链接地址,然后下载。

2.安装Filebate

下载完成,找到RPM包,输入命令:rpm -ivh logstash-5.6.14-x86_64.rpm ,接着等待安装完成。

3.配置Filebate

配置如图
ELK日志收集分析系统搭建笔记之nginx篇_第2张图片

filebeat.prospectors

- input_type: log

  paths:
    - /var/log/nginx/access.log
	
  json.keys_under_root: true
  json.overwrite_keys: true

  
output.logstash:
  hosts: ["1.1.1.11:9610"]

参数解释:
	input_type 表示类型,log表示读取文件,还有Redis,UDP等类型
	paths 表示读取文件的目录,可以指定到具体路径,也可以指定相对路径,或者多个不同目录下的文件,例如:
		 paths:
		    - /var/log/messages
		    - /var/log/*.log
	json 使Filebeat可以解码构造为JSON消息的日志
		json.keys_under_root 默认情况下,解码的JSON位于输出文档中的“json”键下。如果启用此设置,则会将键复制到输出文档的顶层。默认值为false。	    
		json.overwrite_keys 如果keys_under_root启用此设置,则解码的JSON对象中的值将覆盖Filebeat通常添加的字段(类型,源,偏移等),以防发生冲突。
	output.logstash 表示输出到logstash,也可以输出到elasticsearch
		hosts 表示logstash地址
备注:参数的空格和缩进不能更改,一定要按照配置文件的格式来,除了两个json参数是新增加的,其他参数配置文件都有,json参数和paths平级。更多参数的配置与解释请参考 [Filebate官方文档](https://www.elastic.co/guide/en/beats/filebeat/current/index.html)

filebate.yml配置好了,保存退出

4.配置nginx日志log_formate格式

对nginx日志输出到es进行保存,没有要求每个参数占用一个fieIds的,第四步可以忽略,并且第三步,filebate的配置文件中的两个json参数也不用写。
nginx日志json化,如图:
ELK日志收集分析系统搭建笔记之nginx篇_第3张图片
nginx日志非json化,如图:
ELK日志收集分析系统搭建笔记之nginx篇_第4张图片
非json化,日志内容会全部放到一个fields上。好了,进入正题,nginx日志json化,只需要修改log_format,access_log两个参数就行了,如图:
ELK日志收集分析系统搭建笔记之nginx篇_第5张图片
nginx.conf下载地址,提取码:9la6
log_format设置好了,修改access_log参数,请参考上图中,进行修改。
修改好了,我们重启nginx。

5.编写nginx的logstash脚本

如图:
ELK日志收集分析系统搭建笔记之nginx篇_第6张图片

input {
    beats {
        port => 9610 
    }
}

output {
    elasticsearch {
        hosts => ["118.25.151.157:9200"]
		index => "%{[nginx-index]}:%{+YYY-MM-dd}"
		user => "elastic"
		password => "changeme"
    }
}
参数解释:
	input 代表输入
		bates 是filebate通道
			prot 是filebate的通信端口,在filebate的配置文件中定义
	output  代表输出
		elasticsearch  代表输出到es
				index 代表输出到es的索引,索引前半部分取nginx.conf中配置的索引,后半部分采用日期

脚本编写好了,用命令进行检查,看看脚本是否正确。按照Logstash篇的步骤进行脚本检查。确认脚本没有问题之后,重启logstash。

6.启动filebate

输入命令:systemct start filebate.service 。启动filebate,确定启动成功好,访问nginx,让nginx产生新的日志,然后看看日志是否通过filebate传输到logstash去了,然后进入kibana,根据索引查看nginx日志。如何使用kibana根据索引查看日志,请看kibana篇

7. filebate相关信息

filebate (5.6.14)
	端口号
		9610
	kibana日志
		/var/log/filebate/
	安装
		/usr/share/filebate/
	启动
		systemctl start filebate.service
	重启
		systemctl restart filebate.service
	配置文件
		/etc/filebate/	

### 上述的相关信息只代表rpm包的安装方式


丶clearwater

你可能感兴趣的:(liunx,ELK)