知识点
kibana是去es取数据 而不是es推给kibana filebeat存日志的时候会加tag标签 如果存在redis的话 可以存在一个key中 logstash去取的时候也是根据tag elk集群和业务机器区分开(例如redis不要用一个 有时候elk要重启 不要影响业务)
es的内存锁定
限制内存使用
最开始设置10g
半年后再评估 使用了多少 里面有多少是垃圾 没用的
再根据情况设置相应的内存限制es启动的时候如果没启动成功
原因 锁定内存没成功
解决 增加如下参数 [Service]LimitMEMLOCK=infinity
索引
filebeat在修改索引后 需要有访问才会有数据 索引名称才会改变
修改后应该在kibana添加索引
如果索引格式是yyyy-mm-dd 每天会生成一个索引(日志都在这个索引里面) 应该设置成yyyy-mm(每月生成一个 现在图上有三个)
一台机器上的多个日志文件可以多个input 并且打上tag 输出(out)的时候根据tag输出 ```python [root@elk-175 filebeat]# cat filebeat.yml filebeat.inputs:
- type: log enabled: true paths:
- /var/log/nginx/access.log json.keys_under_root: true json.overwrite_keys: true tags: [“access”]
- type: log enabled: true paths:
- /var/log/nginx/error.log tags: [“error”] setup.kibana: host: “kibana的ip地址:5601”
output.elasticsearch: hosts: [“es的ip地址:9200”] indices:
- index: "nginx_access-%{[beat.version]}-%{+yyyy.MM.dd}"
when.contains:
tags: "access"
- index: "nginx_error-%{[beat.version]}-%{+yyyy.MM.dd}"
when.contains:
tags: "error"
setup.template.name: “nginx” setup.template.pattern: “nginx_*” setup.template.enabled: false setup.template.overwrite: true
<a name="R5q7r"></a>
## 日志格式修改成json后还是一坨
原因filebeat没有改对应的配置文件<br />需要添加两行配置文件
```python
json.keys_under_root: true 开启json格式(这么理解 具体不清楚)
json.overwrite_keys: true #输入转换成json后丢弃原来的(覆盖)
filebeat启动失败
错误案例
input只需要写一个
这里的ip是es的ip
数据怎么通的
kibana里面配置了es的地址
filebeat里配置了output地址是es的