22.ELK-部署logstash来取日志并转发给ES

部署logstash来取日志并转发给ES

下载logstash安装包,存放到/opt/es-software目录

下载地址:https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-6.x/6.6.0/

logstash量级比filebeat重,而且比较吃内存,所以日常收集日志的工作交给filebeat来处理

安装logstash

rpm -ivh logstash-6.6.0.rpm
22.ELK-部署logstash来取日志并转发给ES_第1张图片

添加一个配置文件
cd /etc/logstash/conf.d
vim redis.conf

input { #输入源
  redis {
    host => "192.168.51.189" #指定redis的服务器
    port => "6379"
    db => "0" #制定对应的数据库
    key => "nginx_access" #指定对应的键
    data_type => "list" #列表形式
  }
  redis {
    host => "192.168.51.189" #同理
    port => "6379"
    db => "0"
    key => "nginx_error"
    data_type => "list"
  }
}

filter { #过滤器
  mutate {
    convert => ["upstream_time", "float"] #将时间进行转换,方便后期使用
    convert => ["request_time", "float"]
  }
}

output { #输出源
   stdout {}
   if "access" in [tags] {  #此处做判断,如果输入源的tags中含有access的值,那么就输出一个"nginx-access-%{+yyyy.MM}"的索引,输出到对应的ES节点
      elasticsearch {
        hosts => "http://192.168.51.187:9200"
        manage_template => false  #默认值是true,false是关闭logstash自动管理模版的功能,自定义模版的话就设置为false
        index => "nginx-access-%{+yyyy.MM}" 
      }
    }
    if "error" in [tags] {
      elasticsearch {
        hosts => "http://192.168.51.187:9200"
        manage_template => false
        index => "nginx-error-%{+yyyy.MM}"
      }
    }
}

在es-head界面将旧的索引删除掉,然后重新获取

先在前台启动测试
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis.conf
按照指定的配置文件来运行收集

出现以下信息就说明,索引已经创建成功日志已经收集上来了

22.ELK-部署logstash来取日志并转发给ES_第2张图片

然后打开es-head界面刷新一下,新生成的索引就会显示出来

22.ELK-部署logstash来取日志并转发给ES_第3张图片

使用kibana展示日志信息,还是正常的

22.ELK-部署logstash来取日志并转发给ES_第4张图片

你可能感兴趣的:(elk,运维)