centos6.5下安装配置ELK及收集nginx日志

Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)

kibana 也是一个开源和免费的工具,他Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

环境:192.168.50.119:ELK+Nginx

192.168.50.120:Redis+Logstash

架构图

部署流程:

192.168.50.119 ELK服务器

1.安装JDK

Logstash的运行依赖于Java运行环境, Logstash 1.5以上版本不低于java 7推荐使用最新版本的Java,我这里使用了1.8版本

tar -zxf jdk-8u45-linux-x64.tar.gz -C /usr/local/
vim /etc/profile  #设置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_45
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
source /etc/profile  #使环境变量生效

验证是否安装成功

[[email protected] ~]# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

2.安装Logstash(日志收集、分析,并将其存储供以后使用)

wget https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz
tar –zxf logstash-2.4.0.tar.gz -C /usr/local/

验证logstash是否安装成功

[[email protected] ~]# /usr/local/logstash-2.4.0/bin/logstash -e ‘input { stdin { } } output { stdout {} }‘
Settings: Default pipeline workers: 1
Logstash startup completed
等待输入:hello world
2016-11-28T20:32:07.853Z localhost.localdomain hello world

我们可以看到,我们输入什么内容logstash按照某种格式输出,其中-e参数参数允许Logstash直接通过命令行接受设置。

这点尤其快速的帮助我们反复的测试配置是否正确而不用写配置文件。使用CTRL-C命令可以退出之前运行的Logstash。

3.部署nginx并收集日志

yum -y install nginx
设置nginx的log 格式
vim /etc/nginx/nginx.conf
    log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" $http_x_forwarded_for $request_length $msec $connection_requests $request_time‘;

启动nginx

service nginx start
mkdir /usr/local/logstash-2.4.0/conf/   #创建logstash配置目录
定义logstash配置文件,用来收集nginx日志
[[email protected] conf]# cat logstash_nginx.conf 
input {
     file {
        path => ["/var/log/nginx/access.log"]
        type => "nginx_log"
     }
}
output {
     redis{
         host => "192.168.50.120"
         key => ‘logstash-redis‘
         data_type => ‘list‘
    }
    stdout {
codec => rubydebug
    }
}

4.安装部署redis

192.168.50.120 服务器

yum -y install redis
vim /etc/redis.conf
bind 192.168.50.120

启动

service redis start

5.启动Logstash

[[email protected] conf]# /usr/local/logstash-2.4.0/bin/logstash -f ./logstash_nginx.conf  --configtest   #检查配置文件
Configuration OK
[[email protected] conf]# /usr/local/logstash-2.4.0/bin/logstash agent  -f ./logstash_nginx.conf          #将日志信息输出到redis服务器
Settings: Default pipeline workers: 1
Logstash startup completed
{
       "message" => "192.168.50.114 - - [29/Nov/2016:00:58:43 +0800] \"GET / HTTP/1.1\" 304 0 \"-\" \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36\" \"-\"",
      "@version" => "1",
    "@timestamp" => "2016-11-28T18:55:49.587Z",
          "path" => "/var/log/nginx/access.log",
          "host" => "localhost.localdomain",
          "type" => "nginx_log"
}
{
       "message" => "192.168.50.114 - - [29/Nov/2016:00:58:43 +0800] \"GET /nginx-logo.png HTTP/1.1\" 304 0 \"http://192.168.50.119/\" \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36\" \"-\"",
      "@version" => "1",
    "@timestamp" => "2016-11-28T18:55:49.590Z",
          "path" => "/var/log/nginx/access.log",
          "host" => "localhost.localdomain",
          "type" => "nginx_log"
}
{
       "message" => "192.168.50.114 - - [29/Nov/2016:00:58:43 +0800] \"GET /poweredby.png HTTP/1.1\" 304 0 \"http://192.168.50.119/\" \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36\" \"-\"",
      "@version" => "1",
    "@timestamp" => "2016-11-28T18:55:49.590Z",
          "path" => "/var/log/nginx/access.log",
          "host" => "localhost.localdomain",
          "type" => "nginx_log"
}

6.安装部署Elasticsearch

192.168.50.119 ELK服务器

创建安装用户

groupadd elk
useradd es -g elk
tar -xf elasticsearch-2.2.0.tar.gz -C /usr/local/
vim /usr/local/elasticsearch-2.2.0/config/elasticsearch.yml
   network.host: 192.168.50.119   # 端口绑定ip地址
   http.port: 9200

启动

这里遇到一个坑:es用户默认是不能用root用户启动的。所以要切到普通用户启动

chown -R es.elk /usr/local/elasticsearch-2.2.0
su - es
nohup  /usr/local/elasticsearch-2.2.0/bin/elasticsearch >/usr/local/elasticsearch-2.2.0/nohub &
[[email protected] ELK]# netstat -tunpl | grep 9200
tcp        0      0 ::ffff:192.168.50.119:9200  :::*                        LISTEN      2183/java
[[email protected] ELK]# curl http://192.168.50.119:9200   #查看状态
{
  "name" : "Blood Brothers",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.2.0",
    "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe",
    "build_timestamp" : "2016-01-27T13:32:39Z",
    "build_snapshot" : false,
    "lucene_version" : "5.4.1"
  },
  "tagline" : "You Know, for Search"
}

安装kopf和head插件

[[email protected] conf]# cd /usr/local/elasticsearch-2.2.0/bin/
[[email protected] bin]# ./plugin  install lmenezes/elasticsearch-kopf
-> Installing lmenezes/elasticsearch-kopf...
Trying https://github.com/lmenezes/elasticsearch-kopf/archive/master.zip ...
Downloading ............................................................ DONE
Verifying https://github.com/lmenezes/elasticsearch-kopf/archive/master.zip checksums if available ...
NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)
Installed kopf into /usr/local/elasticsearch-2.2.0/plugins/kopf
[[email protected] bin]# ./plugin install mobz/elasticsearch-head
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip ...
Downloading .........................................................DONE
NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)
Installed head into /usr/local/elasticsearch-2.2.0/plugins/head

7.安装kibana

192.168.50.119 ELK服务器

安装

[[email protected] ELK]# tar -xf kibana-4.4.0-linux-x64.tar.gz  -C /usr/local/
[[email protected] ELK]# cd /usr/local/kibana-4.4.0-linux-x64/

配置

[[email protected] kibana-4.4.0-linux-x64]# vim config/kibana.yml
elasticsearch.url: "http://192.168.50.119:9200"
server.port: 5601
server.host: "0.0.0.0"

启动

[[email protected] kibana-4.4.0-linux-x64]# nohup  /usr/local/kibana-4.4.0-linux-x64/bin/kibana > /usr/local/kibana-4.4.0-linux-x64/nohub.out &
[[email protected] ELK]# netstat -tunpl | grep 5601
tcp        0      0 0.0.0.0:5601                0.0.0.0:*

浏览器访问http://192.168.50.119:5601/

8.安装logstash-server服务器

192.168.50.120  服务器

安装jdk和logstash

tar -zxf jdk-8u45-linux-x64.tar.gz -C /usr/local/
vim /etc/profile  #设置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_45
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
source /etc/profile  #使环境变量生效
tar –zxf logstash-2.4.0.tar.gz -C /usr/local/
mkdir /usr/local/logstash-2.4.0/conf

将redis 中的数据发送到elasticsearch中

[[email protected] conf]# cat logstash_server.conf 
input {
    redis {
        port => "6379"
        host => "192.168.50.120"
        data_type => "list"
        key => "logstash-redis"
        type => "redis-input"
   }
}
output {
    elasticsearch {
        hosts => "192.168.50.119"
        index => "logstash-%{+YYYY.MM.dd}"
   }
}

9.在Kibanda上创建nginx日志监控视图

es常规操作

es 健康状态
[[email protected] ~]# curl  http://192.168.50.119:9200/_cat/health?v
epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 
1480345315 23:01:55  elasticsearch yellow          1         1      6   6    0    0        6             0                  -                 50.0% 
health 的状态包括:green, yellow, red. 
列出节点
[[email protected] ~]# curl  http://192.168.50.119:9200/_cat/nodes?v
host           ip             heap.percent ram.percent load node.role master name           
192.168.50.119 192.168.50.119            8          99 0.00 d         *      Blood Brothers 
列出索引
[[email protected] ~]# curl  http://192.168.50.119:9200/_cat/indices?v
health status index               pri rep docs.count docs.deleted store.size pri.store.size 
yellow open   .kibana               1   1          2            0      5.6kb          5.6kb 
yellow open   logstash-2016.11.28   5   1          1            0      4.9kb          4.9kb

参考地址:

http://liumissyou.blog.51cto.com/4828343/1850973                   http://ckl893.blog.51cto.com/8827818/1772287

时间: 2024-10-01 07:53:27

centos6.5下安装配置ELK及收集nginx日志的相关文章

CentOS6.5下安装配置MySQL

CentOS6.5下安装配置MySQL,配置方法如下: 安装mysql数据库:# yum install -y mysql-server mysql mysql-deve 查看mysql-server版本:# rpm -qi mysql-server 初始化mysql数据库:#service mysqld start 重启mysql数据库:#service mysql restart 设置mysql开机启动:# chkconfig mysqld on 为数据库设置用户名和密码:# mysqlad

CentOS6.2下安装配置MySql

转自:Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置 如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--CentOS下j2ee环境搭建),如果要开发web项目,我们当然可以安装一个myeclipse到Linux系统上去,这个安装方法和安装eclipse完全相同,就没有记录下来了,有了jdk.tomcat.ecli

CentOS6.X下安装配置独立SVN服务器|Subversion server

Hi 大家好,我是钟义林,今天我们来安装一个Subversion服务吧,Subversion server其实就我们日常说的SVN服务,Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控***务已从CVS转移到Subversion.svn服务器有2种运行方式:独立服务器和借助apache运行.下面我安装独立SVN 首先,清除一下yum的缓存吧,yum clean  all [一]安装

CentOS6.5_X64下安装配置MongoDB数据库

环境准备: 硬件要求:50G硬盘 8G内存 4核CPU 软件要求:Linux操作系统:CentOS6.5_X64  mongodb-linux-x86_64-2.6.10.tgz 目的: 安装配置MongoDB数据库 具体操作: 一.关闭SElinux.配置防火墙 1.vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq!  #保存退出 setenfor

Centos6.7下安装配置VPN

在Vultr上买了台VPS准备做VPN,不贵5刀,位置是日本东京的.ping值在100-200之间,还好算说的过去. Vultr地址 系统选择的Centos6 的版本是6.7 在网上查了查linux下安装VPN的资料,解决方案真不少,有用OpenVPN的,有的是PPTP的.OpenVPN的稍麻烦些,需要证书什么的.因为是自己用,所以采用了PPTP的方案. 有好多同行,已经把PPTP这块的东西都写好了脚本,到时候直接运行脚本就行了. 教程参考地址 Centos6.7 下PPTP VPN一键安装脚本

centos6.5下安装配置hudson

### hudson介绍 Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作 ### 安装maven #### 下载包 ``` wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz ``` #### 安装 ``` [[email protected] ~]# tar -xf apache-maven-3.3.9-b

CentOS6.2 yum安装配置lnmp服务器(Nginx+PHP+MySQL)

1.配置防火墙,开启80端口.3306端口        vi /etc/sysconfig/iptables        -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)        -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许3306端口通过防火墙) 特别提示:很多网友把这两条规则添加到防火

Centos6.5 下安装配置Apache+PHP+Mysql环境

1.准备工作 # yum -y update && yum -y install vim make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake wget unzip lrzsz zlib libgcrypt* libtool* 2.安装apache2.2 # wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.2.31.tar.

CentOS6.X下安装配置独立SVN服务器Subversion server

Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控***务已从CVS转移到Subversion.svn服务器有2种运行方式:独立服务器和借助apache运行.下面我安装独立SVN 首先,清除一下yum的缓存吧,yum clean all [一]安装 subversion yum install subversion subversion-devel 然后选择y(yes)确认安装,当然