实验框架图
192.168.124.10 es1
192.168.124.20 es2
192.168.124.30 losgtash kibana
192.168.124.50 MySQL nginx httpd
上一篇做完es1和es2以及192.168.124.30的部署
在192.168.124.50做配置部署
开启MySQL、nginx、http
因为nginx和http默认端口为80,改下nginx的端口号为82.
安装filebeat包,先解压,修改解压之后的目录名称
进入filebeat这个目录里面,在filebeat.yml这个配置文件添加内容
type: log
:表明这是一个日志相关的配置类型。
通常用于指定正在配置的是日志的处理规则或设置
-
enabled: true
:表示该日志配置处于启用状态。 -
如果设置为
false
,则相应的日志配置不会生效
paths:
部分
指定了 Nginx 访问日志的文件路径。
指定了 Nginx 错误日志的文件路径。
tags 为这些日志添加了一个标签
标签有助于对不同类型或来源的日志进行分类和识别。
fields
定义了一个字段
定义了一个字段 log_type
进一步明确了日志的类型。
定义了一个字段 from
可能表示日志的来源地址。
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
nohup
: 表示在后台运行命令,即使终端关闭,命令仍会继续运行。
./filebeat
:这是要运行的程序,即 filebeat
。
-e
:通常用于启用详细的错误输出,以便在出现问题时提供更多的调试信息。
-c filebeat.yml
:指定了 filebeat
程序的配置文件为 filebeat.yml
。配置文件中可能包含了关于要采集的日志源、输出目标等的详细配置。
> filebeat.out
:将标准输出重定向到名为 filebeat.out
的文件中,以便保存程序运行时输出的信息。
&
:表示将命令在后台运行。
然后进入192.168.124.30配置
进入logstash/conf.d
创建文件 vim nmh_50.conf
input
部分定义了数据的输入源。
beats { port => "5046"}
:表示从 Beats
框架接收数据,接收数据的端口为 5046
。
output
部分定义了数据的输出方式。
- 这里使用了多个条件判断
if
语句:if "nginx" in [tags]
:如果输入数据的tags
字段中包含nginx
。if "httpd" in [tags]
:如果tags
字段中包含httpd
。if "mysqld" in [tags]
:如果tags
字段中包含mysqld
。- 对于满足条件的数据,将输出到
Elasticsearch
: elasticsearch { hosts => ["192.168.124.10:9200","192.168.124.20:9200"] }
:指定了Elasticsearch
的主机地址。index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
:定义了输出数据在Elasticsearch
中的索引名称,索引名称由fields
中的service_name
字段的值和当前日期(格式为YYYY.MM.dd
)组成。
开启收集日志的命令
logstash -f nmh_50.conf --path.data /opt/test7 &
然后访问es1和es2