ELK5.X搭建并收集Nginx日志

ELK收集nginx和tomcat日志 查看elasticsearch是否收到。 阅读详情

ELK5.X搭建并收集Nginx日志

ELK

 

  • ELK5.X搭建并收集Nginx日志
    • 一、基础环境配置及软件包下载
    • 二、安装Elasticsearch
    • 三、安装logstash
    • 四、安装Kibana
    • 五、安装并配置Nginx收集日志
    • 六、Elasticsearch Head插件安装

本文转载https://www.i4t.com

 


ELK Stack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。

ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点:

• 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
• 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
• 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
• 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
• 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。

ELK地址:https://www.elastic.co/
Logstash 最佳实践:http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html
Elasticsearch 权威指南:http://www.learnes.net/index.html
ELKStack中文社区:https://kibana.logstash.es/content/
更多ELK文章:https://www.i4t.com/category/elkstack/

 

  对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch(java)、Logstash(jruby)、Kibana技术栈的结合,一个通 用的架构如下图所示:
image_1d3o2hl6ltsp1gnk1p1c13nnvalm.png-136.7kB
图片解释:elk 前面主要靠logstash来进行收集日志,logstash将日志上传到broker上,后面还有一个logstash用来读取broker中的日志,在将日志存储到es里面,最后用kibana练到es上进行展示

提示:我们可以将Elasticsearch简称为es

1.Elasticsearch介绍
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

2.Logstash介绍

Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。
  kibana也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面。

提示:logstash与es没有任何关系
image_1d3o2ia8t8m11sbn16ouotv11pc13.png-68.9kB

ELK几个概念

 
  1. INPUT 进
  2. FILTER (支持过滤的功能)
  3. OUTPUT 出

33333333.png-43.3kB
首先LogStash是收集日志,它收集完日志就需要把日志存储下来,所以我们可以用运输者的身份来表示LogStash(INPUT or OUTPUT)LogStash可以在日志发送之前做一个过滤(OUTPUT之前)

3.Kibana简介
Kibana是为 Elasticsearch 设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。

Kibana版本使用php、ruby、js、jruby、node.js等不同语言编写
Kibana 4使用nodejs进行编写(nodejs号称全栈,什么都可以干)

本段文章截取https://www.i4t.com/category/elkstack/


image_1d3o2gruh4h11npj9akfs0kq59.png-96.2kB

温馨提示:本次搭建属于单点,不算是集群。集群搭建只需要改相关的配置文件重启即可

环境 CentOS Linux release 7.4.1708 (Core)
版本 
elasticsearch-5.5.0.tar.gz
kibana-5.5.0-linux-x86_64.tar.gz
logstash-5.5.0.tar.gz

主机
10.4.11.11   Elasticsearch  Kibana
10.4.11.12   logstash nginx
如果Nginx和elk都在一台,可以都安装在一台服务器上!


环境配置
#时间同步
#关闭selinux 及防火墙
#内核优化

一、基础环境配置及软件包下载

 
  1. 1.设置yum源
  2. curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  4. yum makecache
  5. yum install wget vim lsof net-tools lrzsz -y
  6.  
  7.  
  8. 2.时间同步
  9. yum -y install ntp
  10. systemctl enable ntpd
  11. systemctl start ntpd
  12. ntpdate -u cn.pool.ntp.org
  13. hwclock --systohc
  14. timedatectl set-timezone Asia/Shanghai
  15.  
  16. 3.关闭Selinux && 防火墙
  17. systemctl stop firewalld
  18. systemctl disable firewalld
  19. setenforce 0
  20. sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
  21.  
  22. 4.内核优化
  23. echo '
  24. * hard nofile 65536
  25. * soft nofile 65536
  26. * soft nproc 65536
  27. * hard nproc 65536
  28. '>>/etc/security/limit.conf
  29. echo '
  30. vm.max_map_count = 262144
  31. net.core.somaxconn=65535
  32. net.ipv4.ip_forward = 1
  33. '>>/etc/sysctl.conf
  34. sysctl -p

下载软件包

 
  1. mkdir /root/elk
  2.  
  3. Elasticsearch:
  4. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.tar.gz
  5. Kibana:
  6. wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz
  7. Logstash:
  8. wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.tar.gz

安装Jdk环境

 
  1. 1.源码安装
  2.  
  3. 下载安装http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  4. 配置Java环境
  5. tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/local/
  6. ln –s /usr/local/jdk1.8.0_91 /usr/local/jdk
  7.  
  8. vim /etc/profile
  9. export JAVA_HOME=/usr/local/jdk
  10. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  11. export PATH=$JAVA_HOME/bin:$PATH
  12.  
  13. source /etc/profile
  14.  
  15. 看到如下信息,java环境配置成功
  16. # java -version
  17. java version "1.8.0_91"
  18. Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
  19. Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
  20.  
  21. 2.yum安装
  22. yum install -y java
  23.  
  24. [root@i4t.com ~]# java -version
  25. openjdk version "1.8.0_65"
  26. OpenJDK Runtime Environment (build 1.8.0_65-b17)
  27. OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

二、安装Elasticsearch

我们elk都使用普通用户进行启动管理

 
  1. 新建持久化目录及logo目录
  2. mkdir /data1/{es-data,es-logs} -p
  3. tar xf elasticsearch-5.5.0.tar.gz -C /usr/local/
  4. ln -s /usr/local/elasticsearch-5.5.0 /usr/local/elasticsearch
  5.  
  6. 修改配置文件,修改后如下
  7. grep -Ev "^$|#" /usr/local/elasticsearch-5.5.0/config/elasticsearch.yml
  8. node.name: my-es
  9. path.data: /data1/es-data
  10. path.logs: /data1/es-logs
  11. config.reload.automatic: true
  12. config.reload.interval: 10
  13. http.host: "10.4.82.217"
  14. http.cors.enabled: true
  15. http.cors.allow-origin: "*"
  16.  
  17.  
  18. 配置说明
  19. node.name: my-es #设置节点名称,一般写主机名
  20. path.data: /data1/es-data #创建logstash 和插件使用的持久化目录
  21. path.logs: /data1/es-logs #创建es日志路径
  22. config.reload.automatic: true #开启配置文件自动加载
  23. config.reload.interval: 10 #定义配置文件重载时间周期
  24. http.host: "10.4.82.217" #定义访问主机名,一般为域名或IP
  25. http.cors.enabled: true #使用head插件需要开启
  26. http.cors.allow-origin: "*"
  27.  
  28. 更多配置说明:https://blog.youkuaiyun.com/ma_shou_feng/article/details/83783213

在运行es之前,我们需要创建用户,设置属主属组

 
  1. useradd elk
  2. chown -R elk /data1/es-*
  3.  
  4. [root@i4t.com ~]# ll /data1/
  5. 总用量 32
  6. drwxr-xr-x 2 elk root 4096 1月 25 04:48 es-data
  7. drwxr-xr-x 2 elk root 4096 1月 25 04:48 es-logs
  8. drwxr-xr-x 3 root root 4096 8月 24 20:17 etcd
  9. drwxr-xr-x 2 root root 4096 8月 16 11:41 kubelet
  10. drwx------. 2 root root 16384 7月 13 2018 lost+found
  11.  
  12. 设置es服务
  13. chown -R elk /usr/local/elasticsearch-5.5.0/
  14. [root@i4t.com local]# ll /usr/local/elasticsearch-5.5.0/
  15. 总用量 236
  16. drwxr-xr-x 2 elk root 4096 1月 25 04:49 bin
  17. drwxr-xr-x 2 elk root 4096 1月 25 04:54 config
  18. drwxr-xr-x 2 elk root 4096 7月 1 2017 lib
  19. -rw-r--r-- 1 elk root 11358 7月 1 2017 LICENSE.txt
  20. drwxr-xr-x 13 elk root 4096 7月 1 2017 modules
  21. -rw-r--r-- 1 elk root 194187 7月 1 2017 NOTICE.txt
  22. drwxr-xr-x 2 elk root 4096 7月 1 2017 plugins
  23. -rw-r--r-- 1 elk root 9548 7月 1 2017 README.textile

启动es服务

 
  1. 启动之前需要su到普通用户上
  2. [root@i4t.com ~]# su - elk
  3. [elk@i4t.com ~]$ /usr/local/elasticsearch/bin/elasticsearch -d
  4.  
  5. # -d 参数为后台启动,第一次安装好可以不加-d先启动测试,查看是否有error或者报错

前台查看启动成功,我们就可以加上-d参数让它后台运行
image_1d20s2rd61q2545o1fnn175r1bn39.png-827.5kB

检查是否启动成功

 
  1. [elk@i4t ~]$ /usr/local/elasticsearch/bin/elasticsearch -d
  2. [elk@i4t~]$ lsof -i:9200
  3. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  4. java 7157 elk 312u IPv6 391237534 0t0 TCP node1:wap-wsp (LISTEN)
  5.  
  6. [elk@i4t ~]$ curl 10.4.82.217:9200
  7. {
  8. "name" : "my-es",
  9. "cluster_name" : "elasticsearch",
  10. "cluster_uuid" : "tXBJMwRhQUyPNrwKETCWgg",
  11. "version" : {
  12. "number" : "5.5.0",
  13. "build_hash" : "260387d",
  14. "build_date" : "2017-06-30T23:16:05.735Z",
  15. "build_snapshot" : false,
  16. "lucene_version" : "6.6.0"
  17. },
  18. "tagline" : "You Know, for Search"
  19. }

Elasticsearch常用命令

 
  1. curl -XDELETE 'http://host.IP.address:9200/logstash-*' 删除索引(后面为索引名称)
  2. curl -XGET 'host.IP.address:9200/_cat/health?v&pretty' 查看集群状态
  3. curl -XGET 'host.IP.address:9200/_cat/indices?v&pretty' 查看索引

三、安装logstash

logstash安装的Nginx服务器上,并非es服务器

 
  1. 1.解压安装logstash
  2. tar xf logstash-5.5.0.tar.gz -C /usr/local/
  3. ln -s /usr/local/logstash-5.5.0 /usr/local/logstash
  4.  
  5. 2.创建配置文件
  6. mkdir /usr/local/logstash/conf/
  7. vim /usr/local/logstash/conf/nginx.conf
  8. input {
  9. file {
  10. path => "/usr/local/nginx/logs/access.log"
  11. start_position => "beginning"
  12. }
  13. }
  14. filter {
  15. }
  16. output {
  17. #stdout { codec=> rubydebug }
  18. elasticsearch {
  19. hosts => ["10.4.82.118:9200"]
  20. index => "static_nginx_access-%{+YYYY.MM.dd}"
  21. }
  22. }
  23.  
  24. #这里面实际只是定义了一个nginx log路径
  25. #stdout { codec=> rubydebug } 将内容打印出来,方便测试
  26. #host 填写es主机
  27. index 索引名称

四、安装Kibana

 
  1. wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz
  2. tar xf kibana-5.5.0-linux-x86_64.tar.gz -C /usr/local/
  3. chown -R elk.elk kibana-5.5.0-linux-x86_64
  4.  
  5. kibana配置文件修改
  6. [root@YZSJHL82-217 ~]# vim /usr/local/kibana-5.5.0-linux-x86_64/config/kibana.yml
  7. server.port: 5601
  8. server.host: "10.4.82.217"
  9. elasticsearch.url: "http://127.0.0.1:9200"
  10.  
  11.  
  12.  
  13. [root@YZSJHL82-217 ~]# grep -Ev "^$|#" /usr/local/kibana-5.5.0-linux-x86_64/config/kibana.yml
  14. server.port: 5601 #kibana端口
  15. server.host: "10.4.82.217" #kibana主机
  16. elasticsearch.url: "http://127.0.0.1:9200" #ES服务器端口
  17.  
  18. 启动
  19. [root@YZSJHL82-217 ~]# su - elk
  20. 前台启动
  21. [elk@i4t kibana-5.5.0-linux-x86_64]$ /usr/local/kibana-5.5.0-linux-x86_64/bin/kibana
  22. 后台启动
  23. [elk@i4t kibana-5.5.0-linux-x86_64]$ /usr/local/kibana-5.5.0-linux-x86_64/bin/kibana &
  24.  
  25. 温馨提示:可以先前台启动查看日志,正常之后在后台启动
  26.  
  27.  
  28. 查看端口
  29. [root@i4t ~]# lsof -i:5601
  30. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  31. node 30297 elk 12u IPv4 420317733 0t0 TCP node1:esmagent (LISTEN)
  32. [root@i4t ~]# netstat -lntup|grep 5601
  33. tcp 0 0 10.4.82.217:5601 0.0.0.0:* LISTEN 30297/node

访问kibana
http://ip:5601
123.png-492kB

因为现在没有数据,我们现在配置Nginx进行Nginx的日志收集

五、安装并配置Nginx收集日志

安装Nginx

 
  1. wget http://nginx.org/download/nginx-1.10.3.tar.gz
  2.  
  3. yum install -y gcc glibc gcc-c++ prce-devel openssl-devel pcre-devel
  4. useradd -s /sbin/nologin www -M
  5. tar xf nginx-1.10.3.tar.gz && cd nginx-1.10.3
  6.  
  7. ./configure --prefix=/usr/local/nginx-1.10.3 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
  8. make && make install
  9. ln -s /usr/local/nginx-1.10.3 /usr/local/nginx
  10.  
  11.  
  12.  
  13.  
  14. 手动启动
  15. /usr/local/nginx/sbin/nginx
  16.  
  17. 设置开机启动
  18. echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local
  19.  
  20.  
  21. 查看服务器是否启动
  22. netstat -lntp|grep nginx
  23. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7058/nginx: master

需要配置在我们要收集的服务器上

 
  1. vim /usr/local/nginx/conf/nginx.conf
  2. worker_processes 1;
  3.  
  4. events {
  5. worker_connections 1024;
  6. }
  7.  
  8.  
  9. http {
  10. include mime.types;
  11. default_type application/octet-stream;
  12. #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  13. # '$status $body_bytes_sent "$http_referer" '
  14. # '"$http_user_agent" "$http_x_forwarded_for"';
  15.  
  16. log_format json '{"@timestamp":"$time_iso8601",'
  17. '"host":"$server_addr",'
  18. '"clientip":"$remote_addr",'
  19. '"remote_user":"$remote_user",'
  20. '"request":"$request",'
  21. '"http_user_agent":"$http_user_agent",'
  22. '"size":$body_bytes_sent,'
  23. '"responsetime":$request_time,'
  24. '"upstreamtime":"$upstream_response_time",'
  25. '"upstreamhost":"$upstream_addr",'
  26. '"http_host":"$host",'
  27. '"requesturi":"$request_uri",'
  28. '"url":"$uri",'
  29. '"domain":"$host",'
  30. '"xff":"$http_x_forwarded_for",'
  31. '"referer":"$http_referer",'
  32. '"status":"$status"}';
  33. access_log logs/access.log json;
  34.  
  35.  
  36. sendfile on;
  37. keepalive_timeout 65;
  38.  
  39.  
  40. server {
  41. listen 80;
  42. server_name localhost;
  43. location / {
  44. root html;
  45. index index.html index.htm;
  46. }
  47.  
  48. }
  49.  
  50. }
  51.  
  52. ###########################
  53. 实际上就是添加了json格式的日志
  54. log_format json '{"@timestamp":"$time_iso8601",'
  55. '"host":"$server_addr",'
  56. '"clientip":"$remote_addr",'
  57. '"remote_user":"$remote_user",'
  58. '"request":"$request",'
  59. '"http_user_agent":"$http_user_agent",'
  60. '"size":$body_bytes_sent,'
  61. '"responsetime":$request_time,'
  62. '"upstreamtime":"$upstream_response_time",'
  63. '"upstreamhost":"$upstream_addr",'
  64. '"http_host":"$host",'
  65. '"requesturi":"$request_uri",'
  66. '"url":"$uri",'
  67. '"domain":"$host",'
  68. '"xff":"$http_x_forwarded_for",'
  69. '"referer":"$http_referer",'
  70. '"status":"$status"}';
  71. access_log logs/access.log json;
  72. 日志保存在/usr/local/nginx/logs/下

配置完成后,访问nginx。查看日志是否修改为json

 
  1. [root@i4tnginx]# tail -f logs/access.log
  2. {"@timestamp""host":"10.4.82.203","clientip":"10.2.52.15","remote_user":"-","request":"GET / HTTP/1.1","http_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0","size":0,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.4.82.203","requesturi":"/","url":"/index.html","domain":"10.4.82.203","xff":"-","referer":"-","status":"304"}
  3. {"@timestamp""host":"10.4.82.203","clientip":"10.2.52.15","remote_user":"-","request":"GET / HTTP/1.1","http_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0","size":0,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":"10.4.82.203","requesturi":"/","url":"/index.html","domain":"10.4.82.203","xff":"-","referer":"-","status":"304"}

测试logstash配置文件是否正常

 
  1. 我们尽量都是用elk用户,所以需要提前将logstash设置为elk的属主属组
  2. chown -R elk.elk /usr/local/logstash
  3.  
  4. /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/nginx.conf -t
  5. ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
  6. Sending Logstash's logs to /usr/local/logstash/logs which is now configured via log4j2.properties
  7. Configuration OK
  8. [2019-01-28T11:54:38,481][INFO ][logstash.runner ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

image_1d299p9iidpp1d5n1i119t5roc9.png-380.7kB

在Nginx服务器上启动logstash

 
  1. [root@abcdocker logstash]# su - elk
  2. [elk@abcdocker ~]$ /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/nginx.conf
  3.  
  4.  
  5. 温馨提示,一定要确保logs目录elk有权限写入,建议我们在启动elk之前在执行一次chown -R elk.elk /usr/local/logstash

image_1d3njupoc52v1tdv7gqjm814ho1j.png-760.4kB

请确保logstash中的file文件有读取权限,否则无法在ES中创建索引!

image_1d3nk3m8rjcn1ics196emvql9h2d.png-956.6kB
我们可以查一下索引

 
  1. [root@YZSJHL82-203 local]# curl -XGET '10.4.82.217:9200/_cat/indices?v&pretty'
  2. health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
  3. yellow open .kibana 9l1XmifhTd2187a9Zpkqsw 1 1 1 0 3.2kb 3.2kb
  4. yellow open pro_nginx_access-2019.02.15 Guze8x5hTymSzqzQKu5PTQ 5 1 1315 0 1.3mb 1.3mb

Kibana 配置
目前logstash已经将收集的日志存储在es里面,我们需要用kibana进行展示
image_1d3ntkdt115ht19u47fr1cg248r2q.png-250kB
查看索引命令

 
  1. [root@YZSJHL82-203 local]# curl -XGET '10.4.82.217:9200/_cat/indices?v&pretty'
  2. health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
  3. yellow open .kibana 9l1XmifhTd2187a9Zpkqsw 1 1 1 0 3.2kb 3.2kb
  4. yellow open pro_nginx_access-2019.02.15 Guze8x5hTymSzqzQKu5PTQ 5 1 1315 0 1.3mb 1.3mb

33333.png-134.6kB

Kibana创建索引
image_1d3ntnbmef52v4c1n6l12hm1aj337.png-220.8kB

创建完毕后查看索引
image_1d3nttiqk1bma1oqdbsq1jlkn6t49.png-103.7kB

 

六、Elasticsearch Head插件安装

image_1d3nvibr01v1v1p4j1t7s1ccn8lm4m.png-54.6kB

elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。你可以通过插件把它集成到es(首选方式),也可以安装成一个独立webapp。

  • 显示集群的拓扑,并且能够执行索引和节点级别操作
  • 搜索接口能够查询集群中原始json或表格格式的检索数据
  • 能够快速访问并显示集群的状态
  • 有一个输入窗口,允许任意调用RESTful API。这个接口包含几个选项,可以组合在一起以产生有趣的结果;
    1. 请求方法(get、put、post、delete),查询json数据,节点和路径
    2. 支持JSON验证器
    3. 支持重复请求计时器
    4. 支持使用javascript表达式变换结果
    5. 收集结果的能力随着时间的推移(使用定时器),或比较的结果
    6. 能力图表转换后的结果在一个简单的条形图(包括时间序列)

官方的文档:
https://github.com/mobz/elasticsearch-head

关于Head插件安装有2中,如果使用的yum安装es可以直接用es中的plugin install mobz/elasticsearch-head另一种就是需要安装Node环境
ELKStack 实战之 Elasticsearch [一]


安装插件时使用到了npm,所以我们需要安装npm
二进制安装npm https://www.i4t.com/2840.html

 
  1. [root@i4t ~]# yum install git npm #安装git和npm
  2. [root@i4t ~]# cd /usr/local/
  3. [root@i4t elasticsearch-head]# git clone https://github.com/mobz/elasticsearch-head.git #克隆代码
  4. [root@i4t local]# cd elasticsearch-head/
  5.  
  6. #需要注意的是执行以下命令需要在elasticsearch-head目录下执行
  7. npm install
  8. npm run start ##这是在前台运行,如果想让它在后台运行npm run start &
  9.  
  10.  
  11.  
  12. 需要提前在elasticsearch.yml配置如下,如果安装我的文档安装都是已经配置好了
  13. vim /usr/local/elasticsearch/elasticsearch.yml
  14. http.cors.enabled: true # elasticsearch中启用CORS
  15. http.cors.allow-origin: "*" #允许访问的IP地址段,* 为所有IP都可以访问

默认端口是9100,默认监控的主机也是localhost

请目录结构和我保持一致

image_1d3o1rt0j1lv1ord1ghpr251ns27f.png-143kB
111.png-138.1kB

修改默认端口以及默认连接ES地址
vim elasticsearch-head/Gruntfile.js
修改默认的端口
image_1d3o1gvalajsg2abfa1i1rvj86l.png-28.4kB

因为head插件默认打开是连接localhost的,我们需要将localhost修改为我们的ip
vim elasticsearch-head/_site/app.js
将localhost换成es的ip即可
image_1d3o1p7f71hukbn016pq16ugh4272.png-82.5kB
修改完成后直接要npm run start &即可,不需要build
321.png-229.2kB

因为是单点,所以是Yellow状态

ELK收集nginx日志并展示来源IP城市分布图 安装ELK elasticsearch下载地址: https://www.elastic.co/downloads/elasticsearch logstash下载地址: https://www.elastic.co/downloads/logstash kibana下载地址: https://www.elastic.co/downloads/kibana 安装参考(推荐官网下载压缩包再解压,br... 阅读详情

相关推荐

ctfshow 萌新22 (类似级客巅峰web4)

在之前ctfshow平台的萌新22,大家都认为是无解的,题目也介绍了"还能搞,阿呆表示将直播倒立放水"。但是在级客巅峰结束的那天晚上,群里的师傅介绍说,如果修改了php.ini里面的配置(register_argc_argv)可以做出来。最后是真的做出来了。 使用阿呆~~~? 下面是自己的思考,感谢Guoke师傅和ha1c9on师傅的帮助 一. 源代码 <?php if(isset($_GET['c'])){ $c=$_GET['c']; if(!preg_mat.

Firebasky的博客 4214

白话彩信协议

白话彩信协议 彩信协议相比于上一篇白话短信协议会稍微复杂一些 和介绍短信协议时一样,我们先简单介绍一下手机收到彩信的过程,实际上手机收到彩信有两个步骤,第一步会接收到彩信通知,第二步会去彩信通知中给的地址下载彩信文件 以上第一步和我们普通文本短信一样是是以短信协议的方式发送到手机上(wap-push),第二步则是通过通知中附带的地址去下载彩信文件(wap-wsp) 同样,接下来通过白话的方式向你解...

iven_wong的博客 2127

基于Multisim设计电子密码锁

一、设计任务与要求:(可软件仿真实现)1)基本要求:设计一个数字密码锁,要求只有按正确的顺序,输入正确的密码,方能输出开锁信号,实现开锁。设置三个正确的密码键和若干个伪键,任何伪键按下后,密码锁都无法打开。每次只能接受四次按键信号,而且第四个键只能是“确定”或者“重输键”,其他无效。能显示已输入键的个数2)扩展要求:第一次密码输错后,可以输入第二次,但是连续三次输错,密码将被锁,必须按复位键才能解锁。

ablinger的博客 4416

Linux shell实现HTTP服务

需求场景 使用代理服务器 HAProxy 对 Mysql 做负载均衡是常用方案,为提高可用性,当某个 Mysql 出现问题时,例如服务器故障了,或者数据复制中断了,最好可以让 HAProxy 马上知道,然后停止向其转发请求 HAProxy 如何知道 Mysql 是否有问题呢? 解决思路 (1)编写一个shell脚本,检查 mysql 的状态,然后输出结果,例如状态正常时,返

Enweitech Software Works 4969

Power BI应用案例:淘宝用户行为分析实战

一、案例背景 基于千万级的淘宝用户的使用记录,对淘宝用户的行为进行分析,具体指标包括:日PV、日UV、小时PV、小时UV、不同用户行为的PV、用户购买次数分布、用户购买频次分布、活跃用户消费情况等。通过本案例,可以基本看看Power BI都能分析达到怎么样的效果。 二、数据来源及结构 阿里天池官方发布的1万用户在2014年双十二期间的行为记录,数据量达1200万+。 数据下载地址:...

灰哥数据智能的专栏 1万+

IEEE S&P 2026 大模型安全论文整理

本文梳理了 IEEE S&P 2026(第47届 IEEE 安全与隐私研讨会)中与 LLM Safety 相关的论文,涵盖大模型越狱攻击、防御与对齐、隐私保护、RAG 安全、多模态大模型安全、智能体安全、图-LLM 安全、工具链安全及生成式 AI 安全与隐私等方向。

CSPhD-winston的博客 1331

linux常用端口对照

linux常用端口对照 著名端口 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 daytime 给请求主机发送日期和时间 17 qotd 给连接了的主机发送每日格言 18 msp 消息发送协议 19 chargen 字符生成服务;发送无止境...

joan的专栏 1945

DeepSeek 赋能太空探索:从轨道优化到星际开拓的 AI 革命

随着人工智能技术蓬勃发展,DeepSeek 在太空探索领域展现出巨大应用潜力。本文深入剖析 DeepSeek 技术核心,包括低功耗运算、开源生态等优势,阐述其与传统航天技术的差异。从航天器自主控制、深空探测、载人航天等关键环节,结合实时轨道调整、故障诊断修复等实例,揭示 DeepSeek 对航天任务效率与安全性的提升作用。同时探讨其应用面临的太空环境适应、伦理安全等挑战,展望技术演进方向及与前沿技术融合前景,展现 DeepSeek 为人类太空探索带来的变革与深远意义。

邓邓子的博客 2256

TCP注册端口号大全7

afs3-fileserver 7000/tcp file server itself afs3-fileserver 7000/udp file server itself afs3-callback 7001/tcp callbacks to cache managers afs3-callback 7001/udp callbacks to cache man

yyfpeak的专栏 3万+

不提交也不释放的事务,数据库连接还有可能被复用

摘要 实验发现Spring事务管理下,未提交事务的数据库连接池连接仍可被复用,这与传统认知相悖。通过配置HikariCP连接池(最大2连接)并设计测试接口,观察到未提交事务的连接会被后续请求复用。这可能导致GTID错误(当MySQL开启GTID且混用事务/非事务表时)以及数据修改丢失问题。研究揭示了Spring事务管理机制与连接池交互的特殊行为,对高并发系统设计具有重要启示。

蔡定努 174

全新YOLO26有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

🔥《2026年YOLO26改进专栏》🔥 🚀持续更新500+最前沿创新改进点(顶会顶刊论文/独家创新策略),涵盖主干网络、各种卷积、注意力机制、检测头等模块,助力科研论文发表与模型性能提升,支持检测/分割/分类任务。订阅即获完整可运行项目,提供专业QQ答疑群,适合科研发论文(SCI/CCF/核心)及工业应用(PCB/医学/遥感检测)。专栏价格将逐步上涨,早订更优惠! ⭐特色:非计算机专业友好、模块可自由组合、全网独家创新;📌适用:研究生大论文和小论文创新、小目标检测、多领域科研应用,满足不同研究需求。

Ai缝合怪、助力小伙伴高效发论文 5116

linux 服务器配置 elasticsearch和 管理工具kibana(三)

前两节 主要介绍了elasticsearch和 管理工具kibana 的安装。 这一节,主要再整理完善一下他们的一些启动和进程方面的配置。 让 elasticsearch进程在后台运行: ./elasticsearch -d 为了避免关闭命令窗口而失效,即使 control+c 也不会退出,要想杀死进程,请执行 ps和kill 命令: [root@iZbp1fiznm0sijx...

孙三苗的专栏 503

安卓手机老版本微信无法登录?无需root 一招教你如何搞定!旧版本照样登录,微信7.0亲测有效

微信我试了清缓存、用不同的版本、甚至关网登录都不行。于是我研究了一下背后的原理,发现这不仅是个技巧,还是微信设计的一点“疏忽”——**只要有方法,旧版本照样能用**。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

ElK 8 收集 Nginx 日志

Filebeat 收集 nginx、mysql 等日志,没有特别需求,最好直接接入 ES 中,少了一层 logstash 其实性能更好,问题也相对较少,官方文档推荐的。

ygqygq2的IT博客 2507

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用ELK收集、存储、监控Nginx的日志信息

1.场景 使用ELK生态栈对Nginx的日志信息进行解析、存储,并根据解析后的数据进行监控,如果日志信息有异常,会通过自定义配置的告警服务进行告警。 2.架构 nginx ==> filebeat ==> kafka==> logstash ==> ES ==> Kibana filebeat:只是收集客户端(能干的很少) kafka:缓冲,削峰(测试阶段没有选择使用) logstash:解析日志字段(grok表达式) 版本选择:7.4.2 3. nginx..

浅汐 7万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【ELK】实战-收集Nginx访问日志

.ELK收集Nginx访问日志应用架构

qq_41466440的博客 4106

ELK 二进制安装并收集nginx日志

对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch(java)、Logstash(jruby)、Kibana技术栈的结合, ELK5.X搭建并收集Nginx日志 EL...

weixin_30477293的博客 448

使用ELK收集nginx的正确和错误日志信息

文章目录前言使用ELK收集nginx的架构图在192.168.10.8主机安装kibana在192.168.10.4主机安装nginx和filebeatnginx日志转换JSON格式自定义索引access.log和error.log分开收集 前言 ELK理论点和群集的构建在前面的文章里写详细的写过,有意者可以参考 : https://blog.csdn.net/weixin_43815140/article/details/106263311 使用ELK收集nginx的架构图 这是最原始的一种ELK日志收

Mr.李的博客 1537

使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志

使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志

码农兴哥的技术笔记 2507

ELK日志收集系统(一)

ELK日志收集系统一:软件包下载地址二:环境准备三:kibana安装与配置四:安装nginx五:filebeat安装配置5.1 配置filebeat收集nginx日志5.2 kibana设置 一:软件包下载地址 本文所需要所有软件包下载地址: 链接:https://pan.baidu.com/s/1J2rbPZkWEfg_M8k3W8jQPQ 提取码:x3i9 二:环境准备 Elastics...

2097

安装部署ELK收集nginx日志

修改elasticsearch的配置文件elasticsearch.yml,以允许跨域访问,在文末追加如下代码即可。修改elasticsearch-head默认连接地址,将localhost改为本机IP。安装:# yum install -y elasticsearch-7.2.0。(5)修改elasticSearch配置文件并启动ElasticSearch。三台机器都是CentOS 7.6,内存>=3G。三台机器都部署jdk,建议内存3G以上。(1)安装head插件。(2)下载head插件。.......

weijiajia123456的博客 1186

2 ELK收集nginx的json格式日志

为了便于利用 ELK日志平台收集展示 Nginx 的日志,可以将 Nginx 的日志改成 json 的格式 https://www.jianshu.com/p/b6ba259777e7 1.修改nginx配置文件 [root@db01 ~]# vim /etc/nginx/nginx.conf ##打开nginx配置文件添加这些信息 log_format json '{ "time_local": "$time_local", ' '"rem

qq_40907977的博客 698

安装部署ELK,并收集tomcat,nginx日志

elk部署

suiyuanfengfeng的博客 414

docker部署ELFK并配置收集nginx日志

ELK主要由ElasticSearch、Logstash和Kibana三个开源工具组成,还有其他专门由于收集数据的轻量型数据采集器Beats。Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 是用Java 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。

qq_55269107的博客 586

运维之道 | ELK 通过 Logstash 收集 Nginx 日志

ELK 通过 Logstash 收集 Nginx 日志 1、安装部署Nginx 运维之道 | 企业级Nginx环境搭建 2、将nginx日志转换成json格式 [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf http { include mime.types; default_type applica...

VillianTsang 、运维之道 508

ELK日志收集系统—ELK

1.找出访问排名前10的IP 2.找出访问排名前10的URL 3.找出10点到14点之间访问频次最高的IP和URL 4.找出10点到14点之间bbs网站访问最高的IP和URL 5.找出攻击者的IP,他都访问了什么页面?从什么时候来的,什么时候走的,一共访问多少次 6.找出昨天和今天同时间段访问有什么变化 7.查看各大搜索引擎今天访问了多少次,都访问了哪些页面 8.找出哪些是伪造的爬虫IP,并查...

linux丶晨星 591
上一篇: Jenkins+Maven+SVN+Nexus 搭建持续集成环境
下一篇: 使用ReadtheDocs搭建属于自己的博客
abcdocker
博客等级 码龄10年 173粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值