Nginx监控安装:Filebeat+ES+Grafana(全)

这篇具有很好参考价值的文章主要介绍了Nginx监控安装:Filebeat+ES+Grafana(全)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

’ $remote_user’

’ [$time_local]’

’ “$request”’

’ $status’

’ $body_bytes_sent’

’ “$http_referer”’

’ “$http_user_agent”’

’ “$http_x_forwarded_for”’

’ $upstream_response_time’

’ $upstream_addr’;

access_log logs/access.log main;

upstream gateway_pool {

网关的地址

server 106.12.129.14:9200;

}

server {

listen 80;

#this line shoud be include in every server block

include /app/openresty/nginx/waf/verynginx/verynginx/nginx_conf/in_server_block.conf;

#include /app/openresty/nginx/waf/verynginx/nginx_conf/in_http_block.conf;

location / {

proxy_http_version 1.1;

proxy_set_header Connection “”;

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;

proxy_set_header Host $host;

proxy_pass http://gateway_pool;

}

}

}

#---------------VeryNginx config code end-----------------

如果不使用 VeryNginx 提供的配置模版,你也可以手动把这部分加入到自己的 Nginx 配置文件中. (如果安装路径不是/app/openresty ,需要对 lua_package_cpath 和 lua_package_path 的值进行修改)

1.4 启/停服务

启动服务: /app/openresty/nginx/sbin/nginx

停止服务:/app/openresty/nginx/sbin/nginx -s stop

1.5 配置VeryNginx

打开浏览器访问 http://127.0.0.1/VeryNginx/dashboard/index.html

默认用户名和密码:verynginx / verynginx 。

登录之后就可以查看状态,并对配置进行修改了。修改配置后,记得到 「配置 > 系统 > 全部配置」去保存.

提示

  • 通过 VeryNginx 控制面板保存新配置之后,会立刻生效,并不需要 restart/reload Nginx。

  • VeryNginx 把配置保存在 /app/openresty/nginx/waf/verynginx/configs/config.json 里面。

  • 如果因为配错了什么选项,导致无法登录,可以手动删除 config.json 来清空配置。

已安装成功openresty

可以用网盘的覆盖/app/openresty/nginx/waf目录

链接:https://pan.baidu.com/s/1nt2SfrDtk83Q4gvwIlpBfQ 提取码:g5hs

2. 安装elasticsearch


wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz

tar -zxvf elasticsearch-6.5.4.tar.gz -C /usr/local/

useradd es

chown -R es:es /usr/local/elasticsearch-6.5.4/

cd /usr/local/elasticsearch-6.5.4

修改config/jvm.options为内存的一半大小

vi config/jvm.options

-Xms512m

-Xmx512m

修改 max file 和 max virtual memory 参数

用root 或 sudo 用户

vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

并执行命令:

sysctl -p

配置端口 跨域

vi /usr/local/elasticsearch-6.5.4/config/elasticsearch.yml

cluster.name: elasticsearch

node.name: node-1

network.host: 0.0.0.0

http.port: 9200

node.max_local_storage_nodes: 2

http.cors.enabled: true

http.cors.allow-origin: “*”

切换es用户

su - es

在Elasticsearch主目录下运行下列命令来安装这些插件:

bin/elasticsearch-plugin install ingest-geoip

bin/elasticsearch-plugin install ingest-user-agent

es用户启动

/usr/local/elasticsearch-6.5.4/bin/elasticsearch -d

root用户启动

su - es -c ‘/usr/local/elasticsearch-6.5.4/bin/elasticsearch -d’

2.1 windows 安装elasticseach-head

  • 访问 https://github.com/mobz/elasticsearch-head 下载 head 插件(选择 zip 压缩包下载方式)。

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

  • 修改 ~\elasticsearch-6.6.2\elasticsearch-head-master\Gruntfile.js,在对应的位置加上 hostname:’*’ 配置项。

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

  • 在 ~\elasticsearch-6.6.2\elasticsearch-head-master 下执行 npm install 开始安装,完成后可执行 grunt server 或者 npm run start 运行 head 插件。

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

  • 安装成功,访问 http://localhost:9100/。

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

2.2 注意事项

  • 在 head 中连接 ES 失败。

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

对于 Access-Control-Allow-Origin 的问题,可以在 ElasticSearch 6.x 的 ~\config\elasticsearch.yml 文件的末尾加入以下代码:

http.cors.enabled: true

http.cors.allow-origin: “*”

node.master: true node.data: true

配置更新后,重启 ES 即可连接成功。

3. 安装Filebeat


推荐博客:https://www.cnblogs.com/cjsblog/p/9495024.html

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.4-linux-x86_64.tar.gz

tar -zxvf filebeat-6.5.4-linux-x86_64.tar.gz -C /usr/local/

cd /usr/local/

mv filebeat-6.5.4-linux-x86_64 filebeat-6.5.4

cd /usr/local/filebeat-6.5.4

vi filebeat.yml

filebeat.inputs:

  • type: log

enabled: false

paths:

  • /app/openresty/nginx/logs/access.log

#============================= Filebeat modules ===============================

filebeat.config.modules:

path: ${path.config}/modules.d/*.yml

reload.enabled: false

setup.template.settings:

index.number_of_shards: 3

setup.template.name: “nginx-log-”

setup.template.pattern: “nginx-log-*”

setup.template.overwrite: true

output.elasticsearch:

enabled: true

hosts: [“106.13.3.200:9200”]

index: “nginx-log-%{+yyyy-MM-dd}”

#================================ Processors =====================================

Configure processors to enhance or manipulate events generated by the beat.

processors:

#- add_host_metadata: ~

#- add_cloud_metadata: ~

  • drop_fields:

fields: [“beat.name”, “beat.version”, “host.architecture”,“host.architecture”,“host.name”,“beat.hostname”,“log.file.path”]

3.1 启用模块nginx

cd /usr/local/filebeat-6.5.4/modules.d

vi nginx.yml

执行以下配置

  • module: nginx

Access logs

access:

enabled: true

Set custom paths for the log files. If left empty,

Filebeat will choose the paths depending on your OS.

var.paths: [“/app/openresty/nginx/logs/access.log”]

Error logs

error:

enabled: true

Set custom paths for the log files. If left empty,

Filebeat will choose the paths depending on your OS.

var.paths: [“/app/openresty/nginx/logs/error.log”]

3.2 配置 default.json

cd /usr/local/filebeat-6.5.4/module/nginx/access/ingest

vi default.json

{

“description”: “Pipeline for parsing Nginx access logs. Requires the geoip and user_agent plugins.”,

“processors”: [{

“grok”: {

“field”: “message”,

“patterns”:[

“”?%{IP_LIST:nginx.access.remote_ip_list} - %{DATA:nginx.access.user_name} \[%{HTTPDATE:nginx.access.time}\] “%{GREEDYDATA:nginx.access.info}” %{NUMBER:nginx.access.response_code} %{NUMBER:nginx.access.body_sent.bytes} “%{DATA:nginx.access.referrer}” “%{DATA:nginx.access.agent}” “%{GREEDYDATA:nginx.access.xforwardedfor}” %{GREEDYDATA:nginx.access.upstream_response_time} %{GREEDYDATA:nginx.access.upstream_addr}"

],

“pattern_definitions”: {

“IP_LIST”: “%{IP}(”?,?\s*%{IP})*"

},

“ignore_missing”: true

}

}, {

“grok”: {

“field”: “nginx.access.info”,

“patterns”: [

“%{WORD:nginx.access.method} %{DATA:nginx.access.url} HTTP/%{NUMBER:nginx.access.http_version}”,

“”

],

“ignore_missing”: true

}

}, {

“remove”: {

“field”: “nginx.access.info”

}

}, {

“split”: {

“field”: “nginx.access.remote_ip_list”,

“separator”: “”?,?\s+"

}

}, {

“script”: {

“lang”: “painless”,

“inline”: “boolean isPrivate(def ip) { try { StringTokenizer tok = new StringTokenizer(ip, ‘.’); int firstByte = Integer.parseInt(tok.nextToken()); int secondByte = Integer.parseInt(tok.nextToken()); if (firstByte == 10) { return true; } if (firstByte == 192 && secondByte == 168) { return true; } if (firstByte == 172 && secondByte >= 16 && secondByte <= 31) { return true; } if (firstByte == 127) { return true; } return false; } catch (Exception e) { return false; } } def found = false; for (def item : ctx.nginx.access.remote_ip_list) { if (!isPrivate(item)) { ctx.nginx.access.remote_ip = item; found = true; break; } } if (!found) { ctx.nginx.access.remote_ip = ctx.nginx.access.remote_ip_list[0]; }”

}

}, {

“remove”:{

“field”: “message”

}

}, {

“rename”: {

“field”: “@timestamp”,

“target_field”: “read_timestamp”

}

}, {

“date”: {

“field”: “nginx.access.time”,

“target_field”: “@timestamp”,

“formats”: [“dd/MMM/YYYY:HⓂ️s Z”]

}

},{

“remove”: {

“field”: “nginx.access.time”

}

}, {

“user_agent”: {

“field”: “nginx.access.agent”,

“target_field”: “nginx.access.user_agent”

}

}, {

“rename”: {

“field”: “nginx.access.agent”,

“target_field”: “nginx.access.user_agent.original”

}

}, {

“geoip”: {

“field”: “nginx.access.remote_ip”,

“target_field”: “nginx.access.geoip”

}

}, {

“script”: {

“lang”: “painless”,

“inline”: “String tmp=ctx.nginx.access.upstream_response_time; if (tmp==‘-’){ctx.nginx.access.upstream_response_time=-1.0}else{ctx.nginx.access.upstream_response_time=Float.parseFloat(tmp)}”

}

}],

“on_failure” : [{

“set” : {

“field” : “error.message”,

“value” : “{{ _ingest.on_failure_message }}”

}

}]

}

cd /usr/local/filebeat-6.5.4

nohup ./filebeat -e -c filebeat.yml >&/dev/null &

4. 安装Grafana


自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
mg-19boGMyf-1711804720790)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

/usr/share/filebeat/module/nginx/access/ingest,程序员,nginx,elasticsearch,grafana

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

[外链图片转存中…(img-GukxfK1l-1711804720791)]

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

[外链图片转存中…(img-Mmb1AHPY-1711804720791)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-851702.html

到了这里,关于Nginx监控安装:Filebeat+ES+Grafana(全)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • filebeat采集日志数据到kafka(一)(filebeat->kafka->logstash->es)

    一、filebeat安装 filebeat-kafka版本适配 1、安装包下载 https://www.elastic.co/cn/downloads/past-releases#filebeat 解压 2、新建yml配置文件,如test.yml 3、Filebeat启动和停止 启动:./filebeat -c test.yml 停止:kill -9 PID

    2024年02月16日
    浏览(89)
  • filebeat kibana elasticsearch 日志监控

    解压三个压缩包 一、filebeat的安装部署 1、打开filebeat的配置文件 2、Filebeat inputs 处打开日志输入开关,设置要监控的路径  3、Outputs 输出中设置Elasticsearch output的输出地址 4、配置kibana 的地址 5、执行  ./filebeat setup -e 二、Elasticsearch 安装部署 1、修改配置文件  2、添加如下内

    2024年02月14日
    浏览(37)
  • 使用Filebeat收集并分析nginx的访问日志

    之前我们已经搞定了nginx+keepalived双机,花了一个多星期时间把业务都迁移过来之后,基本稳定,中间还遇到一次意外宕机,keepalived也顺利做了主备切换,接下来就要做日志分析了。 日志分析,本身从等保的要求就是需要日志第三方存储的,另外就是日志也是分析访问量的一

    2024年02月02日
    浏览(69)
  • k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es

    如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台 网关gateway服务 ,然后到 鉴权spring-sercurity服务 ,然后到 业务订单服务 ,然后到 支付服务 ,后续还有发货、客户标签等等服务

    2024年02月16日
    浏览(46)
  • EFLK日志平台(filebeat-->kafka-->logstash-->es-->kiabana)

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 1. es安装(单节点部署) 前提 安装 2.es web 查看 浏览器访问 http://esIP:9200 或者本地访问curl ‘http://localhost:9200/?pretty’ 安

    2024年02月10日
    浏览(37)
  • 【微服务】日志搜集es+kibana+filebeat+redis+logstash(单机)

    日志搜集系统搭建 基于7.17.16版本 ps: 项目是toB的,日志量不大 7.17.16版本。8.x版本需要JDK11 java8 elastic 软件不能以root用户启动,需要创建用户 redis elasticsearch kibana logstash filebeat 下载tar包,解压即可 es部署 配置ES_JAVA_HOME 略 elasticsearch.yml 修改config/elasticsearch.yml中参数 系统参数

    2024年01月16日
    浏览(43)
  • filebeat 采集k8s 中nginx deployment 日志

    一、背景 在k8s集群中,已经部署了nginx应用,需要使用elk来收集日志。 注意:elk并没有放在k8s集群中,使用单独的服务器进行安装。不推荐elk放在k8s集群中! 其中filebeat,使用DaemonSet方式部署,这样就可以自动收集了。 操作系统:centos 7.6 k8s版本:1.18.1 ip地址:10.212.82.63 配

    2024年02月13日
    浏览(39)
  • ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

    节点名称 节点名称 ip地址 kibana kibana 10.0.0.100 elasticsearch elasticsearch 10.0.0.101 filebeat filebeat 10.0.0.102 elasticsearch、Kibana、metricbeat、filebeat版本要一致,如都是7.17.5版本 1.2.1 安装elasticsearch CPU 2C 内存4G或更多 1.2.2 安装 Kibana 1.2.3 安装metricbeat 1.2.3 安装filebeat 1.2.4 安装Nginx 1.2.5 安装t

    2024年02月09日
    浏览(53)
  • docker filebeat 将日志多级目录和多维json数据日志同步到es

    使用的时候先调试调试配置,调试成功在尝试写入es,如果es写入失败就是es账户.密码/白名单.和index未创建的问题,细节可以留言 setup.template.priority 模板优先级 调整这个可以配置一台机器多个filebeat 容器启动 多级目录日志和多维josn日志结构 以docker形式启动filebeat filebeat 配置 

    2024年01月17日
    浏览(35)
  • 5、Elasticsearch7.6.1 filebeat介绍及收集kafka日志到es示例

    1、介绍lucene的功能以及建立索引、搜索单词、搜索词语和搜索句子四个示例实现 2、Elasticsearch7.6.1基本介绍、2种部署方式及验证、head插件安装、分词器安装及验证 3、Elasticsearch7.6.1信息搜索示例(索引操作、数据操作-添加、删除、导入等、数据搜索及分页) 4、Elasticsearch7

    2024年02月16日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包