ELK+filebeat+kafka部署 (2)filebeat部署

目录

部署filebeat

安装nginx

安装nginx

启动nginx 

​编辑 安装filebeat

1)上传软件包

2)解压缩软件 

3)修改配置文件

4)启动服务

 设置开机自启

logstash配置

1)配置 logstash文件

2)启动logstash

3)开机自启

 Kibana配置

1)创建索引

2)添加时间过滤器 

3)查看日志

​编辑 4)添加过滤器

1.添加类型为 log.file.path 的过滤器

 2.过滤cong12这台主机的nginx错误日志


1.部署filebeat

我们在主机(cong12)上部署nginx服务,然后安装filebeat,使用filebeat收集nginx日志文件

把收集的日志文件发送给 logstash 过滤日志,过滤完的日志保存到 elasticsearch,最终通过kibnan展示

点击可查看:ELK部署

安装nginx

可选rpm包安装和源码包的方式

Nginx官网下载地址:

http://nginx.org/en/download.html

安装nginx

上传软件包

安装依赖包:

yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel  pcre pcre-devel

 预编译:

 groupadd www
 useradd -g www www -s /sbin/nologin
 tar zxf nginx-1.10.3.tar.gz 
 cd nginx-1.10.3
[root@cong12 nginx-1.10.3]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www
[root@cong12 nginx-1.10.3]# make && make install
 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

启动nginx 

 nginx

查看端口:

访问nginx默认测试页

ELK+filebeat+kafka部署 (2)filebeat部署_第1张图片 安装filebeat

直接下载官方发布的二进制包的,可以访问 Download Logstash Free | Get Started Now | Elastic 页面找对应操作系统和版本,点击下载即可

1)上传软件包

2)解压缩软件 

 tar -zxvf filebeat-7.3.0-linux-x86_64.tar.gz -C /usr/local/

重命名:

mv /usr/local/filebeat-7.3.0-linux-x86_64 /usr/local/filebeat

3)修改配置文件

filebeat.yml配置主要有两个部分,一个是日志收集,一个是日志输出的配置

如想收集某些日志文件在 paths 下写日志存放的决定路径

vim /usr/local/filebeat/filebeat.yml
- type: log                  # type: log 读取日志文件的每一行(默认)
  enabled: true             #enabled: true 该配置是否生效,如果改为false,将不收集该配置的日志
  paths:                   # paths: 要抓取日志的全路径
    - /usr/local/nginx/logs/*.log    #添加收集httpd服务日志
    #- /var/log/*          #将该行注释掉
#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:        # Elasticsearch这部分全部注释掉,不直接把日志文件传输到ES
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]
#----------------------------- Logstash output --------------------------------
output.logstash:              #取消注释,把日志放到logstash中
  # The Logstash hosts
  hosts: ["192.168.30.11:5044"]  #取消注释,输出到Logstash的地址和端口
#logging.level: warning          #调整日志级别

注:把日志传输到 logstash 需让 logstash 监听 filebeat 5044端口

4)启动服务

cd /usr/local/filebeat/

[root@cong12 filebeat]# ./filebeat &  #后台运行

./filebeat -e -c filebeat.yml &

-e: 记录到stderr(标准输出(设备)文件,对应终端的屏幕),并禁用syslog 文件输出
-c: 指定用于Filebeat的配置文件, 如果未指定-c标志,则使用默认配置文件filebeat.yml

查看服务进程

ps -ef | grep filebeat

 设置开机自启

echo "cd /usr/local/filebeat/ && ./filebeat -e -c filebeat.yml & " >> /etc/rc.local
chmod +x /etc/rc.local 

logstash配置

logstash有三个插件:input (接收)、filter(过滤)、output(传输)

1)配置 logstash文件

input{
    beats {    #从Elastic beats接收事件
        codec => plain{charset => "UTF-8"} #设置编解码器为utf8
        port => "5044"   #要监听的端口  
    }
}
output {
  stdout { #标准输出,把收集的日志在当前终端显示,方便测试服务连通性
      codec => "rubydebug"    #编解码器为rubydebug
  }
  elasticsearch {                #把收集的日志发送给elasticsearch
      hosts => [ "192.168.30.11:9200" ]  # elasticsearch的服务器地址
      index => "nginx-logs-%{+YYYY.MM.dd}" #创建索引
  }
}

2)启动logstash

logstash  -f /usr/local/logstash-7.3.0/config/http_logstash.conf

如果报错:

ELK+filebeat+kafka部署 (2)filebeat部署_第2张图片

这是因为我这台主机已经启动了 logstash实例使用的数据目录,有两种方式解决:

1.杀死之前运行的进程,将 /etc/rc.local 文件下设置的开机自启删除。

2.如要运行多个实例 ,使用选项 --path.data=/dir为要启动的logstash实例指定一个路径

我采用的第二种方法:

logstash  -f /usr/local/logstash-7.3.0/config/http_logstash.conf --path.data=/tmp

ELK+filebeat+kafka部署 (2)filebeat部署_第3张图片

后台运行:

nohup logstash  -f /usr/local/logstash-7.3.0/config/http_logstash.conf --path.data=/tmp &

3)开机自启

 echo "nohup logstash -f /usr/local/logstash-7.3.0/config/http_logstash.conf &" >> /etc/rc.local

 Kibana配置

1)创建索引

访问 Kibana: 192.168.30.11:5601

ELK+filebeat+kafka部署 (2)filebeat部署_第4张图片

 ELK+filebeat+kafka部署 (2)filebeat部署_第5张图片

ELK+filebeat+kafka部署 (2)filebeat部署_第6张图片

2)添加时间过滤器 

ELK+filebeat+kafka部署 (2)filebeat部署_第7张图片

ELK+filebeat+kafka部署 (2)filebeat部署_第8张图片

3)查看日志

 打开新建的索引去查看收集到的日志,可以通过刚才添加的时间过滤器查看你想要的看到的日志

ELK+filebeat+kafka部署 (2)filebeat部署_第9张图片 4)添加过滤器

我们可以在搜到的日志添加过滤器,过滤出我们想要的内容,比如,我想看下nginx的错误日志,那么添加一个log.file.path为/usr/local/nginx/logs/error.log的过滤器,如果我们监控的服务器比较多,我可以查看特定的主机的nginx错误日志。

1.添加类型为 log.file.path 的过滤器

ELK+filebeat+kafka部署 (2)filebeat部署_第10张图片

 ELK+filebeat+kafka部署 (2)filebeat部署_第11张图片

 2.过滤cong12这台主机的nginx错误日志

按照主机名做过滤,过滤主机的字段名称叫agent.hostname,添加agent.hostname为cong12的过滤器,所有的过滤器字段在显示的日志上面可以看到。

ELK+filebeat+kafka部署 (2)filebeat部署_第12张图片

 ELK+filebeat+kafka部署 (2)filebeat部署_第13张图片

 

到此 ELK+filebeat 部署完成 

你可能感兴趣的:(日志分析系统ELK,elk,分布式)