说明
本文使用的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 表示全部索引,可以指定具体出错的索引