ELK日志分析系统

Elastic Stack:Elasticsearch 、 Logstash和Kibana +Beats

(1)Elasticsearch是个开源分布式搜索引擎,用于搜集、分析、存储日志。
(2)Logstash用于搜集,分析,过滤日志的工具,将日志进行过滤,修改等操作发往Elasticsearch。
(3)Kibana是开源免费的可视化组件,将ElasticSearch提供的日志数据通过 Web 界面展示。
(4)Beats是轻量级日志采集器,Logstash对内存、CPU等资源消耗比较高,相比Beats所占系统的CPU和内存几乎可以忽略不计。
Beats的六个成员:Filebeat:日志文件;Metricbeat:指标;Packetbeat:网络数据;Winlogbeat:windows日志文件;Auditbeat:审计数据;Heartbeat:运行时间监控。

在这里插入图片描述

一、环境配置

(一)、虚拟机准备
节点IP及节点规划主机名
10.30.59.205:Elasticsearch+Kibana(主)elk-1
10.30.59.206:Elasticsearch+Logstash(数据)elk-2
10.30.59.207:Elasticsearch(数据)+Beatselk-3
(二)、三个节点修改主机名并关闭防火墙
205节点主机:hostnamectl set-hostname elk-1
206节点主机:hostnamectl set-hostname elk-2
207节点主机:hostnamectl set-hostname elk-3

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

(三)、配置hosts文件
三个节点配置相同

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(四)、三个节点全部安装openjdk1.8
yum install -y java-1.8.0-openjdk

安装完成检查jdk版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、安装Elasticserach

(一)在elk-1上下载rpm包
(1)yum install wget -y
(2)wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.rpm

在这里插入图片描述
用scp命令将rpm包拷贝在elk-2和elk-3的root目录下

1.scp elasticsearch-6.0.0.rpm root@elk-2:/root
2.scp elasticsearch-6.0.0.rpm root@elk-3:/root

在这里插入图片描述

(二)三个节点安装Elasticserach
rpm -ivh elasticsearch-6.0.0.rpm 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(三)、配置Elasticsearch

修改配置文件:/etc/elasticsearch/elasticsearch.yml

elk-1节点:对配置文件添加或修改
cluster.name: ELK                //配置es的集群名称
node.name: elk-1                //节点名
node.master: true              //指定该节点是否有资格被选举成为node
node.data: false               //指定该节点是否存储索引数据
network.host: 10.30.59.205      //设置绑定的ip地址
http.port: 9200                 //启动的es对外访问的http端口,默认9200
discovery.zen.ping.unicast.hosts: ["elk-1","elk-2","elk-3"]   //设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
elk-2节点:对配置文件添加或修改
cluster.name: ELK
node.name: elk-2
node.master: false
node.data: true             
network.host: 10.30.59.206    
http.port: 9200              
discovery.zen.ping.unicast.hosts: ["elk-1","elk-2","elk-3"]
elk-3节点:对配置文件添加或修改
cluster.name: ELK
node.name: elk-3
node.master: false
node.data: true             
network.host: 10.30.59.207 
http.port: 9200              
discovery.zen.ping.unicast.hosts: ["elk-1","elk-2","elk-3"]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(四)、启动服务并查看端口
systemctl start elasticsearch

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(五)、检测集群状态

节点elk-1上执行:curl '10.30.59.205:9200/_cluster/health?pretty'

[root@elk-1 ~]# curl '10.30.59.205:9200/_cluster/health?pretty'
{
  "cluster_name" : "elk",
  "status" : "green",     //为green则代表健康没问题,yellow或者red,则是集群有问题
  "timed_out" : false,                //是否有超时
  "number_of_nodes" : 3,              //集群中的节点数量
  "number_of_data_nodes" : 2,         //集群中data节点的数量
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

三、主节点部署Kibana

注意:只需elk-1节点部署

(一)下载Kibana的rpm包并安装Kibana
1.wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-x86_64.rpm
2.rpm -ivh kibana-6.0.0-x86_64.rpm

在这里插入图片描述

(二)配置Kibana

修改配置文件:/etc/kibana/kibana.yml

在这里插入图片描述

(三)启动服务并查看端口
1.systemctl start kibana
2.netstat -ntpl

在这里插入图片描述

(四)访问网页

在这里插入图片描述

四、数据节点Logstash部署

注意:只需elk-2 节点 部署

(一)下载并安装Logstash的rpm包
1.wget https://artifacts.elastic.co/downloads/logstash/logstash-6.0.0.rpm
2.rpm -ivh logstash-6.0.0.rpm

在这里插入图片描述

(二)配置logstash收集syslog日志

(1)新建配置文件:/etc/logstash/conf.d/syslog.conf
在配置文件中添加以下内容;

input {            //定义日志源
  syslog {       
    type => "system-syslog"      //定义类型
    port => 10514
  }
}
output {               //定义日志输出
  elasticsearch {
    hosts => ["10.30.59.206:9200"]
    index => "system-syslog-%{+YYYY.MM}"
  }
}

检查配置文件是否错误:

1.ln -s /usr/share/logstash/bin/logstash /usr/bin       //创建软连接,方便使用logstash命令
2.logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit
// --path.settings : 用于指定logstash的配置文件所在的目录
//-f : 指定需要被检测的配置文件的路径
//--config.test_and_exit : 指定检测完之后就退出

在这里插入图片描述
(2)修改配置文件:/etc/rsyslog.conf
在#### RULES下面增加一行

*.* @@10.30.59.206:10514

在这里插入图片描述
重启服务:systemctl restart rsyslog
(3)修改配置文件:/etc/logstash/logstash.yml

http.host: "10.30.59.206"

在这里插入图片描述

(三)修改日志权限
 1.ll /var/lib/logstash/  
 2.chown -R logstash /var/lib/logstash/

在这里插入图片描述

(四)启动服务并查看端口
1.systemctl start logstash
2.netstat -lntp

在这里插入图片描述

(五)在Kibana服务器上查看日志索引
curl '10.30.59.206:9200/_cat/indices?v'

在这里插入图片描述

(六)web界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、数据节点Logstash部署收集Nginx日志

注意:只需在elk-2节点操作

(一)下载并安装nginx的rpm包
1.wget http://rpmfind.net/linux/centos/7.9.2009/updates/x86_64/Packages/openssl-libs-1.0.2k-21.el7_9.x86_64.rpm
2.rpm -ivh openssl-libs-1.0.2k-21.el7_9.x86_64.rpm --force
3.wget  http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm
4.rpm -ivh nginx-1.16.1-1.el7.ngx.x86_64.rpm

在这里插入图片描述
在这里插入图片描述

(二)编辑Nginx配置文件

配置文件:/etc/logstash/conf.d/nginx.conf
配置文件中添加以下内容:

input {
  file {
    path => "/tmp/elk_access.log"
    start_position => "beginning"
    type => "nginx"
  }
}
filter {
    grok {
        match => { "message" => "%{IPORHOST:http_host} %{IPORHOST:clientip} - %{USERNAME:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\" %{NUMBER:response} (?:%{NUMBER:bytes_read}|-) %{QS:referrer} %{QS:agent} %{QS:xforwardedfor} %{NUMBER:request_time:float}"}
    }
    geoip {
        source => "clientip"
    }
}
output {
    stdout { codec => rubydebug }
    elasticsearch {
        hosts => ["10.30.59.206:9200"]
        index => "nginx-test-%{+YYYY.MM.dd}"
  }
}
(三)检查配置文件是否错误
logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/nginx.conf --config.test_and_exit

在这里插入图片描述

(四)编辑监听Nginx日志配置文件

配置文件:/etc/nginx/conf.d/elk.conf
在配置文件中添加以下内容

 server {
            listen 80;
            server_name elk.com;

            location / {
                proxy_pass      http://10.30.59.205:5601;
                proxy_set_header Host   $host;
                proxy_set_header X-Real-IP      $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            access_log  /tmp/elk_access.log main2;
        }
(五)修改Nginx日志配置文件

配置文件:/etc/nginx/nginx.conf
增加如下内容

log_format main2 '$http_host $remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$upstream_addr" $request_time';
(六)检测nginx配置文件并启动服务
1.nginx -t
2.systemctl start nginx

在这里插入图片描述

(七)重启Logstash,在Kibana服务器上查看日志索引
1.systemctl restart logstash
2.curl '10.30.59.206:9200/_cat/indices?v'

在这里插入图片描述

(八)web界面配置索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

五、数据节点Beats采集日志

注意:只需在elk-3节点操作

(一)下载并安装Beats
1.wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.0.0-x86_64.rpm
2.rpm -ivh filebeat-6.0.0-x86_64.rpm

在这里插入图片描述

(二)配置Beats 

配置文件:/etc/filebeat/filebeat.yml

#=========================== Filebeat prospectors =============================
  # Change to true to enable this prospector configuration.
#  enabled: false
  paths:
    - /var/log/elasticsearch/elk.log
#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  hosts: ["10.30.59.205:9200"]

在这里插入图片描述
在这里插入图片描述

(三)启动服务并在Kibana服务器上查看日志索引
1.systemctl start filebeat
2.curl '10.30.59.206:9200/_cat/indices?v'

在这里插入图片描述

(四)web界面配置索引

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值