ELK日志收集平台部署(4)

发布时间:2023年12月26日

前文链接:ELK日志收集平台部署(1)-CSDN博客

????????????????? ELK日志收集平台部署(2)-CSDN博客

????????????????? ELK日志收集平台部署(3)-CSDN博客

?ElasticSearch、Logstash和Kiabana三个开源工具中,我们已经部署好了??ElasticSearch?和Kiabana,接下来部署Logatash。

系统类型:Centos7

节点IP:192.168.246.231 E

软件版本:jdk-8u121-linux-x64.tar.gz、logstash-6.5.4.tar.gz

1.安装配置Logstash

Logstash运行同样依赖jdk,本次为节省资源,故将Logstash安装在了192.168.244.231节点。

1)安装

[root@es-2-zk-log ~]# tar xvzf logstash-6.5.4.tar.gz -C /usr/local/

2)配置

创建目录,我们将所有input、filter、output配置文件全部放到该目录中。

1.安装nginx:
[root@es-2-zk-log ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

[root@es-2-zk-log ~]# yum install -y nginx
将原来的日志格式注释掉定义成json格式:
[root@es-2-zk-log conf.d]# vim /etc/nginx/nginx.conf
?

log_format  json '{"@timestamp":"$time_iso8601",'
                          '"@version":"1",'
                          '"client":"$remote_addr",'
                          '"url":"$uri",'
                          '"status":"$status",'
                          '"domain":"$host",'
                          '"host":"$server_addr",'
                          '"size":$body_bytes_sent,'
                          '"responsetime":$request_time,'
                          '"referer": "$http_referer",'
                          '"ua": "$http_user_agent"'
              '}';

2.引用定义的json格式的日志:


access_log? /var/log/nginx/access_json.log? json;


[root@es-2-zk-log ~]# systemctl start nginx
[root@es-2-zk-log ~]# systemctl enable nginx

[root@es-2-zk-log ~]# mkdir -p /usr/local/logstash-7.13.2/etc/conf.d


[root@es-2-zk-log ~]# cd /usr/local/logstash-6.5.4/etc/conf.d/????? ?
[root@es-2-zk-log conf.d]# vim input.conf?????? #---在下面添加

input{                        #让logstash可以读取特定的事件源。
     file{                                       #从文件读取
   path => ["/var/log/nginx/access_json.log"]        #要输入的文件路径
   type => "shopweb"                       #定义一个类型,通用选项.
}

}

[root@es-2-zk-log conf.d]# vim output.conf
?

output{           #输出插件,将事件发送到特定目标
    elasticsearch {            #输出到es
    hosts => ["192.168.246.234:9200","192.168.246.231:9200","192.168.246.235:9200"]       #指定es服务的ip加端口
    index => ["%{type}-%{+YYYY.MM.dd}"]     #引用input中的type名称,定义输出的格式
    }
}

启动:
[root@es-2-zk-log conf.d]# cd /usr/local/logstash-7.13.2/
[root@es-2-zk-log logstash-7.13.2]# nohup bin/logstash -f etc/conf.d/? --config.reload.automatic &

查看日志出现:

[root@es-2-zk-log logstash-7.13.2]# tail -f nohup.out [2019-08-04T01:39:24,671][INFO ][logstash.outputs.elasticsearch] Attempting to install template {:manage_template=>{"template"=>"logstash-*", "version"=>60001, "settings"=>{"index.refresh_interval"=>"5s"}, "mappings"=>{"_default_"=>{"dynamic_templates"=>[{"message_field"=>{"path_match"=>"message", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false}}}, {"string_fields"=>{"match"=>"*", "match_mapping_type"=>"string", "mapping"=>{"type"=>"text", "norms"=>false, "fields"=>{"keyword"=>{"type"=>"keyword", "ignore_above"=>256}}}}}], "properties"=>{"@timestamp"=>{"type"=>"date"}, "@version"=>{"type"=>"keyword"}, "geoip"=>{"dynamic"=>true, "properties"=>{"ip"=>{"type"=>"ip"}, "location"=>{"type"=>"geo_point"}, "latitude"=>{"type"=>"half_float"}, "longitude"=>{"type"=>"half_float"}}}}}}}}

在浏览器中访问本机的nginx网站

配置kia添加索引

Logatash配置成功

注意:如果出不来通过界面提示打开时间管理器,设置时间为本星期

过程: 通过nginx的访问日志获取日志--->传输到logstach ----传输到--elasticsearch--传输到---kibana (通过nginix反代)

注意:如果出现问题

从上面截图可以看出存在5个unassigned的分片,新建索引blog5的时候,分片数为5,副本数为1,新建之后集群状态成为yellow,其根本原因是因为集群存在没有启用的副本分片,我们先来看一下官网给出的副本分片的介绍:
副本分片的主要目的就是为了故障转移,正如在集群内的原理中讨论的:如果持有主分片的节点挂掉了,一个副本分片就会晋升为主分片的角色。

那么可以看出来副本分片和主分片是不能放到一个节点上面的,可是在只有一个节点的集群里,副本分片没有办法分配到其他的节点上,所以出现所有副本分片都unassigned得情况。因为只有一个节点,如果存在主分片节点挂掉了,那么整个集群理应就挂掉了,不存在副本分片升为主分片的情况。

解决办法就是,在单节点的elasticsearch集群,删除存在副本分片的索引,新建索引的副本都设为0。然后再查看集群状态,如下图:

文章来源:https://blog.csdn.net/dongjiahuiw/article/details/135207973
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。