实现目标
logstash 收集网络设备syslog,发送给elasticsearch,最后由kibana做呈现 操作时我一直用的是root账户,未测试用其他账户
Logstash配置
- 编辑配置文件 创建syslog.conf配置文件并进入编辑
vim /etc/logstash/conf.d/syslog.conf
填写如下内容
input {
syslog {
port => "51411"
}
}
output {
elasticsearch {
hosts => ["10.1.1.16:9200"]
index => "logstash_syslog-%{+YYYY.MM.dd}"
}
}
复制代码
- 网络设备如思科交换机等,不能自定义syslog发送的目的端口
- Linux需要root权限账号才能侦听小于1024的端口,这里先侦听51411端口,然后利用centos 7的firewalld将收到的514端口的流量转发给51411
- 这里是侦听的TCP和UDP,我认为是没必要侦听TCP514的
- 注意output的host填写自己的elasticsearch主机的IP
- index后边的 logstash_syslog是可更改的
- 配置firewalld
firewall-cmd --add-forward-port=port=514:proto=udp:toport=51411
//将514的流量重定向给51411firewall-cmd --add-port=80/tcp --permanent
#开启对TCP 80端口的访问 - 重启logstash进程
systemctl restart logstash.service
Elasticsearch配置
- 编辑es的yml文件
vim /etc/elasticsearch/elasticsearch.yml
这里只写几个必须配置的地方,其他部分已省略
network.host: 10.1.1.16 #这个是本机的ip
http.port: 9200
复制代码
- 重启es服务
systemctl restart elasticsearch
##Kibana配置 - 编辑配置文件
/etc/kibana/kibana.yml
只写必须配置的地方
server.port: 5601
server.host: "10.1.1.17"
elasticsearch.url: "http://10.1.1.16:9200"
复制代码
- 重启kibana服务
systemctl restart kibana.service
使用
- 进入kibana控制台
http://10.1.1.17:5601
- 编辑index patterns
- 完成后即可在Discover内看到网络设备发送过来的日志