64、ELK记录nginx、httpd、mysqld日志

news2024/11/24 18:14:32

logstash收集服务日志文件

一、logstash收集appache日志文件,转发到elasticsearch

1、建立在elk1、2、3搭建好elk架构基础之上

192.168.168.61   es1  2/4g

192.168.168.62   es2  2/4g

192.168.168.63   logstash  kibana  nginx/http  4/8g

三台开启服务

systemctl stop firewalld
setenforce 0

elk为主收集日志服务器

yum源安装httpd服务,logstash实现日志收集,elasticsearch实现存储,kibana实现可视化。

yum -y install httpd

cd /etc/logstash/conf.d

vim http.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.168.61:9200","192.168.168.62:9200"]
        index => "appache_access-%{+YYYY.MM.dd}"
        }
        }
        if [type] == "error" {
        elasticsearch {
        hosts => ["192.168.168.61:9200","192.168.168.62:9200"]
        index => "appache_error-%{+YYYY.MM.dd}"
        }
        }
}



logstash -f http.conf --path.data /opt/test3 &

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

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

在这里插入图片描述

进入谷歌浏览器

访问192.168.168.63访问httpd

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

刷新几次后,到kibana查看日志

在这里插入图片描述

----------------------------------------------------------------------------------以上是收集appache日志文件---------------------------------------------------------------

二、logstash收集nginx日志文件,转发到elasticsearch

--------编译安装的nginx主机部署filebeat收集日志文件发送给logstash,logstash转让es1和es2接收,再让kibana可视化阅读----------------

2.1、filebeat轻量级日志收集服务

1、可以在本机收集日志

2、也可以远程收集日志

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

logstash是在jvm环境下,资源消耗很大,启动一个logstash要消耗500M左右的内存。

filebeat只消耗10M左右的内存。

在这里插入图片描述

[root@nginx1 opt]# mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat

配置文件vim  /usr/local/filebbeat/filebeat.yml  ##配置文件因为编译安装移动软件
[root@nginx1 opt]# systemctl stop firewalld
[root@nginx1 opt]# setenforce 0
[root@nginx1 opt]# tar -xf filebeat-6.7.2-linux-x86_64.tar.gz 

[root@nginx1 opt]# mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat

[root@nginx1 opt]# cd /usr/local/filebeat/
[root@nginx1 filebeat]# ls
fields.yml              filebeat.yml  module      README.md
filebeat                kibana        modules.d
filebeat.reference.yml  LICENSE.txt   NOTICE.txt
[root@nginx1 filebeat]# vim filebeat.yml 

 21 - type: log
 22   enabled: true
 23   paths:
 24     - /usr/local/nginx/logs/access.log
 25     - /usr/local/nginx/logs/error.log
##开启日志收集,以及确定日志文本路径,指定标签和发送到目标主机的logstash
 26   tags: ["nginx"]
 27   fields:
 28     service_name: 192.168.168.31_nginx
 ##定义日志的名称
 29     log_type: nginx
 30     from: 192.168.168.31

在这里插入图片描述

151 #output.elasticsearch:  ##注释
152   # Array of hosts to connect to.
153 #   hosts: ["localhost:9200"]   ##注释

在这里插入图片描述

164 output.logstash:
165   # The Logstash hosts
166   hosts: ["192.168.168.63:5045"]  ##日志发送到此日志收集服务器logstash

在这里插入图片描述

5044 logstash默认的端口

端口范围是计算机网络通信中的一个重要概念,用于标识网络通信中的不同应用程序或服务。端口号通过一个16位的数字来表示,因此其范围是从0到65535。这些端口号可以根据其用途和分配方式进一步细分为不同的类别,具体如下:

### 端口号分类

1. 系统或保留端口(Well-Known Ports)

   :

   - 范围:从0到1023。
   - 用途:这些端口号通常分配给系统级或者熟知的服务和应用。例如,HTTP服务通常运行在端口80上,而HTTPS则是443。普通用户通常不拥有权限来绑定这些端口。

2. 注册端口(Registered Ports)

   :

   - 范围:从1024到49151。
   - 用途:这些端口号没有固定的用途,但对于一些无法使用系统端口的服务来说,这些端口号是预留的。有些软件企业会为自己的服务预留一些端口号。

3. 动态和/或私有端口(Dynamic or Private Ports)

   :

   - 范围:从49152到65535。
   - 用途:这些端口不被ICANN或IANA管理,可供任意使用,常用于客户端软件临时通讯,比如临时的端点。

### 端口号的特殊用途

- **端口0**:通常不用于常规网络通信,但在某些特殊情况下用作服务请求的占位标识。
- **端口号80和443**:分别是HTTP和HTTPS通信的标准端口。
- **端口号25**:通常用于SMTP,即简单邮件传输协议,用于电子邮件发送。
- **端口号53**:通常用于DNS服务,即域名解析服务。

### 端口号的使用注意事项

- 尽管每个端口号通常与某些特定的服务相关联,但任何端口都可以被任何服务或应用程序使用,前提是操作系统和网络策略允许。
- 管理员可以根据安全要求或配置更改端口号的分配,但应确保相关服务或应用程序能够正确识别和使用新的端口号。

### 总结

端口范围是从0到65535,根据端口号的分配和使用方式,可以将其分为系统或保留端口、注册端口和动态或私有端口。这些端口号在计算机网络通信中起着至关重要的作用,用于标识不同的服务和应用程序。了解端口号的分类和用途有助于更好地管理和维护网络通信环境。

2.2、logstash设置文件识别标签,接收文件

logstash收集nginx的日志,接收filebeat发送过来的日志文件,识别指定的标签,进行接收。

1、建立在elk1、2、3搭建好elk架构基础之上

192.168.168.61 es1 2/4g

192.168.168.62 es2 2/4g

192.168.168.63 logstash kibana nginx/http 4/8g

[root@elk3 ~]# cd /etc/logstash/conf.d/

[root@elk3 conf.d]# vim nginx_31.conf 



input {
        beats { port => "5045"}
}
output {
        if "nginx" in [tags] {
                elasticsearch {
                hosts => ["192.168.168.61:9200","192.168.168.62:9200"]
                index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
        }
}
}


[root@nginx1 filebeat]# pwd
/usr/local/filebeat

nohup ./filebeat -e -c filebeat.yml > filebeat.out &  ##先启动nginx的filebeat轻量级收集日志服务

##解释:
nohup ./filebeat -e -c filebeat.yml > filebeat.out &

-e:输出到标准输出

-c:指定配置文件

nohup:在系统的后台运行,不会因为终端的额关闭而停止,关闭xhell也不会关闭
可以把运行的日志保存到指定文件



[root@elk3 conf.d]# logstash -f nginx_31.conf --path.data /opt/test3 &

浏览器打开访问192.168.168.31(也就是nginx,filebeat服务器)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

ps -aux | grep logstash ##查看logstash开启的后台进程

在这里插入图片描述

三、filebeat实现收集转发httpd、nginx、msqld的日志到logstash,logstash发送到es存储,kibana实现可视化读

1、建立在elk1、2、3搭建好elk架构基础之上

192.168.168.61 es1 2/4g

192.168.168.62 es2 2/4g

192.168.168.63 logstash kibana nginx/http 4/8g

192.168.168.11 编译安装mysql 编译安装nginx yum源安装httpd 编译拿安装filebeat

远程收集发送到logstash主机

192.168.168.11_mysqld-* ##mysql的日志需要在/etc/my.cnf下配置打开

192.168.168.11_nginx-*

192.168.168.11_httpd-*

-------------------以下操作均对nginx+mysql+http进行操作--------------------

vim /etc/my.cnf

max_allowed_packet=16M
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log ##数据库日志存储位置
server-id = 1

systemctl restart mysqld ##改完配置文件重启服务

yum -y install httpd ##yum源安装httpd

nginx端口和httpd服务端口一致

vim /usr/local/nginx/conf/nginx.conf ##编译安装nginx的配置文件目录

vim /etc/nginx/nginx.conf ##yum源安装的nginx的配置文件目录

server {
listen 81;##避免端口冲突,设置监听端口为81;

systemctl restart nginx.service ##改完配置文件重启服务

systemctl restart httpd ##重启服务

测试服务开启状态

curl 192.168.168.11 ##查看appache服务开启状态

或者浏览器访问

在这里插入图片描述

curl 192.168.168.11:81 ##查看nginx服务开启状态

在这里插入图片描述

编译安装filebeat,并配置文件

[root@mysql1 opt]# systemctl stop firewalld
[root@mysql1 opt]# setenforce 0
[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 /usr/local/filebeat

[root@mysql1 opt]# cd /usr/local/filebeat/
[root@mysql1 filebeat]# ls
fields.yml              filebeat.yml  module      README.md
filebeat                kibana        modules.d
filebeat.reference.yml  LICENSE.txt   NOTICE.txt
[root@mysql1 filebeat]# vim /usr/local/filebeat/filebeat.yml 



 21 - type: log
 22   enabled: true
 23   paths:
 24     - /var/log/httpd/access_log
 25     - /var/log/httpd/error_log
 26   tags: ["httpd"]
 27   fields:
 28     service_name: 192.168.168.11_http
 29     log_type: httpd
 30     from: 192.168.168.11
 31 
 32 - type: log
 33   enabled: true
 34   paths:
 35     - /usr/local/nginx/logs/access.log
 36     - /usr/local/nginx/logs/error.log
 37   tags: ["nginx"]
 38   fields:
 39     service_name: 192.168.168.11_nginx
 40     log_type: nginx
 41     from: 192.168.168.11
 42 
 43 - type: log
 44   enabled: true
 45   paths:
 46     - /usr/local/mysql/data/mysql_general.log
 47   tags: ["mysqld"]
 48   fields:
 49     service_name: 192.168.168.11_mysqld
 50     log_type: mysqld
 51     from: 192.168.168.11





171 #output.elasticsearch:
172   # Array of hosts to connect to.
173 #  hosts: ["localhost:9200"]

184 output.logstash:
185   # The Logstash hosts
186   hosts: ["192.168.168.63:5048"]

在这里插入图片描述

--------------------以上配置好filebeat的日志收集转发到logstash-----------------------

-----------------------------下面配置logstash的日志接收文件--------------------------

[root@elk3 ~]# cd /etc/logstash/conf.d/
[root@elk3 conf.d]# ls
http.conf  nginx_31.conf  nmh_11.conf  system.conf
[root@elk3 conf.d]# vim nginx_31.conf 

input {
        beats { port => "5048"}
}
output {
        if "nginx" in [tags] {
                elasticsearch {
                        hosts => ["192.168.168.61:9200","192.168.168.62:9200"]
                        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
        }
}
        if "mysqld" in [tags] {
                elasticsearch {
                        hosts => ["192.168.168.61:9200","192.168.168.62:9200"]
                        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
        }
}
        if "httpd" in [tags] {
                elasticsearch {
                        hosts => ["192.168.168.61:9200","192.168.168.62:9200"]
                        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
        }
}
}

-------------------------以上配置文件已完成,下面开始启动,需要先启动filebeat服务,转发到logstash,再启动logstash--------------------------------

在filebeat主机上后台启动filebeat文件

[root@mysql1 ~]# cd /usr/local/filebeat/
[root@mysql1 filebeat]# ls
data        filebeat.out            kibana       modules.d
fields.yml  filebeat.reference.yml  LICENSE.txt  NOTICE.txt
filebeat    filebeat.yml            module       README.md
[root@mysql1 filebeat]# nohup ./filebeat -e -c filebeat.yml > filebeat.out &

在logstash主机上启动,实现接收filebeat的日志文件

[root@elk3 conf.d]# pwd
/etc/logstash/conf.d
[root@elk3 conf.d]# logstash -f nmh_11.conf --path.data /opt/test3 &

-----------------------------------以上服务全部启动完成----------------------------

测试:

浏览器打开访问192.168.168.31(也就是mysqld,httpd,nginx,filebeat服务器,此时http服务设置的是80端口,nginx设置81端口,mysqld的端口为3306)

在这里插入图片描述

在这里插入图片描述

logstash -f nginx_11.conf --path.data /opt/test3 &

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《数据结构》(C语言版)第1章 绪论(上)

第1章 绪论 1.1 数据结构的研究内容1.2 基本概念和术语 1.1 数据结构的研究内容 N.沃思(Niklaus Wirth)教授提出: 程序算法数据结构 电子计算机的主要用途 早期:主要用于数值计算 后来:非数值计算,复杂的具有一定结构…

Gstreamer配合srs服务器实现RTMP直播和WebRtc直播

前言 上一篇文章,实现了配合腾讯云直播的推流,但是需要花钱,于是就在思考能不能搞一个局域网内,免费的RTMP直播呢? 最终发现了可以使用srs服务器。如果成功了,以后也可以使用webrtc的直播推流。 以下是实现效果: 一、搭建srs服务器: 参考:ubuntu环境下搭建SRS服务器(…

windows系统关闭开机自检硬盘

效果: 注册表关闭开机硬盘自检,你可以按照以下步骤操作: 打开注册表编辑器: 按 Win R 键打开“运行”对话框。输入 regedit 并按回车,打开注册表编辑器。 定位到自检相关的键: 依次展开以下路径&#x…

认识经典蓝牙

现在BLE很流行,本人接触BLE也更多,而对经典蓝牙BR/EDR的开发知之甚少,而且网上关于经典蓝牙的资料也很少,所以,想要有更多了解。 参考: https://www.nordicsemi.cn/news/bluetoothle-and-bluetoothclassic/…

mac|运行别人的SpringBoot+Vue项目

一、运行vue 1、查看项目版本,在package.json中查看,在dependencies中的vue就是对应的版本 2、查看本机的vue版本:vue -V 3、删除node_modules 、package-lock.json 4、运行npm install 如果卡住不动,可能是因为网络问题&…

EasyAR_稀疏空间图

EasyAR_稀疏空间图 EasyAR4.6.3 丨 Unity2020.3.15f2 1.创建稀疏空间地图 在EasyAR开发中心后台创建Scene许可证密钥,并且使用稀疏空间地图 2.设置稀疏空间地图库名,对稀疏空间地图进行管理,设置密钥 3.复制密钥到Unity中 添加Spatial Map Ap…

N4 - Pytorch实现中文文本分类

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 任务描述步骤环境设置数据准备模型设计模型训练模型效果展示 总结与心得体会 任务描述 在上周的任务中,我们使用torchtext下载了托管的英文的…

Web 框架

Web 框架 Web服务器Web服务器的主要功能常见的Web服务器软件包 Web 框架常用 Python Web 框架选择Python Web框架的考虑因素 WSGIWSGI的主要特点WSGI的工作原理常见的WSGI服务器和框架: 静态资源定义与特点静态资源的类型静态资源的管理与优化 动态资源定义与特点动…

Java入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享

场景 作为一名Java开发者,势必经历过从入门到自学、从基础到进阶、从学习到强化的过程。 当经历过几年企业级开发的磨炼,再回头看之前的开发过程、成长阶段发现确实是走了好多的弯路。 作为一名终身学习的信奉者,秉承Java体系需持续学习、…

Java | Leetcode Java题解之第316题去除重复字母

题目&#xff1a; 题解&#xff1a; class Solution {public String removeDuplicateLetters(String s) {boolean[] vis new boolean[26];int[] num new int[26];for (int i 0; i < s.length(); i) {num[s.charAt(i) - a];}StringBuffer sb new StringBuffer();for (in…

arduino程序-MC猜数字2、3、4(基础知识)

arduino程序-MC猜数字2、3、4&#xff08;基础知识&#xff09; 1-20 MC猜数字2-LED数码管数码管LED数码管应用程序示例 1-21 MC猜数字3- while回顾While循环语句Do while循环语句 1-22 MC猜数字4-switch caseIf判断myNumber数字显示If ... else ifSwitch case示例程序产生随机…

域环境的搭建 内网学习不会搭建环境???

今天有空写一下内网环境的搭建的步骤&#xff0c;我下面是我搭建的环境的图。 我搭建的是父子域&#xff0c;DC是父域控&#xff0c;WEB为子域控 然后下面我来说一下我是怎么搭建的。 首先我们要准备一些机器的镜像文件&#xff0c;如果你是复制的虚拟机的话&#xff0c;你要把…

CLIP论文详解

文章目录 前言一、CLIP理论1.CLIP思想2.模型结构 二、CLIP预训练1.数据集2.训练策略3.模型选择 三、Zero-Shot推理四、CLIP伪代码实现五、CLIP局限性总结 前言 CLIP这篇论文是OpenAI团队在2021年2月底提出的一篇论文&#xff0c;名字叫做《Learning Transferable Visual Models…

Markdown与数学公式

在写偏理科的文章的时候&#xff0c;多多少少会涉及到一些公式、函数的输入&#xff0c;本篇就来讲讲如何在 Markdown 中书写数学公式。 在此之前&#xff0c;我们先介绍下 LaTex 和 MashJax&#xff0c;Markdown 就是基于它们来实现数学公式的输入。 LaTex 简介 LaTex &…

JDK-java.nio包详解

JDK-java.nio包详解 概述 一直以来Java三件套&#xff08;集合、io、多线程&#xff09;都是最热门的Java基础技术点&#xff0c;我们要深入掌握好这三件套才能在日常开发中得心应手&#xff0c;之前有编写集合相关的文章&#xff0c;这里出一篇文章来梳理一下io相关的知识点。…

MyBatis 源码学习 | Day 1 | 了解 MyBatis

什么是 MyBatis 在对一项技术进行深入学习前&#xff0c;我们应该先对它有个初步的认识。MyBatis 是一个 Java 持久层框架&#xff0c;用于简化数据库的操作。它通过 XML 或注解的方式配置和映射原始类型、接口和 Java POJO&#xff08;Plain Old Java Objects&#xff0c;普通…

跑深度学习模型I:一文正确使用CUDA

1. 安装显卡驱动NVIDIA 如果出现这个问题&#xff0c;是NVIDIA环境配置原因。一定要注意配置系统环境变量正确。 C:\Users\2605304845>nvcc --version nvcc 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 - CSDN文库 2. 安装CUDA 安装时注意版本对应…

C语言--函数

1. 函数定义 语法&#xff1a; 类型标识符 函数名&#xff08;形式参数&#xff09; {函数体代码 } &#xff08;1&#xff09;类型标识符 --- 数据类型&#xff08;函数要带出的结果的类型&#xff09; 注&#xff1a;数组类型不能做函数返回结果的类型&#xff0c;如果函…

pt模型转onnx模型,onnx模型转engine模型,pt模型转engine模型详细教程(TensorRT,jetpack)

背景 背景是需要在nvidia jetpack4.5.1的arm64设备上跑yolov8,用TensorRT加速&#xff0c;需要用*.engine格式的模型&#xff0c;但是手头上的是pt格式模型&#xff0c;众所周知小板子的内存都很小&#xff0c;连安装ultralytics依赖库的容量都没有&#xff0c;所以我想到在wi…

【开源】嵌入式Linux(IMX6U)应用层综合项目(1)--云平台调试APP

目录 1.简介 1.1功能介绍 1.2技术栈介绍 1.3演示视频 1.4硬件介绍 2.软件设计 2.1连接阿里云 2.2云平台调试UI 2.3Ui_main.c界面切换处理文件 2.4.main函数 3.结尾&#xff08;附网盘链接&#xff09; 1.简介 此文章并不是教程&#xff0c;只能当作笔者的学习分享&…