一、Elasticsearch和Kibana安装
ubuntu 172.22.15.240 172.22.15.241 172.22.15.242
1.1、在172.22.15.240安装elasticsearch 和kibana
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-amd64.deb
dpkg -i elasticsearch-7.13.2-amd64.deb
1.2、修改elasticsearch配置文件,
vim /etc/elasticsearch/elasticsearch.yml
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 172.22.15.240,127.0.0.1
http.port: 9200
discovery.seed_hosts: ["172.22.15.240"]
cluster.initial_master_nodes: ["172.22.15.240"]
systemctl restart elasticsearch
其他主机curl 172.22.15.240:9200看下能否正常访问
2.1安装Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.13.2-amd64.deb
dpkg -I kibana-7.13.2-amd64.deb
在ELK官网找到kibana安装方法,下载deb后dpkg -I xxx.deb
修改kibana.yml文件,配置elasticsearch主机ip和hosts ip改为0.0.0.0方便其他主机访问。
systemctl restart kibana
打开链接 xxxx:5601
首先stack management→索引管理看下索引能不能观察到,
发现→8.X数据视图/7.X索引模式 nginx-access*→创建数据视图
try our sample data→discover→create index pattern→填写time filter field name
点击左侧的discover可以看到
nginx-access-2023-07-07
二、在172.22.15.241安装nginx,安装Filebeat搜集系统日志和nginx日志
通过filebeat分别收集系统日志、nginx-access日志和nginx-error日志
Filebeat 是一个轻量级的日志转发器,用于转发和集中日志数据。以下是如何使用 Filebeat 来收集系统日志、Nginx 访问日志和错误日志,并在 Kibana 中区分它们的方法:
0.安装nginx并将access日志格式修改为json格式
安装Nginx
apt update && apt -y install nginx
修改Nginx配置文件--记得重启
vim /etc/nginx/nginx.conf
log_format json '{ "time_local": "$time_local", '
'"remote_addr": "$remote_addr", '
'"referer": "$http_referer", '
'"request": "$request", '
'"status": $status, '
'"bytes": $body_bytes_sent, '
'"user_agent": "$http_user_agent", '
'"x_forwarded": "$http_x_forwarded_for", '
'"up_addr": "$upstream_addr",'
'"up_host": "$upstream_http_host",'
'"upstream_time": "$upstream_response_time",'
'"request_time": "$request_time"'
' }';
access_log /var/log/nginx/access_json.log access_json ;
#access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
默认开启nginx的错误日志,但如果是ubuntu,还需要修改下面行才能记录错误日志
[root@elk-web1 ~]#vim /etc/nginx/sites-available/default
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404; #将此行注释
systemctl restart nginx
ll /var/log/nginx/
total 1012
-rw-r--r-- 1 root root 1029780 Aug 25 15:34 access_json.log
-rw-r--r-- 1 root root 196 Aug 25 15:34 error.log
1. 安装 Filebeat
首先,确保你已经在你的服务器上安装了 Elasticsearch 和 Kibana。然后安装 Filebeat:
sudo apt-get install filebeat
或者使用其他包管理工具根据你的操作系统。
2. 配置 Filebeat
编辑 Filebeat 配置文件(通常是 /etc/filebeat/filebeat.yml
),设置输入和输出:
yaml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
tags: ["test","syslog"]
fields:
log_type: system_log
- type: log
enabled: true
paths:
- /var/log/nginx/access.log
tags: ["test", "nginx"]
fields:
log_type: nginx_access_log
- type: log
enabled: true
paths:
- /var/log/nginx/error.log
tags: ["nginx-error"]
fields:
log_type: nginx_error_log
output.elasticsearch:
hosts: ["172.22.15.240:9200"]
setup.kibana:
host: "172.22.15.240:5601"
在这个配置中,我们为每种日志类型定义了一个 input
,并为它们指定了不同的 tags
和
fields
。这些 tags
和 fields
将在 Kibana 中用于区分日志。
3. 启动 Filebeat
启动 Filebeat 服务,以便它开始收集和发送日志:
sudo systemctl start filebeat
确保 Filebeat 在系统启动时自动运行:
sudo systemctl enable filebeat
4. 在 Kibana 中创建索引模式
在 Kibana 中,你需要创建索引模式来匹配 Filebeat 发送到 Elasticsearch 的日志:
- 打开 Kibana。
- 转到“管理”>“索引模式”。
- 点击“创建索引模式”。
- 输入索引模式的名称,例如
filebeat-*
。 - 选择相应的时间字段(通常是
@timestamp
)。 - 点击“下一步”并确认创建。
5. 在 Kibana 中区分日志
一旦创建了索引模式,你就可以在 Kibana 中区分不同类型的日志:
-
发现(Discover):
- 选择相应的索引模式(例如
filebeat-*
)。 - 使用搜索栏来过滤日志,例如,你可以搜索
tags: "nginx" AND "access"
来只查看 Nginx
访问日志。
- 选择相应的索引模式(例如
-
可视化(Visualize):
- 创建可视化时,选择相应的索引模式。
- 你可以使用桶(Buckets)和指标(Metrics)来创建图表,比如按照
fields.log_type
进
行分组。
-
仪表板(Dashboard):
- 创建一个仪表板,将相关的可视化集合在一起。
- 你可以为每种日志类型创建不同的面板,并在仪表板上清晰地展示它们。
通过以上步骤,你可以在 Kibana 中有效地管理和分析来自不同源的日志数据。记得根据你
的实际日志路径和需求调整 Filebeat 配置。
tags: "test" AND tags: "syslog" AND "@timestamp": ["2023-01-01T16:13:20" TO "2023-01-01T16:13:21"] AND message: "error"