ELK日志管理与应用

news2024/9/20 21:58:31

目录

一.ELK收集nginx日志

二.收集tomcat日志

三.Filebeat 


一.ELK收集nginx日志

1.搭建好ELK+logstash+kibana架构

2.关闭防火墙和selinux

systemctl stop firewalld
setenforce 0

3.安装nginx

[root@localhost ~]# yum install  epel-release.noarch -y 
[root@localhost ~]# yum install nginx -y

4.修改配置文件

修改nginx配置文件将nginx日志格式改为json格式

[root@localhost ~]# vim /etc/nginx/nginx.conf
http {
# 添加在 http  语句块中
log_format access_json '{"@timestamp":"$time_iso8601",'
'"host":"$server_addr",'
'"clientip":"$remote_addr",'
'"size":$body_bytes_sent,'
'"responsetime":$request_time,'
'"upstreamtime":"$upstream_response_time",'
'"upstreamhost":"$upstream_addr",'
'"http_host":"$host",'
'"url":"$uri",'
'"domain":"$host",'
'"xff":"$http_x_forwarded_for",'
'"referer":"$http_referer",'
'"status":"$status"}';

access_log  /var/log/nginx/access.log  access_json;'"status":"$status"}';
#修改默认  日志格式
systemctl  restart  nginx

5.添加 logstash 配置文件

[root@localhost ~]# vim /etc/logstash/conf.d/nginx-log.conf 

input{
   file {
    path =>  "/var/log/nginx/access.log"
    type =>  "nginx"
    start_position => "beginning"
    stat_interval => "3"
    codec =>  "json"
     }
}

output {
   elasticsearch  {
        hosts => [ "192.168.240.11:9200", "192.168.240.12:9200"]
        index => "nginx-%{+YYYY.MM.dd}"
     }
}

6.执行配置文件

logstash -f  /etc/logstash/conf.d/nginx-log.conf

二.收集tomcat日志

1.安装tomcat 服务

#!/bin/bash
#安装jdk
install_jdk () {
if [ -e jdk-8u201-linux-x64.rpm ]
then
rpm -ivh jdk-8u201-linux-x64.rpm  &> /dev/null
   if  [ $? -eq 0 ]
   then
   echo  -e "\E[1;32m jdk 安装成功 \E[0m"
   else
   echo -e "\E[1;31m jdk 安装失败 \E[0m"
   fi
else
echo "无jdk包"
fi
}

#修改环境变量 

bl () {
echo  "
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=\$JAVA_HOME/lib/tools.jar:\$JAVA_HOME/lib/dt.jar
export PATH=\$JAVA_HOME/bin:\$PATH"  >> /etc/profile

source  /etc/profile
}

install_jdk

bl

java -version


if [  -e   apache-tomcat-9.0.16.tar.gz ]
then 
tar zxvf apache-tomcat-9.0.16.tar.gz  &>/dev/null
cp -r apache-tomcat-9.0.16 /usr/local/tomcat  
useradd -s /sbin/nologin tomcat      
chown tomcat:tomcat /usr/local/tomcat/ -R

cat > /usr/lib/systemd/system/tomcat.service <<EOF
[Unit]
Description=Tomcat
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

EOF


systemctl daemon-reload
systemctl start tomcat

if systemctl  status tomcat &>/dev/null 
then
echo  -e "\E[1;32m tomcat 启动成功 \E[0m"
else
echo -e "\E[1;31m tomcat 启动失败 \E[0m"
fi

else
echo  "无tomcat  安装包"
fi

ln -s /usr/local/tomcat/bin/*     /usr/bin

2. 修改tomcat 配置文件

[root@localhost data]# vim /usr/local/tomcat/conf/server.xml 
# 最后一行

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="tomcat_access_log" suffix=".log"
               pattern="{&quot;clientip&quot;:&quot;%h&quot;,&quot;ClientUser&quot;:&quot;%l&quot;,&quot;authenticated&quot;:&quot;%u&quot;,&quot;AccessTime&quot;:&quot;%t&quot;,&quot;method&quot;:&quot;%r&quot;,&quot;status&quot;:&quot;%s&quot;,&quot;SendBytes&quot;:&quot;%b&quot;,&quot;Query?string&quot;:&quot;%q&quot;,&quot;partner&quot;:&quot;%{Referer}i&quot;,&quot;AgentVersion&quot;:&quot;%{User-Agent}i&quot;}"/>

directory="logs"    存放目录可以不改
prefix  改成  tomcat  开头
suffix  改成  log     结尾

3.重新启动tomcat服务,生成新的日志文件

tail -f  /usr/local/tomcat/logs/tomcat_access_log.2024-07-17.log

4.编辑tomcat日志的logstash配置文件

[root@localhost ~]# vim /etc/logstash/conf.d/tomcat.conf
input {
   file {
   path => "/usr/local/tomcat/logs/tomcat_access_log.*.log"
   type => "tomcat"
   start_position => "beginning"
   stat_interval => "3"
   codec =>  "json"
}}


output {
    elasticsearch {
    hosts => ["192.168.240.11:9200", "192.168.240.12:9200"]
    index => "tomcat-log-%{+YYYY.MM.dd}"
}}

5.给予tomcat日志文件可读权限,并执行logstash配置文件

chmod  +r  /usr/local/tomcat/logs/*

logstash -f /etc/logstash/conf.d/tomcat.conf

三.Filebeat 

Filebeat:轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。常应用于 EFLK 架构当中。

filebeat 结合 logstash 带来好处: 1)通过 Logstash 具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻 Elasticsearch 持续写入数据的压力 2)从其他数据源(例如数据库,S3对象存储或消息传递队列)中提取 3)将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件 4)使用条件数据流逻辑组成更复杂的处理管道

●缓存/消息队列(redis、kafka、RabbitMQ等):可以对高并发日志数据进行流量削峰和缓冲,这样的缓冲可以一定程度的保护数据不丢失,还可以对整个架构进行应用解耦。

Fliebeat+ELK部署

1.安装Filebeat

#上传软件包 filebeat-6.7.2-linux-x86_64.tar.gz 到/opt目录
tar zxvf filebeat-6.7.2-linux-x86_64.tar.gz
mv filebeat-6.7.2-linux-x86_64/ /usr/local/filebeat

2.修改配置文件

[root@apache opt]# cd /usr/local/filebeat/
[root@apache filebeat]# vim filebeat.yml
enabled: ture
27   paths:
28     - /var/log/nginx/access.log
30   tags: ["filebeat"]
31   fields:
32      service_name: nginx
33      log_type: access
34      from: 192.168.240.13
注释以下行
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.240.13:5044"]


filebeat.inputs:
- type: log         #指定 log 类型,从日志文件中读取消息
  enabled: true
  paths:
    - /var/log/messages       #指定监控的日志文件
    - /var/log/*.log
  tags: ["sys"]		#设置索引标签   这两行注意对齐否则启动不了
  fields:           #可以使用 fields 配置选项设置一些参数字段添加到 output 中
    service_name: filebeat
    log_type: syslog
    from: 192.168.80.13
    
--------------Elasticsearch output-------------------
(全部注释掉)

----------------Logstash output---------------------
output.logstash:
  hosts: ["192.168.240.13:5044"]    #指定 logstash 的 IP 和端口

3.启动配置文件

nohup ./filebeat -e -c filebeat.yml > filebeat.out &
#-e:输出到标准输出,禁用syslog/文件输出
#-c:指定配置文件
#nohup:在系统后台不挂断地运行命令,退出终端不会影响程序的运行

4.对接logstash

cd /etc/logstash/conf.d
vim filebeat.conf
input{
   beats { port => "5044"}
}
output {
   elasticsearch  {
        hosts => [ "192.168.240.11:9200", "192.168.240.12:9200"]
        index => "system-%{+YYYY.MM.dd}"
     }

   stdout  {
     codec => rubydebug
    }
}

#启动 logstash
logstash -f filebeat.conf -t  检查语法
浏览器访问 http://192.168.240.13:5601 登录 Kibana
logstash -f filebeat.conf

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

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

相关文章

谷粒商城实战笔记-37-前端基础-Vue-基本语法插件安装

文章目录 一&#xff0c;v-model1&#xff0c;双向绑定2&#xff0c;vue的双向绑定2.1 html元素上使用指令v-model2.2 model中声明对应属性2.3&#xff0c;验证view绑定modelmodel绑定view 完整代码 二&#xff0c;v-on1&#xff0c;指令简介2&#xff0c;在button按钮中添加v-…

【机器学习】超参数选择:解锁机器学习模型潜力的关键

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 超参数选择&#xff1a;解锁机器学习模型潜力的关键引言什么是超参数&#xff1…

【云原生】Kubernetes中的DaemonSet介绍、原理、用法及实战应用案例分析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

谷歌账号忘记密码怎么办?这样找回——但是90%都是找不回的。关于密码有三个建议

Google账号忘记密码怎么办&#xff1f;谷歌账号的密码不记得了怎么办&#xff1f;如何找回谷歌账号的密码&#xff1f;谷歌账号记得账号名、辅助邮箱&#xff0c;但是密码不记得了还有办法吗... 在GG账号服务给朋友们提供服务的过程中&#xff0c;时不时会遇到这样的问题&…

Linux/Windows 系统分区

1. Windows 系统 1.1 系统分区 系统分区也叫做磁盘分区&#xff0c;即分盘&#xff1b; 举个例子&#xff0c;好比家里有一个大柜子&#xff0c;把衣服&#xff0c;鞋子&#xff0c;袜子都放在里面&#xff0c;由于没有隔断&#xff0c;找的时候非常麻烦&#xff0c;找是能找…

LCD、LED与OLED的区别

在现代显示技术中&#xff0c;LCD、LED和OLED是三种常见的显示技术&#xff0c;广泛应用于笔记本电脑、手机、电视等设备。每种技术都有其独特的优势和局限性&#xff0c;了解它们之间的差异对于选择合适的显示设备至关重要。本文将详细探讨这三种显示技术的特点及其在笔记本上…

2024大数据职业技能竞赛(国赛)模块E,子任务九:用散点图展示省份平均消费额

2024大数据职业技能竞赛&#xff08;国赛&#xff09;模块E数据展现题解 编写Vue工程代码&#xff0c;根据接口&#xff0c;用基础散点图展示2020年最高10个省份平均消费额&#xff08;四舍五入保留两位小数&#xff09;&#xff0c;同时将用于图表展示的数据结构在浏览器的co…

rk3568 OpenHarmony4.1 Launcher定制开发—桌面壁纸替换

Launcher 作为系统人机交互的首要入口&#xff0c;提供应用图标的显示、点击启动、卸载应用&#xff0c;并提供桌面布局设置以及最近任务管理等功能。本文将介绍如何使用Deveco Studio进行单独launcher定制开发、然后编译并下载到开发板&#xff0c;以通过Launcher修改桌面背景…

《无线互联科技》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《无线互联科技》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《无线互联科技》级别&#xff1f; 答&#xff1a;国家级。主管单位&#xff1a;江苏省科学技术厅 主办单位&#xff1a…

生成式 AI 的发展方向,是 Chat 也是 Agent,双向奔赴

随着生成式AI技术的不断进步&#xff0c;关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统&#xff08;Chat&#xff09;中展现智慧&#xff0c;还是在自主代理&#xff08;Agent&#xff09;中体现能力&#xff1f; 一、整体介绍 生成式AI在对话系统&…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(七)-广播远程识别码(Broadcast Remote ID)

目录 引言 5.5 广播远程识别码&#xff08;Broadcast Remote ID&#xff09; 5.5.1 使用PC5的广播远程识别码 5.5.2 使用MBS的广播远程识别码 引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及…

PyTorch深度学习实战——使用深度Q学习进行Pong游戏

PyTorch深度学习实战——使用深度Q学习进行Pong游戏 0. 前言1. 结合固定目标网络的深度 Q 学习模型1.1 模型输入1.2 模型策略 2. 实现深度 Q 学习进行 Pong 游戏相关链接 0. 前言 我们已经学习了如何利用深度 Q 学习来进行 Gym 中的 CartPole 游戏。在本节中&#xff0c;我们将…

LeetCode 热题 HOT 100 (004/100)【宇宙最简单版】

【单调栈】No. 0739 每日温度 【中等】&#x1f449;力扣对应题目指路 希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#…

python-多任务编程

2. 多任务编程 2.1 多任务概述 多任务 即操作系统中可以同时运行多个任务。比如我们可以同时挂着qq&#xff0c;听音乐&#xff0c;同时上网浏览网页。这是我们看得到的任务&#xff0c;在系统中还有很多系统任务在执行,现在的操作系统基本都是多任务操作系统&#xff0c;具备…

Typora 1.5.8 版本安装下载教程 (轻量级 Markdown 编辑器),图文步骤详解,免费领取(软件可激活使用)

文章目录 软件介绍软件下载安装步骤激活步骤 软件介绍 Typora是一款基于Markdown语法的轻量级文本编辑器&#xff0c;它的主要目标是为用户提供一个简洁、高效的写作环境。以下是Typora的一些主要特点和功能&#xff1a; 实时预览&#xff1a;Typora支持实时预览功能&#xff0…

MySQL 查询 limit 100000000, 10 和 limit 10 速度一样快吗?

MySQL 查询 limit 100000000, 10 和 limit 10 速度一样快吗&#xff1f; MySQL内部分为server层和存储引擎层。一般情况下存储引擎都用innodb。 server层有很多模块&#xff0c;其中需要关注的是执行器是用于跟存储引擎打交道的组件。 执行器可以通过调用存储引擎提供的接口&…

order by 索引优化

根据 add_time 顺序扫描数据&#xff0c;然后根据 where 过滤数据&#xff0c;order_status4的数据很稀疏&#xff0c;会导致扫描很多数据 add_time 0 表达式使得无法使用add_time索引&#xff0c;则会先使用order_status进行过滤数据&#xff0c;然后对add_time进行排序&…

【帆软报表开发】图表设计入门示例

效果展示 我们希望报表样式最终展示如图下所示 操作步骤 新建模板 新建一张普通报表 新建数据库查询 输入sql语句select * from 销量&#xff0c;点击确定 插入图表 合并一片单元格 插入图表 选择柱形图&#xff0c;点击确定 设计柱形图 图表类型 如下图&#xff0c;选中…

怎样录制游戏视频?一站式教你解决

在当今数字化的时代&#xff0c;录制视频已经成为了众多游戏爱好者和职业选手必不可少的技能。录制视频不仅可以帮助玩家保存游戏的精彩瞬间&#xff0c;还能用于制作游戏教程、宣传视频等。因此&#xff0c;了解怎样录制游戏视频是非常重要的。本文将详细介绍两种流行的录制视…