木易

每 天 都 要 很 哇 塞 ~ ~

生活本质本该如此?一半是回忆,一半是继续

Welcome to My Website ~~

【ELK】4-Logstash输出多项目

Logstash 不同的项目区分同的数据出口 Filebeat配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #表示的是会把 service作为fields的二级字段filebeat.inputs: - type: log enabled: true paths: - /var/log/aa.log fields: service: aa - type: log enabled: true paths: - /var/log/messages* fields: service: message **fields_under_root:**如果该选项设置为 true,则新增 **fields **成为顶级目录,而不是将其放在 **fields **目录下。自定义的 **field **会覆盖 **filebeat **默认的 field。例如添加如下配置: 1 2 3 4 #表示的是会把 service 作为 fields 顶级字段 fields: service: message fields_under_root: true Logstash 配置 没有设置 fields_under_root 为 True 的情况下: ⭐️ 即没有吧Fields的内容提升到顶级选项

【ELK】3-通过Geoip插件识别IP地址的地理位置

前言 在实际运维过程中,还需要进行一些必要的补充。 场景及解决方案 识别IP地址的地理位置 在常见的业务分析场景里面,我们往往需要对访问来源进行统计,比如说查出网站内访问量最高的文章,或者找出访问量最密集的时间点,甚至只是简单地统计页面打开的速度,我们都可以通过前面我们已经做好的日志内容检索去入手。但如果我们还想知道访问来源,在访问来源中统计出哪个省份或者城市的用户最多,就需要对IP地址进行识别了。 Logstash提供了插件 geoip,通过 **GeoLite2 **自动识别IP地址所在的区域,并自动添加需要的字段。示例配置如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 input { stdin {} # 通过键盘输入 } filter { grok { match => { "message" => '%{IPORHOST:remote_addr} - %{DATA:remote_user} \[%{HTTPDATE:time_local}\] \"%{WORD:request_method} %{DATA:uri} HTTP/%{NUMBER:http_version}\" %{NUMBER:response_code} %{NUMBER:body_sent_bytes} \"%{DATA:http_referrer}\" \"%{DATA:http_user_agent}\" "%{DATA:request_time}" "%{DATA:upstream_response_time}" "%{DATA:upstream_connect_time}" "%{DATA:upstream_header_time}" "%{DATA:http_x_forwarded_for}"' } } # 通过date插件,把nginx日志中的时间戳用作 Logstash 的 event 时间戳 date { match => [ "time_local", "dd/MMM/yyyy:HH:mm:ss Z" ] } geoip { source => "remote_addr" target => "geoip" } } output { stdout { codec => rubydebug } } 需要注意的是,必须要先完成日志内容的识别后,向geoip插件提供ip地址或者域名信息,提供到geoip的source字段,地址才可以被正确识别。同时通过target配置项指定geoip的识别结果会被组织到一个命名为geoip的字段中。 初次使用geoip的时候,可能需要等待几分钟的时候,待GeoLite2的数据库完成初始化,才可以正常工作。 经过地理位置识别后,返回的结果示例如下:

【ELK】2-Logstash配置grok插件格式化Nginx日志

前言 在之前的文章中已经完成了ELK的搭建(Elasticsearch , Logstash, Kibana); Nginx 的日志已经成功搜集到了 Elasticsearch 中;通过 Kibana 读取 ElasticSearch 中的数据,进行展示;但是对于整端采集回来的 Nginx 日志,只能作为一个 text 格式的字段储存,并没有对日志进行解析; 需求分析 Nginx日志格式 根据官网 Module nginx_http_log_module 的解析,在默认配置下,Nginx日志使用 combined 格式: 1 2 3 4 5 6 log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"' '"$request_time" "$upstream_response_time"' '"$upstream_connect_time" "$upstream_header_time"' '"$http_x_forwarded_for" '; Nginx 的 log_format 配置在 http 域中,然后对应的 access_log 使用这个日志模版: 1 127.0.0.1 - - [14/Jun/2023:11:47:03 +0800] "GET / HTTP/1.1" 200 438 "-" "Mozilla/5.

【ELK】1-搭建ELK集群,采集Nginx日志

简介 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往 Elasticsearch 上去。 Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。 Filebeat是隶属于Beats:(Beats 包括四个工具) Packetbeat(搜集网络流量数据) Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据) Filebeat(搜集文件数据) Winlogbeat(搜集 Windows 事件日志数据) ELK架构准备 ELK 常用架构 架构1(最为简单) Logstash -> Elasticsearch -> Kibana 架构2(使用Beats作为日志收集器) Beats -> Logstash -> Elasticsearch -> Kibana 架构3(引入消息队列) Beats -> Logstash -> Kafka -> Logstash -> Elasticsearch -> Kibana 环境版本信息 操作系统版本: Ubuntu 7.5.0-3ubuntu1~18.04 Elasticsearch版本:8.8.0 Logstash版本:8.8.1 Kibana版本:8.8.1 Filebeat版本:8.8.1 初级架构概述 Nginx服务器产生的访问日志会通过Filebeat传送到Logstash。 在Logstash的配置文件中定义对采集到的日志的操作,最后归档到ES。 用户通过浏览器进入Kibana,读取ES里面的数据。 服务间内外网通过 FRP 服务做内网穿透 实现目的 Nginx、Filebeat、Logstash、ES、Kibana各个服务都正常运行。 各个服务都能按照最基本的需求完成既定任务。 在Kibana可以正常访问和检索日志。 ELK 搭建步骤 Filebeat、Logstash、ES、Kibana各个服务安装和关联

【RabbitMQ】源码安装

RabbitMQ官网:https://www.rabbitmq.com/ 环境说明 1 2 3 4 5 6 root@xjr-pc:/etc/init.d# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic linux版本:Ubuntu 18.04.1 LTS erlang版本:erlang-24.0 rabbitmq版本:rabbitmq_server-3.9.19 源码安装Erlang,RabbitMQ Rabbitmq采用erlang语言开发,所以在安装rabbitmq之前,需要安装erlang。 2.1. 下载Erlang 和 RabbitMQ源码包 Erlang官网下载地址:http://www.erlang.org/download 选择 opt_src_版本号.tar.gz (这里我选择的是 otp_src_24.0.tar.gz) Linux服务器上使用 wget http://www.erlang.org/download/otp_src_24.0.tar.gz 进行下载 1 wget http://www.erlang.org/download/otp_src_24.0.tar.gz RabbitMQ官网下载:https://www.rabbitmq.com/download.html Linux 服务器上通过 wget 下载: 1 wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.19/rabbitmq-server-generic-unix-3.9.19.tar.xz 2.2. 安装Erlang 2.2.1 上传并解压 Erlang 安装包 1 2 3 4 5 6 7 8 9 root@xjr-pc:/www/server/src# pwd /www/server/src root@xjr-pc:/www/server/src# tar -zxvf otp_src_24.

【PHP】PHP源码安装

PHP官网:https://www.php.net/ 环境说明 1 2 3 4 5 6 root@xjr-pc:/etc/init.d# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic 安装:PHP 7.3.30 – 以及相关的扩展 linux版本:Ubuntu 18.04.1 LTS PHP版本:7.3.30 源码安装PHP 这里选择的是PHP7.3版本 下载PHP 7.3版本的源码包 PHP官网不同历史版本下载地址:https://www.php.net/releases/ 选择 php 版本 (这里我选择的是 PHP 7.3.30.tar.gz) Linux服务器上使用 **wget **进行下载 1 wget https://www.php.net/distributions/php-7.3.30.tar.gz 2.2. 安装PHP 解压源码包 1 2 3 4 root@xjr-pc:/home/xjr/src# tar -zxvf php-7.3.30.tar.gz root@xjr-pc:/home/xjr/src# ls | grep "php" php-7.3.30 php-7.
0%