当前位置: 首页 > news >正文

网站建设 中企动力洛阳分公司四川省级建设主管部门网站

网站建设 中企动力洛阳分公司,四川省级建设主管部门网站,公司宣传视频怎么制作,晾衣架 东莞网站建设使用Beat收集nginx日志和指标数据 项目需求 Nginx是一款非常优秀的web服务器#xff0c;往往nginx服务会作为项目的访问入口#xff0c;那么#xff0c;nginx的性能保障就变得非常重要了#xff0c;如果nginx的运行出现了问题就会对项目有较大的影响#xff0c;所以往往nginx服务会作为项目的访问入口那么nginx的性能保障就变得非常重要了如果nginx的运行出现了问题就会对项目有较大的影响所以我们需要对nginx的运行有监控措施实时掌握nginx的运行情况那就需要收集nginx的运行指标和分析nginx的运行日志了。 业务流程 说明 通过Beats采集Nginx的指标数据和日志数据Beats采集到数据后发送到Elasticsearch中Kibana读取数据进行分析用户通过Kibana进行查看分析报表 部署Nginx 部署教程可以参考这篇博客CentOS下如何安装Nginx 部署完成后我们就可以启动nginx了 启动完成后我们通过下面命令就可以获取到nginx中的内容了 tail -f /var/log/nginx/access.logBeats简介 通过查看ElasticStack可以发现Beats主要用于采集数据 官网地址https://www.elastic.co/cn/beats/ Beats平台其实是一个轻量性数据采集器通过集合多种单一用途的采集器从成百上千台机器中向Logstash或ElasticSearch中发送数据。 通过Beats包含以下的数据采集功能 Filebeat采集日志文件Metricbeat采集指标Packetbeat采集网络数据 如果我们的数据不需要任何处理那么就可以直接发送到ElasticSearch中 如果们的数据需要经过一些处理的话那么就可以发送到Logstash中然后处理完成后在发送到ElasticSearch 最后在通过Kibana对我们的数据进行一系列的可视化展示 Filebeat 介绍 Filebeat是一个轻量级的日志采集器 为什么要用Filebeat 当你面对成百上千、甚至成千上万的服务器、虚拟机和溶气气生成的日志时请告别SSH吧Filebeat将为你提供一种轻量型方法用于转发和汇总日志与文件让简单的事情不再繁华关于Filebeat的记住以下两点 轻量级日志采集器输送至ElasticSearch或者Logstash在Kibana中实现可视化 架构 用于监控、收集服务器日志文件. 流程如下 首先是input输入我们可以指定多个数据输入源然后通过通配符进行日志文件的匹配匹配到日志后就会使用Harvester收割机将日志源源不断的读取到来然后收割机收割到的日志就传递到Spooler卷轴然后卷轴就在将他们传到对应的地方 下载 官网地址https://www.elastic.co/cn/downloads/beats/filebeat 选中对应版本的Filebeat我这里是Centos部署的所以下载Linux版本 下载后我们上传到服务器上然后创建一个文件夹 # 创建文件夹 mkdir -p /soft/beats # 解压文件 tar -zxvf filebeat-7.9.1-linux-x86_64.tar.gz # 重命名 mv filebeat-7.9.1-linux-x86_64/ filebeat然后我们进入到filebeat目录下创建对应的配置文件 # 进入文件夹 cd filebeats # 创建配置文件 vim mogublog.yml添加如下内容 filebeat.inputs: # filebeat input输入 - type: stdin # 标准输入enabled: true # 启用标准输入 setup.template.settings: index.number_of_shards: 3 # 指定下载数 output.console: # 控制台输出pretty: true # 启用美化功能enable: true启动 在我们添加完配置文件后我们就可以对filebeat进行启动了 ./filebeat -e -c mogublog.yml然后我们在控制台输入hello就能看到我们会有一个json的输出是通过读取到我们控制台的内容后输出的 内容如下 {timestamp:2019-01-12T12:50:03.585Z,metadata:{ #元数据信息beat:filebeat,type:doc,version:6.5.4},source:,offset:0,message:hello, #元数据信息prospector:{type:stdin #元数据信息},input:{ #控制台标准输入type:stdin},beat:{ #beat版本以及主机信息name:itcast01,hostname:ElasticStack,version:6.5.4},host:{name:ElasticStack} }读取文件 我们需要再次创建一个文件叫 mogublog-log.yml然后在文件里添加如下内容 filebeat.inputs: - type: logenabled: truepaths:- /soft/beats/logs/*.log setup.template.settings:index.number_of_shards: 3 output.console:pretty: trueenable: true添加完成后我们在到下面目录创建一个日志文件 # 创建文件夹 mkdir -p /soft/beats/logs# 进入文件夹 cd /soft/beats/logs# 追加内容 echo hello a.log然后我们再次启动filebeat ./filebeat -e -c mogublog-log.yml能够发现它已经成功加载到了我们的日志文件 a.log 同时我们还可以继续往文件中追加内容 echo are you ok ? a.log追加后我们再次查看filebeat也能看到刚刚我们追加的内容 可以看出已经检测到日志文件有更新立刻就会读取到更新的内容并且输出到控制台。 自定义字段 但我们的元数据没办法支撑我们的业务时我们还可以自定义添加一些字段 filebeat.inputs: - type: logenabled: truepaths:- /soft/beats/logs/*.logtags: [web, test] #添加自定义tag便于后续的处理fields: #添加自定义字段from: test-webfields_under_root: true #true为添加到根节点false为添加到子节点中 setup.template.settings:index.number_of_shards: 3 output.console:pretty: trueenable: true添加完成后我们重启 filebeat ./filebeat -e -c mogublog-log.yml然后添加新的数据到 a.log中 echo test-web a.log我们就可以看到字段在原来的基础上增加了两个 输出到ElasticSearch 我们可以通过配置将修改成如下所示 filebeat.inputs: - type: logenabled: truepaths:- /soft/beats/logs/*.logtags: [web, test]fields:from: test-webfields_under_root: false setup.template.settings:index.number_of_shards: 1 output.elasticsearch:hosts: [127.0.0.1:9200]启动成功后我们就能看到它已经成功连接到了es了 然后我们到刚刚的 logs文件夹向 a.log文件中添加内容 echo hello mogublog a.log在ES中我们可以看到多出了一个 filebeat的索引库 然后我们浏览对应的数据看看是否有插入的数据内容 Filebeat工作原理 Filebeat主要由下面几个组件组成 harvester、prospector 、input harvester 负责读取单个文件的内容harvester逐行读取每个文件一行一行读取并把这些内容发送到输出每个文件启动一个harvester并且harvester负责打开和关闭这些文件这就意味着harvester运行时文件描述符保持着打开的状态。在harvester正在读取文件内容的时候文件被删除或者重命名了那么Filebeat就会续读这个文件这就会造成一个问题就是只要负责这个文件的harvester没用关闭那么磁盘空间就不会被释放默认情况下Filebeat保存问价你打开直到close_inactive到达 prospector prospector负责管理harvester并找到所有要读取的文件来源如果输入类型为日志则查找器将查找路径匹配的所有文件并为每个文件启动一个harvesterFilebeat目前支持两种prospector类型log和stdinFilebeat如何保持文件的状态 Filebeat保存每个文件的状态并经常将状态刷新到磁盘上的注册文件中该状态用于记住harvester正在读取的最后偏移量并确保发送所有日志行。如果输出例如ElasticSearch或Logstash无法访问Filebeat会跟踪最后发送的行并在输出再次可以用时继续读取文件。在Filebeat运行时每个prospector内存中也会保存的文件状态信息当重新启动Filebat时将使用注册文件的数量来重建文件状态Filebeat将每个harvester在从保存的最后偏移量继续读取文件状态记录在data/registry文件中 input 一个input负责管理harvester并找到所有要读取的源如果input类型是log则input查找驱动器上与已定义的glob路径匹配的所有文件并为每个文件启动一个harvester每个input都在自己的Go例程中运行下面的例子配置Filebeat从所有匹配指定的glob模式的文件中读取行 filebeat.inputs: - type: logpaths:- /var/log/*.log- /var/path2/*.log启动命令 ./filebeat -e -c mogublog-es.yml ./filebeat -e -c mogublog-es.yml -d publish参数说明 **-e**输出到标准输出默认输出到syslog和logs下**-c**指定配置文件**-d**输出debug信息 读取Nginx中的配置文件 我们需要创建一个 mogublog-nginx.yml配置文件 filebeat.inputs: - type: logenabled: truepaths:- /soft/nginx/*.logtags: [nginx]fields_under_root: false setup.template.settings:index.number_of_shards: 1 output.elasticsearch:hosts: [127.0.0.1:9200]启动后可以在Elasticsearch中看到索引以及查看数据 可以看到在message中已经获取到了nginx的日志但是内容并没有经过处理只是读取到原数据那么对于我们后期的操作是不利的有办法解决吗 Module 前面要想实现日志数据的读取以及处理都是自己手动配置的其实在Filebeat中有大量的Module可以简化我们的配置直接就可以使用如下 ./filebeat modules list得到的列表如下所示 Disabled: activemq apache auditd aws azure barracuda bluecoat cef checkpoint cisco coredns crowdstrike cylance elasticsearch envoyproxy f5 fortinet googlecloud gsuite haproxy ibmmq icinga iis imperva infoblox iptables juniper kafka kibana logstash microsoft misp mongodb mssql mysql nats netflow netscout nginx o365 okta osquery panw postgresql rabbitmq radware redis santa sonicwall sophos squid suricata system tomcat traefik zeek zscaler可以看到内置了很多的module但是都没有启用如果需要启用需要进行enable操作 #启动 ./filebeat modules enable nginx #禁用 ./filebeat modules disable nginx可以发现nginx的module已经被启用。 nginx module 配置 我们到下面的目录就能看到module的配置了 # 进入到module目录 cd modules.d/ #查看文件 vim nginx.yml.disabled得到的文件内容如下所示 # Module: nginx # Docs: https://www.elastic.co/guide/en/beats/filebeat/7.9/filebeat-module-nginx.html- module: nginx# Access logsaccess:enabled: true# 添加日志文件var.paths: [/var/log/nginx/access.log*]# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.#var.paths:# Error logserror:enabled: truevar.paths: [/var/log/nginx/error.log*]配置filebeat 我们需要修改刚刚的mogublog-nginx.yml文件然后添加到我们的module filebeat.inputs: setup.template.settings:index.number_of_shards: 1 output.elasticsearch:hosts: [127.0.0.1:9200] filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false测试 我们启动我们的filebeat ./filebeat -e -c itcast-nginx.yml如果启动的时候发现出错了错误如下所示执行如图所示的脚本即可 【新版本的ES好像不会出现这个错误】 #启动会出错如下 ERROR fileset/factory.go:142 Error loading pipeline: Error loading pipeline for fileset nginx/access: This module requires the following Elasticsearch plugins: ingest-user-agent, ingest-geoip. You can install them by running the following commands on all the Elasticsearch nodes:sudo bin/elasticsearch-plugin install ingest-user-agentsudo bin/elasticsearch-plugin install ingest-geoip启动成功后能看到日志记录已经成功刷新进去了 我们可以测试一下刷新nginx页面或者向错误日志中插入数据 echo err error.log能够看到刚刚的记录已经成功插入了 关于module的其它使用可以参考文档 https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html Metricbeat 定期收集操作系统或应用服务的指标数据存储到Elasticsearch中进行实时分析 Metricbeat组成 Metricbeat有2部分组成一部分是Module另一个部分为Metricset Module 收集的对象如 MySQL、Redis、Nginx、操作系统等 Metricset 收集指标的集合如 cpu、memorynetwork等 以Redis Module为例 下载 首先我们到官网找到Metricbeat进行下载 下载完成后我们通过xftp工具移动到指定的目录下 # 移动到该目录下 cd /soft/beats # 解压文件 tar -zxvf # 修改文件名 mv metricbeat然后修改配置文件 vim metricbeat.yml添加如下内容 metricbeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false setup.template.settings:index.number_of_shards: 1index.codec: best_compression setup.kibana: output.elasticsearch:hosts: [127.0.0.1:9200] processors:- add_host_metadata: ~- add_cloud_metadata: ~默认会指定的配置文件就是在 ${path.config}/modules.d/*.yml也就是 system.yml文件我们也可以自行开启其它的收集 启动 在配置完成后我们通过如下命令启动即可 ./metricbeat -e在ELasticsearch中可以看到系统的一些指标数据已经写入进去了 system module配置 - module: systemperiod: 10s # 采集的频率每10秒采集一次metricsets: # 采集的内容- cpu- load- memory- network- process- process_summaryMetricbeat Module Metricbeat Module的用法和我们之前学的filebeat的用法差不多 #查看列表 ./metricbeat modules list能够看到对应的列表 Enabled: system #默认启用Disabled: aerospike apache ceph couchbase docker dropwizard elasticsearch envoyproxy etcd golang graphite haproxy http jolokia kafka kibana kubernetes kvm logstash memcached mongodb munin mysql nginx php_fpm postgresql prometheus rabbitmq redis traefik uwsgi vsphere windowsNginx Module 开启Nginx Module 在nginx中需要开启状态查询才能查询到指标数据。 #重新编译nginx ./configure --prefix/usr/local/nginx --with-http_stub_status_module make make install./nginx -V #查询版本信息 nginx version: nginx/1.11.6 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) configure arguments: --prefix/usr/local/nginx --with-http_stub_status_module#配置nginx vim nginx.conf location /nginx-status {stub_status on;access_log off; }# 重启nginx ./nginx -s reload测试 结果说明 Active connections正在处理的活动连接数server accepts handled requests 第一个 server 表示Nginx启动到现在共处理了9个连接第二个 accepts 表示Nginx启动到现在共成功创建 9 次握手第三个 handled requests 表示总共处理了 21 次请求请求丢失数 握手数 - 连接数 可以看出目前为止没有丢失请求 Reading: 0 Writing: 1 Waiting: 1 ReadingNginx 读取到客户端的 Header 信息数WritingNginx 返回给客户端 Header 信息数WaitingNginx 已经处理完正在等候下一次请求指令的驻留链接开启keep-alive的情况下这个值等于 Active - (ReadingWriting) 配置nginx module #启用redis module ./metricbeat modules enable nginx#修改redis module配置 vim modules.d/nginx.yml然后修改下面的信息 # Module: nginx # Docs: https://www.elastic.co/guide/en/beats/metricbeat/6.5/metricbeat-modulenginx. html- module: nginx #metricsets: # - stubstatusperiod: 10s # Nginx hostshosts: [http://127.0.0.1] # Path to server status. Default server-statusserver_status_path: nginx-status #username: user #password: secret修改完成后启动nginx #启动 ./metricbeat -e测试 我们能看到我们的nginx数据已经成功的采集到我们的系统中了 可以看到nginx的指标数据已经写入到了Elasticsearch。 更多的Module使用参见官方文档 https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-modules.html 参考 Filebeat 模块与配置 Elastic StackELK从入门到实践
http://www.yutouwan.com/news/171682/

相关文章:

  • 自己做网站要买什么深圳网站营销型建设
  • 做网站开发语言黑龙江门户网站建设
  • 公司建立网站的费用如何做帐电商是干什么的是什么意思
  • 网站开发为什么需要团队完成wordpress手机插件怎么用
  • 网页开发和网站开发杭州互联网公司排名榜
  • 做公众号和网站主页的区别网络广告营销
  • 专业的网站建设费用网页设计代码浮动效果
  • 移动版网站模板青浦手机网站建设
  • 介休市网站建设公司均安建网站
  • 开设赌场罪建设网站中山企业网站建设公司
  • wordpress子域名设置甲马营seo网站优化的
  • 建立网站福建seo学校
  • ps模板下载网站wordpress 4.5.3 ueditor
  • 西安网站建设哪里好如何自己做优惠卷网站
  • 建设银行网站的登录验证程序安全吗响应式企业网站 下载
  • 不再更新的网站江苏发布最新消息
  • 外国网页设计网站校区网站建设
  • 湛江免费建站公司网络公司 营销型网站
  • 做直播信号网站建设网站青岛市
  • 网站上传源码后怎么弄网站建设p
  • 网站建设教程l新媒体培训班学费多少
  • 济南网站建设 选聚搜网络工业设计作品网站
  • 福建大舟建设集团有限公司 网站单机怎么做网站
  • 网站建设与管理方向注册网站建设公司主营项目类别
  • 如何建立内外网网站教育机构有哪些
  • wordpress网站如何制作seo图片优化
  • 青岛建设管理局网站做网站最专业的公司
  • 网站开发工程师的职位wordpress推荐商品主题
  • 在郑州网站建设iis 网站 500
  • 南宁网站建设产品介绍沈阳网站制作流程