页面“关于压力测试和并发的那些事儿”与“Elk基础”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第1行: 第1行:
== start==
+
=install=
===首先是基本知识点===
+
==elk download==
[http://www.ha97.com/5095.html 系统吞吐量(TPS)、用户并发量、性能测试概念和公式]
+
<pre>
 +
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz 
 +
 
 +
https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz
 +
 
 +
https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.tar.gz
 +
</pre>
 +
==二进制包 ==
 +
===jdk ins===
 +
==== RPM ====
 +
<pre>
 +
#set java environment 如果是rpm安装
 +
JAVA_HOME=/usr/java/jdk1.8.0_121
 +
JRE_HOME=/usr/java/jdk1.8.0_121/jre
 +
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
 +
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
 +
export JAVA_HOME JRE_HOME CLASS_PATH PATH
 +
 
 +
</pre>
 +
 
 +
==== tar.gz====
 +
 
 +
====tomcat 自带 ====
 +
<pre>
 +
yum install tomcat -y  #这些比较懒 这样自动上了openjdk
 +
 
 +
[root@localhost ~]# java -version
 +
openjdk version "1.8.0_212"
 +
OpenJDK Runtime Environment (build 1.8.0_212-b04)
 +
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
 +
</pre>
 +
 
 +
===elasticsearch ins===
 +
<pre>
 +
 
 +
apt 也要记得看这个配置 参考
 +
 
 +
tar xvf  elasticsearch-6.4.3.tar.gz
 +
mv elasticsearch-6.4.3/  /usr/local/elasticsearch/
 +
 
 +
 
 +
vim elasticsearch.yml 修改配置文件,在最下面加入如下几行
 +
 
 +
network.host: 0.0.0.0
 +
http.port: 9200
 +
http.cors.enabled: true
 +
http.cors.allow-origin: "*"
 +
 
 +
注意,root用户是不能直接启动elasticsearch的,需要新建用户,然后切换用户去启动elasticsearch,如下:
 +
创建elsearch用户组及elsearch用户
 +
 
 +
groupadd elsearch
 +
useradd elsearch -g elsearch -p elasticsearch
 +
 
 +
更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
 +
chown -R elsearch:elsearch
 +
 
 +
切换到elsearch用户再启动
 +
 
 +
su elsearch
 +
cd elasticsearch/bin
 +
bash elasticsearch &
 +
 
 +
systemctl stop firewalld
 +
systemctl disable firewalld
 +
 
 +
 
 +
 
 +
配置管理
 +
Elasticsearch一般不需额外配置,但是为了提高Elasticsearch性能可以通过elasticsearch.yml文件修改配置参数。当然,也可以根据用户系统配置降低配置参数,如jvm.heapsize。Elasticsearch默认占用2G内存,对于系统配置较低的服务器,很可能带来负载过大的问题,因此需要适当减少jvm.heapsize
 +
 
 +
 
 +
</pre>
 +
 
 +
=== nginx ins===
 +
<pre>
 +
vi /etc/yum.repos.d/nginx.repo
 +
[nginx]
 +
name=nginx repo
 +
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
 +
gpgcheck=0
 +
enabled=1
 +
 
 +
yum install nginx -y #或者你用 yum install epel-release
 +
 
 +
 
 +
 
 +
 
 +
vi /etc/nginx/nginx.conf#修改nginx的日志默认输出格式
 +
log_format json '{"@timestamp":"$time_iso8601",'
 +
            '"@version":"1",'
 +
            '"client":"$remote_addr",'
 +
            '"url":"$uri",'
 +
            '"status":"$status",'
 +
            '"domian":"$host",'
 +
            '"host":"$server_addr",'
 +
            '"size":"$body_bytes_sent",'
 +
            '"responsetime":"$request_time",'
 +
            '"referer":"$http_referer",'
 +
            '"ua":"$http_user_agent"'
 +
          '}';
 +
    #access_log  /opt/access.log json;
 +
    access_log  /var/log/nginx/access.log  json;
 +
 
  
  
===这两个比较偏向web 测试===
 
  
[http://wiki.linuxchina.net/index.php?title=%E7%BD%91%E7%AB%99%E8%BF%90%E7%BB%B4#chapter_5_.E6.B5.8B.E8.AF.95.E8.AF.84.E4.BC.B0 详情测试评估请见]
+
</pre>
 +
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7
  
==并发承载==
+
https://www.cyberciti.biz/faq/how-to-install-and-use-nginx-on-centos-7-rhel-7/
 +
 
 +
===Kibana  ===
 +
====install====
 
<pre>
 
<pre>
10W 活跃用户  访问4个页面  一次页面加3次接口
 
  
10w*4*4 =160W
+
#kibana主要是搜索elasticsearch的数据,并进行数据可视化的展现,新版使用nodejs
 +
* kibana配置启动
 +
[root@localhost kibana]# pwd
 +
/usr/local/kibana
  
一般人睡觉8个小时 so 一天 24-8=16h
+
vim config/kibana.yml
10W日活 * 4次访问数*每次4个接口或者页面 = 160W
 
16h*60min*60s= 57 600 s
 
160w/57600=28QPS OR TPS
 
  
真实情况下
+
server.port: 5601
5 分钟内的活跃用户为1000
+
server.host: "0.0.0.0"
100*4*4=1600
+
elasticsearch.url: "http://localhost:9200"
1600/(5*6)=53QPS
+
kibana.index: ".kibana"
  
反来说
+
cd bin/
如果一个系统的qps 100   一天能顶的访问量为 100*60*60*24=8 640 000 也就是864W
+
sh kibana &   启动kibana
  
 +
启动完毕,可以浏览器输入url:  服务器外网ip:5601 查看是否成功启动:
  
ps
+
http://192.168.88.52:5601/app/kibana#/home?_g=()
TPS:Transactions Per Second(每秒传输的事物处理个数)
 
  
QPS(TPS):每秒钟 request/事务 数量,在互联网领域,指每秒响应请求数(指http请求)
+
 
 +
配置********
 +
Kibana配置可以通过命令行参数或配置文件kibana.yml。Kibana应用的默认地址为localhost,无法从远程访问Kibana,因此,用户需要修改配置文件的server.host属性
 
</pre>
 
</pre>
==常用的压力测试工具==
 
===ab===
 
<pre> ab  参数有时比较 搞笑
 
10000 请求100并发
 
ab -n  10000 -c  100 ip
 
  
Usage: ab [options] [http[s]://]hostname[:port]/path
+
====配置nginx,为kibana配置反向代理 ====
ab -n 100 -c 10 http://192.168.88.173/index.html
+
<pre>
 +
server{
 +
 
 +
        listen       80;
 +
 
 +
        server_name  elk.com;
 +
 
 +
        location / {
 +
 
 +
       proxy_set_header Host $host;
 +
 
 +
        proxy_pass http://localhost:5601;
 +
 
 +
        }
 +
 
 +
</pre>
 +
 
 +
===Logstash===
 +
<pre>
 +
 
 +
#为了测试  这和ng 和logstash 在同一台机器上
 +
mv  logstash-6.4.2/  /usr/local/logstash/
 +
cd /usr/local/logstash/bin/
 +
 
 +
 
 +
#用这个nginx的
 +
cat /usr/local/logstash/config/nginx.conf
 +
input {
 +
    file {
 +
        path => "/var/log/nginx/access.log"
 +
        type => "nginx"
 +
        codec => "json"
 +
        start_position => "beginning"
 +
    }
 +
}
 +
 
 +
filter {
 +
    geoip {
 +
        fields => ["city_name", "country_name", "latitude", "longitude", "region_name","region_code"]
 +
        source => "client"
 +
    }
 +
}
 +
 
 +
output {
 +
    if [type] == "nginx" {
 +
        elasticsearch {
 +
            hosts => ["127.0.0.1:9200"]
 +
            index => "nelson-nginx-%{+YYYY.MM.dd}"
 +
        }
 +
        stdout {}
 +
    }
 +
}
  
 +
# 是Elasticsearch 的ip哦 千万不能写错啦  线上的情况一般是l 和ek 不在同一个机器
  
ab -n 1000  -c 1000  http://192.168.88.173/index.html
+
# hosts => ["127.0.0.1:9200"] 
  
可能就动不了了
+
./bin/logstash -f ./config/nginx.conf
ab -n 10000  -c 10000  http://192.168.88.173/index.html
 
  
eg
+
访问nginx 就会 在控制台看到如下输出
# ab -n 1000  -c 1000  http://192.168.88.173/index.html
 
This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
 
Licensed to The Apache Software Foundation, http://www.apache.org/
 
  
Benchmarking 192.168.88.173 (be patient)
+
    "@timestamp" => 2019-05-31T08:26:26.000Z,
Completed 100 requests
+
          "domian" => "192.168.88.52",
Completed 200 requests
+
            "size" => "0",
Completed 300 requests
+
              "ua" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36",
Completed 400 requests
+
          "geoip" => {},
Completed 500 requests
+
            "tags" => [
Completed 600 requests
+
        [0] "_geoip_lookup_failure"
Completed 700 requests
+
    ],
Completed 800 requests
+
          "status" => "304",
Completed 900 requests
+
        "referer" => "-",
Completed 1000 requests
+
            "path" => "/var/log/nginx/access.log",
Finished 1000 requests
+
            "url" => "/index.html",
 +
            "type" => "nginx",
 +
          "client" => "192.168.88.4",
 +
            "host" => "192.168.88.52",
 +
        "@version" => "1",
 +
    "responsetime" => "0.000"
 +
}
  
  
Server Software:        Apache
 
Server Hostname:        192.168.88.173
 
Server Port:            80
 
  
Document Path:          /index.html
 
Document Length:        196 bytes
 
  
Concurrency Level:      1000
+
查看    
Time taken for tests:   0.404 seconds
+
你的 kibana 地址 ,这个 这次变了
Complete requests:      1000
+
http://192.168.88.167:5601
Failed requests:       0
+
右菜单 ->Discover
Non-2xx responses:      1000
 
Total transferred:      360000 bytes
 
HTML transferred:      196000 bytes
 
Requests per second:    2473.61 [#/sec] (mean)
 
Time per request:      404.268 [ms] (mean)
 
Time per request:       0.404 [ms] (mean, across all concurrent requests)
 
Transfer rate:          869.63 [Kbytes/sec] received
 
  
Connection Times (ms)
 
              min  mean[+/-sd] median  max
 
Connect:        1  26  23.5    18      75
 
Processing:    13  170 108.4    234    323
 
Waiting:        1  170 108.5    234    323
 
Total:        14  196 128.7    246    392
 
  
Percentage of the requests served within a certain time (ms)
 
  50%    246
 
  66%    279
 
  75%    300
 
  80%    312
 
  90%    369
 
  95%    380
 
  98%    387
 
  99%    389
 
100%    392 (longest request)
 
  
 
</pre>
 
[https://www.jianshu.com/p/3afa6ecca808 ab压测]
 
  
[https://www.cnblogs.com/linjiqin/p/9058432.html 网站性能压力测试工具--apache ab使用详解]
 
  
===siege ===
+
</pre>
 +
 
 +
===启动脚本===
 +
 
 +
==add redis ==
 +
 
 +
==docker==
 
<pre>
 
<pre>
Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。siege可以从您选择的预置列表中请求随机的URL。所以siege可用于仿真用户请求负载,而ab则不能。但不要使用siege来执行最高性能基准调校测试,这方面ab就准确很多。
 
  
Sproxy做为一个代理侦听9001端口,可用于搜集正常访问的GET/POST请求、生成siege适用的Urls.txt文件格式。
+
</pre>
  
可能得修改一下配置
 
siege -c  2000  -t 60s http:192.168.88.173
 
  
================================================================
 
WARNING: The number of users is capped at 255.  To increase this
 
        limit, search your .siegerc file for 'limit' and change
 
        its value. Make sure you read the instructions there...
 
================================================================
 
  
vim  .siege/siege.conf
+
[https://www.cnblogs.com/myzony/p/12206073.html  Docker 安装 ELK -sebp]
  
# ex: limit = 1023 (default is 255)                                                                                                                                         
+
[https://blog.csdn.net/gongxsh00/article/details/77001603 使用Docker快速部署ELK环境(最新5.5.1版本)]
#                                                                                                                                                                           
 
limit = 2559
 
  
 +
[https://www.cnblogs.com/soar1688/p/6849183.html Docker ElK安装部署使用教程]
  
 +
=usage=
 +
=== ===
 +
==tomcat logs==
 +
<pre>
  
 +
Step 1 of 2: Define index pattern
 +
Index pattern
  
 +
nelson-nginx-*  #因为前面的output index => "nelson-nginx
  
100并发  30s
 
siege -c  100 -t 30s http:ip
 
 
wrk 可以lua脚本
 
4个线程
 
wrk -c 100 -d 30s -t 4 ip
 
  
 +
Step 2 of 2: Configure settings
 +
@timestamp
  
参数说明
 
  
url文件格式_GET
+
#这个老的
server=172.17.19.80:80
+
Step 1 of 2: Define index pattern
http://${server}/q?k1=v1&k2=v2
+
Index pattern
 +
logstash-*
  
url文件格式_POST
+
有这些字些Success!  Your index pattern matches 1 index
server=172.17.19.80:80
+
 
http://${server}/q POST k1=v1&k2=v2
+
Step 2 of 2: Configure settings
  
结果说明
 
** SIEGE 2.72
 
02
 
** Preparing 300 concurrent users for battle.
 
03
 
The server is now under siege.. done.
 
04
 
 
 
05
 
Transactions:            30000 hits      #完成30000次处理
 
06
 
Availability:            100.00 %        #成功率
 
07
 
Elapsed time:            68.59 secs      #总共使用时间
 
08
 
Data transferred:        817.76 MB        #共数据传输 817.76 MB
 
09
 
Response time:            0.04 secs      #响应时间,显示网络连接的速度
 
10
 
Transaction rate:        437.38 trans/sec #平均每秒完成 437.38 次处理
 
11
 
Throughput:              11.92 MB/sec    #平均每秒传送数据
 
12
 
Concurrency:              17.53          #实际最高并发连接数
 
13
 
Successful transactions:  30000          #成功处理次数
 
14
 
Failed transactions:          0          #失败处理次数
 
15
 
Longest transaction:      3.12          #每次传输所花最长时间
 
16
 
Shortest transaction:      0.00          #每次传输所花最短时间
 
 
</pre>
 
</pre>
  
https://askubuntu.com/questions/932449/siege-cannot-perform-load-testing-for-more-than-255-tests
+
[https://blog.csdn.net/ZHANG_H_A/article/details/53129565 elk部署配置,收集nginx和tomcat日志]
 +
 
 +
[https://www.cnblogs.com/FengGeBlog/p/10558912.html ELK收集tomcat状态日志]
 +
 
 +
==logstash配置mysql数据同步到elasticsearch==
 +
 
 +
 
 +
 
 +
 
 +
 
 +
[https://www.cnblogs.com/zhang-shijie/p/5384624.html ELK 之三:Kibana 使用与Tomcat、Nginx 日志格式处理]
 +
 
 +
=安全=
 +
==nginx代理==
 +
<pre>
 +
1.安装nginx
 +
2.安装Apache密码生产工具 httpd-tools
 +
3.生成密码文件
 +
4.配置Nginx
 +
5.修改 kibna配置文件
 +
6.重启kibna,Nginx
 +
查看登录界面
 +
</pre>
 +
[https://www.linuxgogo.com/1873.html 06-使用 Nginx 做 kibana 安全认证1]
 +
 
 +
==x-pack==
 +
<pre>
 +
官方提供x-pack组件,进行安全防护,报表,集群实时监控。
 +
 
 +
只安装x-pack中的Shield
 +
 
 +
只是对 kibna放在公网 对kibna进行登录验证的话,可以用nginx 代理功能
 +
 
 +
1.nginx代理
 +
2.使用Shield
 +
3.x-pack组件
 +
</pre>
 +
 
 +
 
 +
 
 +
[https://www.jianshu.com/p/d4b19b5150dc ELK的安全加固good]
 +
 
 +
[https://blog.csdn.net/qq_24434491/article/details/80820275 ELK安全配置]
 +
 
 +
[https://elasticsearch.cn/article/129 Elasticsearch 安全加固 101]
 +
 
 +
[https://www.jianshu.com/p/5a42b3560b27 ElasticSearch&Search-guard 5 权限配置]
 +
 
 +
[https://blog.csdn.net/qq_41980563/article/details/88725584 elk设置密码,elasticsearch设置密码]
 +
 
 +
=集群=
 +
 
 +
=trouble=
 +
<pre>
 +
 
 +
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
 +
elasticsearch启动时遇到的错误
 +
 
 +
问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;
 +
 
 +
/etc/sysctl.conf文件最后添加一行
 +
 
 +
vm.max_map_count=262144
 +
 
 +
 
 +
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
 +
 
 +
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
 +
 
 +
  每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
 +
 
 +
ulimit -Hn
 +
ulimit -Sn
 +
  修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
 +
 
 +
*              soft    nofile          65536
 +
*              hard    nofile          65536
 +
 
 +
https://blog.csdn.net/qq942477618/article/details/53414983
 +
 
 +
https://www.jianshu.com/p/89f8099a6d09 Elasticsearch5.2.0部署过程的坑
 +
 
 +
https://www.cnblogs.com/yidiandhappy/p/7714489.html
 +
 
 +
https://www.cnblogs.com/zhi-leaf/p/8484337.html
 +
</pre>
 +
 
 +
=see also=
 +
 
 +
[https://zhuanlan.zhihu.com/p/22400290 ELK不权威指南]
 +
 
 +
[https://blog.csdn.net/yp090416/article/details/81589174 good ELK+logback+kafka+nginx 搭建分布式日志分析平台]
 +
 
 +
 
 +
[https://blog.csdn.net/li123128/article/details/81052374 小白都会超详细--ELK日志管理平台搭建教程]
 +
 
 +
[https://blog.51cto.com/wzlinux/category21.html ELK 教程]
 +
 
 +
 
 +
https://www.elastic.co/guide/cn/index.html
 +
 
 +
 
 +
 
 +
[https://blog.csdn.net/tanqian351/article/details/83827583 ELK搭建教程(全过程)]
 +
 
 +
[https://www.cnblogs.com/xiaoqi/p/elk-part1.html ELK日志套件安装与使用ubuntu]
 +
 
 +
 
 +
 
 +
 
 +
[https://www.jianshu.com/p/666c662f0068 ELK日志分析系统初体验]
 +
 
 +
 
 +
[https://www.elastic.co/guide/cn/kibana/current/introduction.html kibana基础教程]
 +
 
 +
 
 +
[https://blog.csdn.net/mjlfto/article/details/79772848 elasticsearch集成head插件查看es的数据]
 +
 
 +
***
 +
 
 +
[https://blog.csdn.net/buqutianya/article/details/71941351 日志系统ELK使用详解(一)--如何使用]
 +
 
 +
[https://blog.csdn.net/buqutianya/article/details/72019264 日志系统ELK使用详解(二)--Logstash安装和使用]
 +
 
 +
[https://blog.csdn.net/buqutianya/article/details/72026768 日志系统ELK使用详解(三)--elasticsearch安装]
 +
 
 +
 
 +
[https://blog.csdn.net/buqutianya/article/details/72027209 日志系统ELK使用详解(四)--kibana安装和使用]
 +
 
 +
 
 +
[https://blog.csdn.net/buqutianya/article/details/72028868 日志系统ELK使用详解(五)--补充]
 +
 
 +
 
 +
 
 +
[https://www.cnblogs.com/zhang-shijie/p/5303905.html ELK 之一:ElasticSearch 基础和集群搭建]
 +
 
 +
[https://www.cnblogs.com/zhang-shijie/p/5377127.html ELK 之二:ElasticSearch 和Logstash高级使用]
 +
 
 +
[https://www.cnblogs.com/zhang-shijie/p/5384624.html ELK 之三:Kibana 使用与Tomcat、Nginx 日志格式处理]
 +
 
 +
[https://www.cnblogs.com/zhang-shijie/p/5464805.html ELK 之四:搭建集群处理日PV 四亿次超大访问量优化方法]
 +
 
 +
 
 +
[https://www.cnblogs.com/xuwujing/p/11567053.html  ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解]
 +
 
 +
[https://www.cnblogs.com/xuwujing/p/11645630.html ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程]
 +
 
 +
[https://www.cnblogs.com/xuwujing/p/12093933.html ElasticSearch实战系列四: ElasticSearch理论知识介绍]
 +
 
 +
[https://www.cnblogs.com/xuwujing/p/12385903.html ElasticSearch实战系列五: ElasticSearch的聚合查询基础使用教程之度量(Metric)聚合]
 +
 
 +
[https://www.cnblogs.com/xuwujing/p/13412108.html ElasticSearch实战系列六: Logstash快速入门]
 +
 
 +
[https://www.cnblogs.com/xuwujing/p/13520666.html ElasticSearch实战系列七: Logstash实战使用-图文讲解]
 +
 
 +
[https://www.cnblogs.com/xuwujing/p/13532125.html ElasticSearch实战系列八: Filebeat快速入门和使用---图文详解]
 +
 
 +
 
 +
[https://www.jianshu.com/p/4c1f2afa0b6c docker安装ELK后kibana的汉化]
 +
 
  
[https://www.jianshu.com/p/19b921511775 压力测试工具Siege有相关参数]
+
[https://www.cnblogs.com/xiaoqi/p/elk-part1.html ELK日志套件安装与使用]
  
 +
[https://blog.csdn.net/BuquTianya/article/details/71941351 日志系统ELK使用详解(一)--如何使用]
  
  
 +
[http://www.ttlsa.com/elk/howto-install-elasticsearch-logstash-and-kibana-elk-stack/ ELK 部署指南ttlsa]
  
[http://blog.linuxchina.net/?p=3150 介绍几款Web服务器性能压力测试工具ApacheBench(ab) Siege详解]
 
  
[https://www.vpser.net/opt/webserver-test.html  Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程]
+
[https://blog.csdn.net/enweitech/article/details/81744250 ELK+kafka+Winlogbeat/FileBeat搭建统一日志收集分析管理系统]
  
===如果你是 windows .net  请用 ===
+
日志分析 第一章 ELK介绍
 +
http://www.cnblogs.com/xiaoming279/p/6100613.html
  
[http://zhang-ps.iteye.com/blog/2297318  如何测试一个网站的性能(并发数)]
+
日志分析 第二章 统一访问日志格式
 +
http://www.cnblogs.com/xiaoming279/p/6101628.html
  
[http://www.cnblogs.com/zhili/articles/StreeTool.html ASP.NET压力测试]
+
日志分析 第三章 安装前准备及系统初始化
 +
http://www.cnblogs.com/xiaoming279/p/6101951.html
  
[https://www.zhihu.com/question/40527273 如何对Asp.Net网站做并发测试?]
 
  
== 参考==
+
这里开始还没看
[https://segmentfault.com/q/1010000000588140  如何测试一个web网站的性能(并发数)?]
+
日志分析 第四章 安装filebeat
 +
http://www.cnblogs.com/xiaoming279/p/6112715.html
  
[http://wetest.qq.com/lab/view/177.html  早知道早幸福——从压测工具谈并发、压力、吞吐量]
+
[https://zhuanlan.zhihu.com/p/152217444 ELK 日志收集简易教程有配置和一点点使用]
  
[https://www.cnblogs.com/zhengah/p/5160772.html 如何估算网站日承受最大访问PV]
 
  
[[category:ops]]
+
[[category:ops]]

2021年4月27日 (二) 02:50的版本

install

elk download

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

https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz

https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.tar.gz

二进制包

jdk ins

RPM

#set java environment 如果是rpm安装
JAVA_HOME=/usr/java/jdk1.8.0_121
JRE_HOME=/usr/java/jdk1.8.0_121/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

tar.gz

tomcat 自带

yum install tomcat -y  #这些比较懒 这样自动上了openjdk

[root@localhost ~]# java -version 
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

elasticsearch ins


apt 也要记得看这个配置 参考

tar xvf  elasticsearch-6.4.3.tar.gz
mv elasticsearch-6.4.3/   /usr/local/elasticsearch/


vim elasticsearch.yml 修改配置文件,在最下面加入如下几行

network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"

注意,root用户是不能直接启动elasticsearch的,需要新建用户,然后切换用户去启动elasticsearch,如下:
创建elsearch用户组及elsearch用户

groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch

更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
chown -R elsearch:elsearch

切换到elsearch用户再启动

su elsearch
cd elasticsearch/bin
bash elasticsearch &

systemctl stop firewalld 
systemctl disable firewalld



配置管理
Elasticsearch一般不需额外配置,但是为了提高Elasticsearch性能可以通过elasticsearch.yml文件修改配置参数。当然,也可以根据用户系统配置降低配置参数,如jvm.heapsize。Elasticsearch默认占用2G内存,对于系统配置较低的服务器,很可能带来负载过大的问题,因此需要适当减少jvm.heapsize


nginx ins

 vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

 yum install nginx -y #或者你用 yum install epel-release




 vi /etc/nginx/nginx.conf#修改nginx的日志默认输出格式
log_format json '{"@timestamp":"$time_iso8601",'
             '"@version":"1",'
             '"client":"$remote_addr",'
             '"url":"$uri",'
             '"status":"$status",'
             '"domian":"$host",'
             '"host":"$server_addr",'
             '"size":"$body_bytes_sent",'
             '"responsetime":"$request_time",'
             '"referer":"$http_referer",'
             '"ua":"$http_user_agent"'
          '}';
     #access_log  /opt/access.log json;
    access_log  /var/log/nginx/access.log  json;




https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7

https://www.cyberciti.biz/faq/how-to-install-and-use-nginx-on-centos-7-rhel-7/

Kibana

install


#kibana主要是搜索elasticsearch的数据,并进行数据可视化的展现,新版使用nodejs
* kibana配置启动
[root@localhost kibana]# pwd
/usr/local/kibana

vim config/kibana.yml

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
kibana.index: ".kibana"

cd bin/
sh kibana &   启动kibana

启动完毕,可以浏览器输入url:   服务器外网ip:5601 查看是否成功启动:

http://192.168.88.52:5601/app/kibana#/home?_g=()


配置********
Kibana配置可以通过命令行参数或配置文件kibana.yml。Kibana应用的默认地址为localhost,无法从远程访问Kibana,因此,用户需要修改配置文件的server.host属性

配置nginx,为kibana配置反向代理

server{

        listen       80;

        server_name  elk.com;

        location / {

       proxy_set_header Host $host;

        proxy_pass http://localhost:5601;

        }

Logstash


#为了测试  这和ng 和logstash 在同一台机器上
 mv  logstash-6.4.2/  /usr/local/logstash/
cd /usr/local/logstash/bin/


#用这个nginx的
 cat /usr/local/logstash/config/nginx.conf 
input {
    file {
        path => "/var/log/nginx/access.log"
        type => "nginx"
        codec => "json"
        start_position => "beginning"
    }
}

filter {
    geoip {
        fields => ["city_name", "country_name", "latitude", "longitude", "region_name","region_code"]
        source => "client"
    }
}

output {
    if [type] == "nginx" {
        elasticsearch {
            hosts => ["127.0.0.1:9200"]
            index => "nelson-nginx-%{+YYYY.MM.dd}"
        }
        stdout {}
    }
}

# 是Elasticsearch 的ip哦 千万不能写错啦  线上的情况一般是l 和ek 不在同一个机器

# hosts => ["127.0.0.1:9200"]  

./bin/logstash -f ./config/nginx.conf

访问nginx 就会 在控制台看到如下输出

    "@timestamp" => 2019-05-31T08:26:26.000Z,
          "domian" => "192.168.88.52",
            "size" => "0",
              "ua" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36",
           "geoip" => {},
            "tags" => [
        [0] "_geoip_lookup_failure"
    ],
          "status" => "304",
         "referer" => "-",
            "path" => "/var/log/nginx/access.log",
             "url" => "/index.html",
            "type" => "nginx",
          "client" => "192.168.88.4",
            "host" => "192.168.88.52",
        "@version" => "1",
    "responsetime" => "0.000"
}




查看   
你的 kibana 地址 ,这个 这次变了 
http://192.168.88.167:5601
右菜单 ->Discover





启动脚本

add redis

docker



Docker 安装 ELK -sebp

使用Docker快速部署ELK环境(最新5.5.1版本)

Docker ElK安装部署使用教程

usage

tomcat logs


Step 1 of 2: Define index pattern
Index pattern

nelson-nginx-*   #因为前面的output index => "nelson-nginx


Step 2 of 2: Configure settings
@timestamp


#这个老的
Step 1 of 2: Define index pattern
Index pattern
logstash-*

有这些字些Success!  Your index pattern matches 1 index

Step 2 of 2: Configure settings

elk部署配置,收集nginx和tomcat日志

ELK收集tomcat状态日志

logstash配置mysql数据同步到elasticsearch

ELK 之三:Kibana 使用与Tomcat、Nginx 日志格式处理

安全

nginx代理

1.安装nginx
2.安装Apache密码生产工具 httpd-tools
3.生成密码文件
4.配置Nginx
5.修改 kibna配置文件
6.重启kibna,Nginx
查看登录界面

06-使用 Nginx 做 kibana 安全认证1

x-pack

官方提供x-pack组件,进行安全防护,报表,集群实时监控。

只安装x-pack中的Shield

只是对 kibna放在公网 对kibna进行登录验证的话,可以用nginx 代理功能

1.nginx代理
2.使用Shield
3.x-pack组件


ELK的安全加固good

ELK安全配置

Elasticsearch 安全加固 101

ElasticSearch&Search-guard 5 权限配置

elk设置密码,elasticsearch设置密码

集群

trouble


max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
elasticsearch启动时遇到的错误

问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;

/etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144


[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

  每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量

ulimit -Hn
ulimit -Sn
  修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效

 *               soft    nofile          65536
 *               hard    nofile          65536

https://blog.csdn.net/qq942477618/article/details/53414983

https://www.jianshu.com/p/89f8099a6d09 Elasticsearch5.2.0部署过程的坑

https://www.cnblogs.com/yidiandhappy/p/7714489.html

https://www.cnblogs.com/zhi-leaf/p/8484337.html

see also

ELK不权威指南

good ELK+logback+kafka+nginx 搭建分布式日志分析平台


小白都会超详细--ELK日志管理平台搭建教程

ELK 教程


https://www.elastic.co/guide/cn/index.html


ELK搭建教程(全过程)

ELK日志套件安装与使用ubuntu



ELK日志分析系统初体验


kibana基础教程


elasticsearch集成head插件查看es的数据

日志系统ELK使用详解(一)--如何使用

日志系统ELK使用详解(二)--Logstash安装和使用

日志系统ELK使用详解(三)--elasticsearch安装


日志系统ELK使用详解(四)--kibana安装和使用


日志系统ELK使用详解(五)--补充


ELK 之一:ElasticSearch 基础和集群搭建

ELK 之二:ElasticSearch 和Logstash高级使用

ELK 之三:Kibana 使用与Tomcat、Nginx 日志格式处理

ELK 之四:搭建集群处理日PV 四亿次超大访问量优化方法


ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解

ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程

ElasticSearch实战系列四: ElasticSearch理论知识介绍

ElasticSearch实战系列五: ElasticSearch的聚合查询基础使用教程之度量(Metric)聚合

ElasticSearch实战系列六: Logstash快速入门

ElasticSearch实战系列七: Logstash实战使用-图文讲解

ElasticSearch实战系列八: Filebeat快速入门和使用---图文详解


docker安装ELK后kibana的汉化


ELK日志套件安装与使用

日志系统ELK使用详解(一)--如何使用


ELK 部署指南ttlsa


ELK+kafka+Winlogbeat/FileBeat搭建统一日志收集分析管理系统

日志分析 第一章 ELK介绍 http://www.cnblogs.com/xiaoming279/p/6100613.html

日志分析 第二章 统一访问日志格式 http://www.cnblogs.com/xiaoming279/p/6101628.html

日志分析 第三章 安装前准备及系统初始化 http://www.cnblogs.com/xiaoming279/p/6101951.html


这里开始还没看 日志分析 第四章 安装filebeat http://www.cnblogs.com/xiaoming279/p/6112715.html

ELK 日志收集简易教程有配置和一点点使用