elk+redis分佈式分析nginx日誌

一.elk套件介紹

ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三個開源工具組成。官方網站: https://www.elastic.co/productsjava

Elasticsearch 是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制, restful 風格接口,多數據源,自動搜索負載等。linux

Logstash 是一個徹底開源的工具,他能夠對你的日誌進行收集、分析,並將其存儲供之後使用(如,搜索)。nginx

kibana 也是一個開源和免費的工具,他 Kibana 能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。redis

工做原理以下如所示:json

**客戶端的logstash從日誌裏取出數據推送到服務端的redis裏,服務端的logstash從redis裏取出推送到elasticsearch,elasticsearch進行分析,kibana來展現服務器

注:安裝所有使用rpm安裝,方便管理restful

2、服務端安裝過程

1.安裝依賴JDKelasticsearch

版本:jre-8u91-linux-x64.rpm分佈式

# rpm -ivh jre-8u91-linux-x64.rpm
Preparing...        ########################################### [100%]
1:jre1.8.0_91       ########################################### [100%]
Unpacking JAR files...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...
    jfxrt.jar...

2.安裝logstash工具

版本:logstash-2.3.2-1.noarch.rpm

# rpm -ivh logstash-2.3.2-1.noarch.rpm 
Preparing...         ########################################### [100%]

3.安裝elasticsearch

版本:elasticsearch-2.3.3.rpm

# rpm -ivh elasticsearch-2.3.3.rpm 
Preparing...           ########################################### [100%]

4.安裝kibana

版本:kibana-4.5.1-1.x86_64.rpm

# rpm -ivh kibana-4.5.1-1.x86_64.rpm 
Preparing...            ########################################### [100%]
1:kibana                ########################################### [100%]

5.安裝redis

版本: redis-3.0.0.tar.gz

#tar xf redis-3.0.0.tar.gz
#cd redis-3.0.0
#make
#mkdir /usr/local/redis
#mkdir /usr/local/redis/bin
#cp src/redis-benchmark /usr/local/redis/bin/
#cp src/redis-check-aof /usr/local/redis/bin/
#cp src/redis-check-dump /usr/local/redis/bin/
#cp src/redis-cli /usr/local/redis/bin/
#cp src/redis-sentinel /usr/local/redis/bin/
#cp src/redis-server /usr/local/redis/bin/
#cp redis.conf  /usr/local/redis/
#cd /usr/local/redis/
#mv redis.conf redis_6378.conf

三.客戶端安裝過程

1.安裝依賴JDK

版本:jre-8u91-linux-x64.rpm

# rpm -ivh jre-8u91-linux-x64.rpm
Preparing...        ########################################### [100%]
1:jre1.8.0_91       ########################################### [100%]
Unpacking JAR files...
    plugin.jar...
    javaws.jar...
    deploy.jar...
    rt.jar...
    jsse.jar...
    charsets.jar...
    localedata.jar...
    jfxrt.jar...

2.安裝logstash

版本:logstash-2.3.2-1.noarch.rpm

# rpm -ivh logstash-2.3.2-1.noarch.rpm 
Preparing...         ########################################### [100%]

四.客戶端配置

#cd /etc/logstash/conf.d/
#新建一個conf文件
## vi nginx_access.conf

配置文件以下:

input {
        file {
            type => "nginx_access"
            #分析的日誌路徑。通常都是我們的squid or nginx日誌路徑
            path => ["/usr/local/nginx/logs/access.log"]
            codec => plain {
                        charset => ["UTF-8"] #字符編碼UTF-8
                }
        }
    }
    output {
        stdout {}
        redis {
            #將過濾好的數據推送到服務端的redis裏
            host => '服務端IP地址'
            data_type => 'list'
            key => 'elk:redis'
        codec => json {
                        charset => ["UTF-8"]
                }
        }
    }

啓動服務

/etc/init.d/logstash start

5、服務端配置

1.修改logstash配置文件

# cd /etc/logstash/conf.d/
# vi nginx_access.conf

input {
        redis {
        #從redis裏取出日誌
        host => '服務器IP地址'
        data_type => 'list'
        port => "6378"
        key => 'elk:redis'
        type => 'redis-input'
        codec => plain {
                charset => "UTF-8"
     }
    }
}
filter {
    json{
        source =>"message"  
        }
}
#把日誌交給elastic分析
output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        codec => "json"
    }
}

2.修改logstash運行內存

vi /etc/init.d/logstash
LS_HEAP_SIZE="1g"
#此處能夠根據你服務器的配置來修改

3.配置elasticsearch

vi  /usr/share/elasticsearch/bin/elasticsearch.in.sh
if [ "x$ES_MAX_MEM" = "x" ]; then
    ES_MAX_MEM=4g
fi
將max調整爲4g
#此處能夠根據你服務器的配置來修改
修改elasticsearch 監聽地址
vi /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0

4.啓動相關服務

/etc/init.d/elasticsearch start
/etc/init.d/logstash start
/etc/init.d/kibana start
/usr/local/redis/bin/redis-server /usr/local/redis/redis_6378.conf &
#記得redis添加防火牆,要不容易被啪啪。

5.kibana顯示

略。
相關文章
相關標籤/搜索