架构:


#安装依赖
yum install bzip2 automake libtool gcc-c++ java-1.8.0-openjdk -y

mkdir -p /home/ELK/{e,l,k}
mkdir /home/ELK/e/{data,logs}

 

#install elasticsearch
useradd elk
tar zxvf elasticsearch-5.1.1.tar.gz
mv elasticsearch-5.1.1 /home/ELK/e/
cd /home/ELK/e/elasticsearch-5.1.1/

vim config/elasticsearch.yml
#修改配置文件以下内容
cluster.name: es_cluster                  #ES集群名称 
node.name: node-1                          #这台站点名称
path.data: /home/ELK/e/data           #数据存放路径 
path.logs: /home/ELK/e/logs            #日志存放路径 
network.host: 127.0.0.1                   #绑定IP,也就是别人访问ES的IP
http.port: 9200                                 #启动的端口


#以ELK用户启动elasticsearch,如果以root帐号启动会报错
chown -R elk.elk /home/ELK/ 
nohup su elk -l -c /home/ELK/e/elasticsearch-5.1.1/bin/elasticsearch &

 


#install logstash

tar zxvf logstash-5.1.1.tar.gz
mv logstash-5.1.1 /home/ELK/l/
cd logstash-5.1.1/
mkdir -p /home/ELK/l/logstash-5.1.1/conf

./bin/logstash agent -f config/haporxy.conf --debug

agent配置文件

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
input {
        file {
                type ="haproxy"
                path => ["/apps/logs/haproxy/haproxy.log"]
        }
}
output {
        redis {
                host ="10.0.0.191"
                data_type ="list"
                key ="logstash:haproxy109"
                port =6379
        }
}

 

index配置文件

input {
                redis {
                host ="localhost"
                data_type ="list"
                key ="logstash:haproxy109"
                type ="redis-input"
                }
}
 
filter {
                grok {
                patterns_dir => ["./patterns"]
                match => { "message" ="%{HAPROXYHTTP}"}
                        }
                geoip {
                        source ="client_ip"
                        target ="geoip"
                        add_field => [ "[geohash][coordinates]""%{[geoip][longitude]}" ]
                        add_field => [ "[geohash][coordinates]""%{[geoip][latitude]}"  ]
                        add_field => [ "[geo_point]""%{[geoip][longitude]}" ]
                        add_field => [ "[geo_point]""%{[geoip][latitude]}" ]
                        }
                mutate {
                        convert => [ "[geoip][coordinates]""float"]
                        }
        }
 
output {
  elasticsearch {
    hosts => ["10.0.0.56:9200"]
    index ="logstash-haproxy109-%{+YYYY.MM.dd}"
  }
}

 

 

#install kibana
tar zxvf kibana-5.1.1-linux-x64.tar.gz
mv kibana-5.1.1-linux-x64 /home/ELK/k/
mkdir -p /home/ELK/k/logs
cd /home/ELK/k/kibana-5.1.1-linux-x64/
vim config/kibana.yml
#修改配置文件以下内容

server.port: 5601                                       #启动的端口
server.host: "10.0.2.56"                            #绑定IP
elasticsearch.url: "http://10.0.2.56:9200" #ES地址
kibana.index: ".kibana"                            #索引名字
logging.dest: /home/ELK/k/logs/kibana   #日志目录
logging.silent: true                                   #输出登录日志
logging.quiet: true                                    #输出登录错误日志

nohup ./bin/kibana &