1.下载套件压缩文件,我这里是7.1.0版本的,请确保所有套件版本一致:下载地址

2.在linux中创建新的user组,root有问题,步骤如下:

创建运行ELK的用户

[root@localhost local]# groupadd elk
[root@localhost local]# useradd -g elk elk
[root@localhost local]#passwd elk
创建ELK运行目录
[root@localhost local]# mkdir /elk
 [root@localhost local]# chown -R elk:elk /elk关闭防火墙:
[root@localhost ~]# iptables -F

以上全部是root用户完成

切换到elk帐号

3.解压下载的三个压缩文件,命令: tar -zxvf logstash-7.1.0.tar.gz 后面接相关的压缩文件,这里最好下载到创建的用户组文件里面,如果不在里面请确保拥有各种读写权限。

4.elasticsearch需要进入config文件夹下,打开elasticsearch.yml文件添加以下参数:

完整信息如下:这里注意代表节点名字,保持不同的服务器名字不同加以区分,cluster.initial_master_nodes: ["node-202"]代表主节点,所有的服务器都用相同的一个节点名字作为主节点,另外,启动的时候,最好先启动指定为主节点的这台机器的elasticsearch服务。其它照搬就行,因为我这里是7.1.0版本,所有后面有些参数跟之前版本命名有区别,比如这个discovery.seed_hosts就是新版本的名字。

http.cors.enabled: true                                                                                                                                                                                                   
 http.cors.allow-origin: "*"

这两个参数是为了解决跨域问题。

network.host: 0.0.0.0

这里我只能设置成0.0.0.0才能被logstash访问。

path.data: /elk/data/
 path.logs: /elk/logs/

这两个文件路径自己创建

: elk-application 
: node-202 
cluster.initial_master_nodes: ["node-202"]
path.data: /elk/data/
path.logs: /elk/logs/
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
discovery.seed_hosts: ["ip1", "ip2", "ip3"]                                                                           
discovery.zen.minimum_master_nodes: 2     
http.cors.enabled: true                                                                                                                                                                                                   
http.cors.allow-origin: "*"

5.启动es,有两种方式:bin/elasticsearch(临时启动)和bin/elasticsearch -d(后台运行)

如果启动报错请看错误相关解决方法(注意这里要在root帐号下操作最好),基本都是操作系统参数设置相关的问题。最后,通过:http://ip:9200   查看elasticsearch是否启动成功。

6.进入logstash的config文件夹,创建新文件test.conf(名字自己随便取),内容如下:

input {
  file {
    path => "/home/hmap/apache-tomcat-8.0.50/logs/catalina*"
     type => "syslog"     
     start_position => beginning
  }
}
filter {}

output {
  elasticsearch {
    hosts => ["ip1", "ip2", "ip3"]
    action => "index"
    index => "syslog_prod-%{+YYYY.MM.dd}"
    #user => "hms"
    #password => "Handmobile"
  }
}

7.启动logstash:bin/logstash -f config/test.conf 即可。通过:http://ip:9200/_cat/indices     可以查看logstash和elasticsearch是否建立连接,刷新会看到数据变化。

8.进入kibana的config文件,修改kibana.yml文件,如下:server.host: "0.0.0.0"很重要,必须为0.0.0.0才能被浏览器访问到。

server.host: "0.0.0.0"
server.port: 5601
elasticsearch.hosts: ["http://ip1:9200", "http://ip2:9200", "http://ip3:9200"]

9.启动kibana:bin/kibana(临时启动)和nohup bin/kibana &(后台启动),如果要关闭,需要用    fuser -n tcp 5601 找到进程,然后kill -9 进程号 杀死进程。http://ip地址:5601 可以访问kibana

10.进入kibana以后,左下角有management,点击进入,然后点击添加index,这里的index就是logstash中配置的syslog,选择时间戳,点击下一步,最后确认。

11.点击左上第一个按钮,然后选择index就可以了,可以在filter过滤器中选择需要的内容。

12.分布式日志收集只需要在不同的应用服务器上部署logstash即可,配置内容保持一致。效果如下:正式和测试环境都在这里:

elk 管理 elk 7_压缩文件