logstash介绍 - 2.简单安装以及使用

说明

  本文使用的elasticsearch logstash 都是6.1.2版本,基于centos7环境上进行测试验证。
   本文测试节点的IP地址为: 192.168.5.60 。
   本文不做elasticsearch logstash安装详细说明。
   文中最后附下载地址链接。

一、简单安装 

java环境安装

# java -version 
openjdk version "1.8.0_161"

从文中最后下载链接下载下来的安装包

elasticsearch-6.1.2.rpm
logstash-6.1.2.rpm

安装

rpm -ivh elasticsearch-6.1.2.rpm
rpm -ivh logstash-6.1.2.rpm

修改 elasticsearch.yml 配置中的network.host,并关闭防火墙

# cat /etc/elasticsearch/elasticsearch.yml |grep network.host
network.host: 192.168.5.60
# systemctl stop irewalld.service

启动elasticsearch

systemctl enable elasticsearch.service
systemctl start elasticsearch.service

检测elasticsarch状态

curl '192.168.5.60:9200/_cat/health?v'

二、logstash监听本地文件

配置

# cat /etc/logstash/conf.d/log2.conf
input {
    file {
        path => ["/var/log/lyh/messages"]
        type => "system"
        start_position => "beginning"
    }
}
filter {

}

output {
    stdout {}
}

执行logstash 

# cd /usr/share/logstash/bin/ 
# ./logstash -f /etc/logstash/conf.d/log2.conf  --path.settings /etc/logstash

往 /var/log/lyh/messages 插入日志

echo "Jan 23 08:51:59 localhost kernel: LYH 111" >> /var/log/lyh/messages
echo "Jan 24 08:41:58 localhost systemd: Starting Session 36 of user root.  " >> /var/log/lyh/messages

查看信息

可以在执行 ./logstash -f /etc/logstash/conf.d/log2.conf  --path.settings /etc/logstash 的界面看到打印日志
2018-01-24T01:10:00.202Z 0.0.0.0 Jan 23 08:51:59 localhost kernel: LYH 111
....

三、logstash作为syslog-server监听syslog日志信息

配置

# cat /etc/logstash/conf.d/log3.conf
input {
  tcp {
    port => 514
    type => syslog
  }
  udp {
    port => 514
    type => syslog
  }
}

filter {

}

output {
    stdout {}
}

启动logstash

# cd /usr/share/logstash/bin/ 
# ./logstash -f /etc/logstash/conf.d/log3.conf  --path.settings /etc/logstash

模拟一条syslog的日志

# logger -T -P 514 -n 127.0.0.1 'hello world '

查看信息

可以在执行 ./logstash -f /etc/logstash/conf.d/log2.conf  --path.settings /etc/logstash 的界面看到打印日志
2018-01-24T06:22:55.969Z 127.0.0.1 <5>Jan 24 14:22:55 root: hello world 

四、logstash作为syslog-server监听syslog日志信息,并将日志对接到elasticsearch

配置

# cat /etc/logstash/conf.d/log4.conf
input {
  tcp {
    port => 514
    type => syslog
  }
  udp {
    port => 514
    type => syslog
  }
}

filter {

}

output {
    elasticsearch {
    action => "index"
    hosts  => "192.168.5.60:9200"
    index  => "lyh-test"
     }
    stdout {}
}

启动logstash

# cd /usr/share/logstash/bin/ 
# ./logstash -f /etc/logstash/conf.d/log4.conf  --path.settings /etc/logstash

模拟一条syslog的日志 

# logger -T -P 514 -n 127.0.0.1 'hello world '

查看信息

可以在执行 ./logstash -f /etc/logstash/conf.d/log2.conf  --path.settings /etc/logstash 的界面看到打印日志
2018-01-24T06:22:55.969Z 127.0.0.1 <5>Jan 24 14:22:55 root: hello world 

获取elasticsearch的索引

增加了一条lyh-test的的索引
# curl -X GET 192.168.5.60:9200/_cat/indices?v
health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   lyh-test nWx7hdNqQOStFbEVXd8tYQ   5   1          5            0     27.7kb         27.7kb

获取该索引里面的数据

# curl -X GET -H 'Content-type: application/json' 192.168.5.60:9200/lyh-test/_search -d '{
"query": {
"match_all": {}
}
}'
# 通过size from sort进行分页排序查找
# curl -X GET -H 'Content-type: application/json' http://192.168.5.60:9200/ssp-attacklog--*/_search?size=10\&from=1\&pretty -d '{
    "query": {"match_all": {}},
    "sort": {
        "happentime": {"order": "desc"}
    }
}'

五、下载地址

logstash: https://www.elastic.co/downloads/logstash
elasticsearch: https://www.elastic.co/downloads/elasticsearch
kibana: https://www.elastic.co/downloads/kibana

更多logstash filter相关的可以参见官网
https://www.elastic.co/guide/en/logstash/current/config-examples.html

六、一些出错信息,以及解决方法

1、创建ES索引报错:FORBIDDEN/12/index read-only / allow delete (api)
1)报错 info:{"error":{"root_cause":[{"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"}],"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"},"status":403}
2)解决方式:到es指定节点,执行
curl -XPUT -H "Content-Type: application/json" http://127.0.0.1:9200/_all/_settings -d '{
    "index":{
        "blocks.read_only_allow_delete":false
    }
}'
3)说明:
_all 表示全部索引,可以指定具体出错的索引

猜你喜欢

转载自blog.csdn.net/linshenyuan1213/article/details/79154230