ELK实现nginx、mysql、http的日志可视化实验

ops/2024/11/15 5:51:22/

API接口:

软件内部代码之间通信的接口 代码的连接点

端口是对外提供访问程序的内容接口

filebeat:

1、可以在本机收集日志

2、也可以远程收集日志

3、轻量级的日志收集系统,可以在非java环境运行

logstash是在jvm环境中运行,资源消耗很好,启动一个logstash要消耗500M左右的内存

filebeat只消耗10M左右的内存

5044 是logstash默认的端口

只要是logstash主机上没有被占用的端口都可以使用。大于1024都可以。

 nohup ./filebeat -e -c filebeat.yml > filebeat.out &

-e:输出到标准输出

-c:指定配置文件

nohup:在系统的后台运行,不会因为中端的关闭导致程序停止运行

可以把运行的日志保存到指定文件夹

apach日志可视化的操作:

yum -y install httpd
[root@apache conf.d]# cd /etc/logstash/conf.d/
[root@apache conf.d]# vim httd.conf
input {file{path => "/etc/httpd/logs/access_log"type => "access"start_position => "beginning"}file{path => "/etc/httpd/logs/error_log"type => "error"start_position => "beginning"}
}
output {if [type] == "access" {elasticsearch {hosts => ["192.168.60.82:9200","192.168.60.83:9200"]index => "apache_access.%{+YYYY.MM.dd}"}}if [type] == "error" {elasticsearch {hosts => ["192.168.60.82:9200","192.168.60.83:9200"]index => "apache_error.%{+YYYY.MM.dd}"}}
​
}
[root@apache conf.d]# logstash -f http.conf --path.data /opt/test3 &

nginx日志可视化的操作:

[root@test3 opt]# rz -E
rz waiting to receive.
#将这个filebeat-6.7.2-linux-x86_64.tar.gz放到nginx的opt目录下
[root@test3 opt]# tar -xf filebeat-6.7.2-linux-x86_64.tar.gz 
[root@test3 opt]# mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat
[root@test3 filebeat]# cp filebeat.yml filebeat.yml.bak
[root@test3 filebeat]# vim filebeat.yml21 - type: log22   enabled: true23   paths:24     - /usr/local/nginx/logs/access.log25     - /usr/local/nginx/logs/error.log26 #开启日志收集,以及确定日志文本的路径,指定标签和发送到目标主机的logstash27   tags: ["nginx"]28   fields:29      service_name: 192.168.60.30_nginx30      log_type: nginx31      from: 192.168.60.30
151 #output.elasticsearch:          #将151行注释
153  # hosts: ["localhost:9200"]    #将153行注释
164 output.logstash:                #将164行取消注释
166   hosts: ["localhost:5045"]     #将166行取消注释
#进入Apach主机下的conf,d目录下
[root@apache conf.d]# vim nginx_30.conf 
input {beats { port => "5045"}
}
output {if "nginx" in [tags] {elasticsearch {hosts => ["192.168.60.82:9200","192.168.60.83:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}}
}
[root@test3 filebeat]# nohup ./filebeat -e -c filebeat.yml > filebeat.out &     #先去nginx起
[root@apache ~]# logstash -f nginx_30.conf --path.data /opt/test4 &         

mysql+nginx+http的日志可视化操作:

[root@mysql1 ~]# vim /etc/my.cnf        #将mysql的日志文件打开
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
[root@mysql1 ~]# yum -y install httpd nginx
[root@mysql1 ~]# vim /etc/nginx/nginx.conf39         listen       82;            #将39行的端口更改,防止端口冲突40 #        listen       [::]:80;      #将40行注释
[root@mysql1 ~]# systemctl restart mysqld       #将3个服务起来
[root@mysql1 ~]# systemctl restart nginx
[root@mysql1 ~]# systemctl restart httpd
[root@mysql1 ~]# cd /opt/
[root@mysql1 opt]# rz -E
rz waiting to receive.
[root@mysql1 opt]# ls
filebeat-6.7.2-linux-x86_64.tar.gz  
[root@mysql1 opt]# tar -xf filebeat-6.7.2-linux-x86_64.tar.gz 
[root@mysql1 opt]# mv filebeat-6.7.2-linux-x86_64 filebeat
[root@mysql1 opt]# cd filebeat/
[root@mysql1 filebeat]# cp filebeat.yml filebeat.yml.bak
[root@mysql1 filebeat]# vim filebeat.yml21 - type: log22   enabled: true23   paths:24     - /var/log/nginx/access.log25     - /var/log/nginx/error.log26 tags: ["nginx"]27 fields:28    service_name: 192.168.60.91_nginx29    log_type: nginx30    from: 192.168.60.9131 32 - type: log33   enabled: true34   paths:35     - /var/log/httpd/access_log36     - /var/log/httpd/error_log37 tags: ["httpd"]38 fields:39    service_name: 192.168.60.91_httpd40    log_type: httpd41    from: 192.168.60.9142 43 - type: log44   enabled: true45   paths:46     - /usr/local/mysql/data/mysql_general.log47 tags: ["mysqld"]48 fields:49    service_name: 192.168.60.91_mysqld50    log_type: mysqld51    from: 192.168.60.91
171 #output.elasticsearch:              #将171行注释
173  # hosts: ["localhost:9200"]        #将173行注释
184 output.logstash:                    #将184行取消注释
186   hosts: ["192.168.60.91:5044"]
[root@apache conf.d]# cd /etc/logstash/conf.d
[root@apache conf.d]# vim nmh.conf
input { beats { port => "5047"}
}
output {if "nginx" in [tags] {elasticsearch {hosts => ["192.168.60.82:9200","192.168.60.83:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}}if "mysqld" in [tags] {elasticsearch {hosts => ["192.168.60.82:9200","192.168.60.83:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}}if "httpd" in [tags] {elasticsearch {hosts => ["192.168.60.82:9200","192.168.60.83:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}}
​
}
[root@mysql1 filebeat]# nohup ./filebeat -e -c filebeat.yml > filebeat.out &
[root@apache conf.d]# logstash -f nmh.conf --path.data /opt/test7 &

http://www.ppmy.cn/ops/90012.html

相关文章

未授权访问漏洞系列

环境 1.此漏洞需要靶场vulhub,可自行前往gethub下载 2.需要虚拟机或云服务器等linux系统,并在此系统安装docker和docker-compose提供环境支持 3.运行docker-compose指令为docker-compose up -d即可运行当前目录下的文件 Redis未授权访问漏洞 一、进…

UE5 大鹅的点击移动 第三人称

文章目录 一、创建动画蓝图二、创建 Location 地标三、Character 和 PlayerControl 的控制四、实现效果 一、创建动画蓝图 这里以 UE5 从零开始制作跟随的大鹅-CSDN博客 创建的动态资产创建动画蓝图;需要用到的资产列表有:大鹅的骨骼网格体,…

2024 7.29~8.4 周报

一、上周工作 2024 7.22~7.28周报-CSDN博客 二、本周计划 修改论文 三、完成情况 3.1 论文修改 3.1.1 摘要 问题:所写问题是一般性的深度网络问题(过拟合),并没有针对FWI的问题(边缘不清晰、深层不清晰、速度慢…

解决VideoReader出现Thread worker: Error sending packet报错

问题现象:对于个别视频,单独读取该视频是正常,使用decord中的VideoReader读取会报如下的错误: [06:56:29] /github/workspace/src/video/ffmpeg/threaded_decoder.cc:292: [06:56:29] /github/workspace/src/video/ffmpeg/threade…

【Android】Kotlin实现选取相片拍照截图图片上传(兼容android 9-14)(超详细完整版)

需求 技术栈 : android 原生 & kotlin 1.6.20 需求 : ① 选取相片&拍照 ② 截图(CropImage) ③ 上传图片(含网络接口请求封装) 代码 一. build.gradle (Module: app) 配置依赖 // 网络请求implementation com.squareup.okhttp3:okhttp:4.9.0implementation "co…

Jmeter--http信息头管理器的使用(转载)

本文转载自: Jmeter—什么时候需要配置HTTP信息头管理器以及对应的参数如何输入_信息头管理器中的参数怎么调用-CSDN博客 1、抓包查看Request Headers(请求头)里Content-Type的信息,如下图: Content-Type的格式为&…

C#—串口和网口之间的通信详解

C#—串口和网口之间的通信 串口转网口、网口转串口,就是将网口发送来的数据包发送给串口设备,将串口设备返回的数据转发给网口客户端。 在C#中,将串口数据转换为网络数据并发送到网络,通常涉及以下步骤: 1. 创建一个…

前端构建工具Webpack 与 Vite 大对比

在现代前端开发领域,构建工具扮演着至关重要的角色。它们不仅可以帮助我们管理项目依赖关系,还可以优化我们的代码,使其在生产环境中运行得更快更高效。其中两个最受欢迎的构建工具就是 Webpack 和 Vite。在这篇文章中,我们将深入…