ELK
来源:互联网 发布:浙江日报撤资淘宝天下 编辑:程序博客网 时间:2024/06/07 22:00
业务场景的:日志的记录的,
APP应用的,
Win应用ERP,OA,CRM
百纳科技的源代码的ERP的,淘源码的,
服务器日志的
Tomcat,NGINX,HTTP
DB,MYSQL
接口 APIMan
产生大量的日志的。
E:ElasticSearch搜索引擎的,solr引擎的,不仅仅是搜索的,也可以作为存储的使用的。数据量在机器的评估范围内的。
L:logstash的,日志收集的。flume收集的
K:kibana展示页面的。一条一条的日志有时间戳的,ip地址,状态,放进ES中的,通过Kibana来进行显示的。
Nginx会记录访问的IP地址的,负载均衡的额,
ELK版本不统一的问题的,
HBase+Impala+solr技术方案
HBase+Phoenix的
ELK 日志易 对企业提供服务的。
Splunk 日志收集的
日志分析处理,功能应用于市场来说的,Splunk 日志易
更大的一家的,ELK的统一 https://www.elastic.co
对于公司来说是能不花钱的就是不要花钱的。
不花钱的日志收集是如何做的。。。。
Beats is a platform for lightweight shippers that send data from edge machines to logstash and elasticsearch
Beats是直接进行下载tar包的,
Kiban Visualize your data,Navigate the Elastic stack
ElasticSearch Search analyze and store your data
FileBeat:Log Files
MetricBeat:Metrics度量值收集
MySQL数据库收集用Zabbix的
搜索MetricBeat mysql kibana
使用ELK对Kafka做了一套监控的,没有上CDH环境的,只是Apache的。Apache的Kafka的监控并不是很优秀的。
ELK+Kafka的监控。
ELK+Kubernaetes收集
ELK+Mysql的收集
优秀员工奖
ELK+Beats
日志收集,通过Nginx网页刷新的,生成的access.log文件的日志的额,用Logstash进行收集的,发送的数据叫做index名称,key-value值,key为index的索引,value为access.log中的一行记录数的,发送到ElasticSearch进行存储的,报表展示的Kibana向ElasticSearch进行搜索的额,
公司的代码html都放在Nginx下面的,对外提供访问的,IP号+端口号的,
1.难点在Logstash端的,日志access.log是不是标准格式的话,进行过滤 筛选的
2.ElasticSearch端的,自带的是没有web界面的,装个Head插件的额,进行管理界面的,ElasticSearch由于是存储数据而作索引的额,要进行调优优化的,级别最高的,
Kibana就是配置参数而已的
elasticsearch-6.0.0.tar.gz
logstash-6.0.0.tar.gz
kibana-6.0.0-linux-x86_64.tar.gz
ElasticSearch5.0开始的时候是将各个版本进行统一处理的。。
add correct host key in /root/.ssh/known_hosts to get rid of this message,
删除本地的known_hosts文件的。
习惯性操作的是在删除文件之前要进行备份一次的。。。。。。备份重于一切的,
解压之后的tar包,用户组用户改变了,访问的时候可能有问题的,
ElasticSearch是集群模式的。
vim $ELASTICSEARCH_HOME/config/elasticsearch.yml
cluster.name yzjcluster
node.name hadoop-001
path.data:/opt/software/data
path.logs:/opt/software/logs
network.host: 192.168.1.1
bin/elasticsearch启动ElasticSearch服务的额,
进入到logs文件cluster.logs文件的 。
启动过ps -ef | grep elastic,通过命令来进行查看命令,进程服务是否存在的。
cat cluster.log
ERROR Exception java.lang.RuntimeException:can not run elasticsearch as root
useradd elkuser
chown -R elkuser:elkuser elasticsearch-6.0.0
su - elkuser
/home/elkuser直接关联到elasticsearch的家目录中的。
用root用户来进行修改的vim /etc/passwd
elkuser:x:516:516::/opt/software/elasticsearch-6.0.0:/bin/bash
su - elkuser
pwd===/opt/software/elasticsearch-6.0.0
将elkuser用户与项目的家目录进行关联起来的额,
tail -F cluster.log 用-F进行跟踪日志信息的。
日志文件达到200M进行切片的,-f当在切分日志的时候,会可能中断日志的信息的,而-F会有一个重试的机制的额,不会尽心断掉的。
-F –retry重试的机制的
-f就是实时的打印出来的
【4】bootstrap checks failed
[1]max file descriptors[4096]
for elasticsearch process is too low,increase to least [65536]
[2] max number of threads [1024]
for user [elkuser] is too low,increase to at least [4096]
[3] max virtual memory areas vm.max_map_count[65530] is too low
increase to at least [262144]
[4] system call filters failed to install,check the logs and fix your configuration or disable system call filters at your own risk
用root用户进行操作的,以上参数的设置的。
echo “* soft nofile 65535” >>/etc/security/limits.conf
echo “* hard nofile 131072” >>/etc/security/limits.conf
echo “elkuser soft nproc 4096” >>/etc/security/limits.conf
echo “elkuser hard nproc 4096” >>/etc/security/limits.conf
sysctl -w vm.max_map_count=262144
echo “vm.max_map_count=262144” >>/etc/sysctl.conf
sysctl -p使之生效的。
ulimit -a
open files (-n)1024
max user processes (-u)1024
这俩个参数必须是要进行重启的,reboot的。
su - elkuser
ulimit -a打印当前用户的信息的。
第四种错误一是要进行升级的,从centos6.x—->到centos7.x
二是disable禁用的,
vim $ELASTICSEARCH_HOME/config/elasticsearch.yml
Lock the memory on startup;
bootstrap.memory_lock:false
bootstrap.system_call_filter:false
不能用root用户进行启动的,
分析下启动的脚本的:
cat $ELASTICSEARCH_HOME/bin/elasticsearch
后台运行的方式,不会打印日志信息了。
bin/elasticsearch -d
ps -ef | grep ela看看进程有无起来的。
启动服务后,可以进入logs中进行查看ip和port的。
启动ElasticSearch后,命令如下:
curl -XGET ‘192.168.137.132:9200/?pretty’
ELK+Beats各种度量值的。
ELK的业务场景的额。
ELK中间一般有Redis进行缓冲的,
Logstash到Redis中的,Redis再到Logstash中作为Indexer的,然后再对接到Elasticsearch中的,
Using Redis as Buffer in the ELK stack
FileBeat对接到Redis,Redis再对接到Logstash中的,
启动ElasticSearch的时候报错,一是不能用root的用户进行启动的,二是四个小错误的额,linux的文件数,进程数目要针对具体的用户的启动的,swap的参数的设置。
搜索ELK redis
ElasticeSearch的官网文档的详细设计的说明的,搜索和存储的额,
Logstash:收集nginx的日志的,学习一个组件最重要的东西就是一些配置文件的额,部署和运维的角色的。
Configuring Logstash:
bin/logstash -f logstash-simple.conf
Nginx中的access.log日志由Logstash进行实时收集到Elasticsearch中的。
Logstash配置指向Nginx的:
nginx-1.8.0.tar.gz
在安装nginx之前,openssl pcre zlib都是需要进行先安装好的额,解压安装的顺序是没有顺序的,不会统一的。
scp *.tar.gz ip:/usr/local
第一个解压pcre:tar -zxvf
cd $PCRE_HOME
./configure进行一些环境变量的检查的。是否满足条件的。
make && make install 编译并且安装的。
解压zlib:解压
./configure
make && make install
解压openssl:
./config
make && make install
pcre zlib openssl都安装了,最后是nginx的:
解压nginx:./configure –prefix=/usr/local/nginx 源码包安装编译到哪个目录下面的。
./configure –prefix=/usr/local/nginx 需要指定之前编译安装的东西的额,–with-pcre=/usr/local/pcre-8.36 \
–with-zlib=/usr/local/zlib-1.2.8
openssl会读默认的路径的。。。
make && make install
Logstash的官网的阅读的,主要是配置信息的。
Logstash Configuration Examples
input {stdin{}}
filter{
grok{
match =>{“message”=>”%{}”}
}
date {
match =>{“timestamp”,”dd/”}
}
}
output {
elasticsearch{hosts=>[“localhost:9200”]}
stdout{codec=>rubydebug}当前的会话窗口的额,
}
bin/logstash -f logstash-fliter.conf
Nginx配置HTTPS的时候,是需要openssl的,但是正常的情况下是不需要的额,
Configuration summary:
using pcre library:/usr/local/pcre-8.36
openssl library is not used
md5 using system crypto library
sha1 using system crypto library
using zlib library:/usr/local/zlib-1.2.8
启动Nginx的,二进制包的
/usr/local/nginx/sbin/nginx启动即可的额,
/usr/local/nginx/sbin/nginx -t是查看状态的。状态是否ok的。
/usr/local/nginx/sbin/nginx -s reload表示的是重启nginx服务的。
ps -ef | grep nginx
进程在的,服务不一定ok的,有时候由于端口号是挂掉的
80端口号,https的服务的端口也是80的端口的额,
nginx的端口是80的,
service httpd stop的
可以进行修改nginx的端口号的:
vim /conf/nginx.conf
http{
server{
listen 888;
server_name localhost;
}
}
tail -F logs/access.log
HTML文件放入到Nginx中的,Nginx的负载均衡的,nginx可以记录哪个IP过来的,
爬虫高阶需要动态的IP操作的额,动态IP服务的,
业务紧缺,影响别人业务的,用户体验不好的,爬虫
vim logstash-6.0.0.0/logstash-nginx-access-log.conf
input {
file {
path=>[“/usr/local/nginx/logs/*.log”]
type=>”system”
start_position=>”beginning”
}
}
filter{
grok{
match=>{}
}
date {
match=>[“time”,”dd/MMM/YYYY:HH:mm:ss Z”]
locale=>en
}
}
output{
elasticsearch{
hosts=>[“192.168.137.131:9200”]
index=>”logstash-nginx-access-log”
}
stdout{codec=>rubydebug} //stdout输出到当前的会话窗口的,
}
ps -ef | grep elastic
netstat -nlp | grep 9200
后台启动的进程服务:
nohup bin/logstash -f logstash-nginx-access-log.conf &
tail -F nohup.out
kill -9 $(pgrep -f logstash)
free -m
top
ps -ef | grep 27130
解压kibana
vim $KIBANA_HOME/config/kibana.yml
server.host:”192.168.137.132”
elasticsearch.url:”http://192.158.137.132:9200”
bin/kibana启动Kibana服务:
192.168.137.132:5601启动的kibana服务的。
Management:管理就是创建ElasticSearch索引的名字的。
output{
elasticsearch{
hosts=>[“192.168.137.132:9200”]
index=>”logstash-nginx-access-log”
}
}
Index pattern:logstash-nginx-access-log会去Elasticsearch中校验有没有对应的索引名称的。
Time Filter field name:@timestamp
Discover:就是Kibana中的展示部分的。
Visualize:制作图表的
Dashboard:盘
timelion
看日志错误的额,捕获ERROR的图表的。ERROR的明细列表的信息。
ELK捕获异常信息的日志,try{}catch中的代码写到日志中的,通过ELK监控那个日志文件的,一旦日志有数据量上来的时候,曲线是上升的,监控发邮件的额,收到邮件登陆到ELK的web界面上 进行查看的。
ELK中的Elasticsearch部署多台机器就可以了,kibana一台的,Logstash收集哪里日志就部署哪里的额,logstash客户端的,哪里有 日志就部署哪里的。。。
Elasticsearch部署多台的,
vim $ELASTICSEARCH_HOME/config/elasticsearch.yml
cluster.name:
node.name:
network.host:
error while loading shared libraries:cannot open shared object file :no such file or directory
在–prefix后面接上一下的命令:
–with-pcre=/usr/local/pcre-8.36指的是pcre-8.36的源码路径的
–with-zlib=/usr/local/
停止httpd服务,启动nginx服务的,
Address already in use端口占用异常的时候,停止服务的
service httpd status
service httpd stop
nginx -s reload重启服务的
nginx -s stop停止服务的
测试配置文件是否正常的,
nginx -t的,
强制关闭的,pkill nginx
kill -9 $(pgrep -f nginx)
Elasticsearch是需要一个插件来进行管理的,进行web界面的管理的。
Kibana创建Elasticsearch索引的额,configure an index pattern正则模式的匹配的。
搜索ELK 地图
Geoip的组件的,描述地图的分布的情况。
使用ELK结合Geoip组件来进行描述综合性的地图的。
使用ELK结合Geoip来制作可视化的地图的
解析当前的IP是属于哪个省市的,
ip搜索
Geoip是ip的查询插件的,
Kibana和Grafana的优缺点,
Granfana也可以对接ElasticSearch的,
Kibana的邮件报警不是很好的,
dashboards 中的案例,都是别人写好的额,可以直接下载下来直接使用的,
https://grafana.com/dashboards/2292
nginx的配置文件的
logstash的配置文件的
output{
elasticsearch{
hosts=>”127.0.0.1:9200”
index=>”logstash-nginx-access-%{+YYYY.MM.dd}”
}
}
每一天做一个索引的。Elasticsearch优化是非常好的,索引量的评估的,
在线日志分析的spark项目的:v1版本的。
Dashboard Revisions
java mysql 增删改查
java 列表框
spark 数据倾斜 美团
多看多学习的,
key分布不均匀,大散,加些前缀的, key+前缀的,repartition
自己的笔记进行整理的,
文档文章按照配置即可的,动手做动手查,别无他法的。
坑的,大坑的额,2到3个,博客上的,千叮咛万嘱咐的,,,,