ELK学习笔记
一、elk框架和java1.8环境搭建
1.1: 环境说明
约定:
centos6
iptables关闭 如果不关闭的话,需要开放对应的端口访问
selinux关闭
1.2: ELK简介
els:ElasticSearch,Logstash,Kibana,Beats
elk:ElasticSearch,Logstash,Kibana
① ElasticSearch 搜索引擎
ElasticSearch 是一个基于Lucene的搜索引擎,提供索引,搜索功能。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便
② Logstash 接收,处理,转发日志的工具
Logstash 是一个开源的服务器端数据处理流水线,它可以同时从多个数据源获取数据,并将其转换为最喜欢的"存储"(Ours is Elasticsearch, naturally.)
③ Beats:采集日志信息(加上beats 就是els),GO开发的,所以高效、很快
Filebeat:Log Files
Metricbeat:Metrics
Packetbeat:Network Data
Winlogbeat:Windows Event Logs
Heartbeat:Uptime Monitoring
④ Kibana:独立的、美观的图形数据展示界面
Kibana 让你可视化你的Elasticsearch数据并导航Elastic Stack,所以你可以做任何事情,从凌晨2:00分析为什么你得到分页,了解雨水可能对你的季度数字造成的影响。
原理图:
1.3: yum 安 装 jdk1.8
Java 8 is required for Logstash 6.x and 5.x.(https://www.elastic.co/downloads/logstash)
yum install java-1.8.-openjdk -y
#elasticsearch、logstash依赖于java环境
1.4: 使用官方的二进制包解压安装jdk1.8
先下载java linux 64位tar.gz包java 1.8
下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
1.5: 解压,移动(即安装)
cd /usr/local/src/
tar -zxvf jdk-8u162-linux-x64.tar.gz
mv jdk1..0_162 /usr/local/
#用全路径验证java是否安装成功
/usr/local/jdk1..0_162/bin/java -version
1.6: 配置java环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1..0_162/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
source /etc/profile
1.7: java版本查看
java -version
二、kibana的安装和启动
2.1: kibana 下载地址
(kibana 主要用来展现数据,它本身不存储数据 )
https://artifacts.elastic.co/downloads/kibana/kibana-6.1.1-linux-x86_64.tar.gz
2.2: 添加elk用户,解压安装
usermod -s /sbin/nologin elk #不让elk用户来登录系统解压安装kibana:
tar -zxf kibana-6.1.-linux-x86_64.tar.gz
mv kibana-6.1.-linux-x86_64 /usr/local/kibana-6.1.
2.3: kibana配置文件
vim /usr/local/kibana-6.1.1/config/kibana.yml
修改:
server.port:
server.host: "0.0.0.0"(监听在所有网卡,有风险)
#elasticsearch.url: "http://localhost:9200" (默认是连接elasticsearch的9200端口)
#elasticsearch.username: "user" (配置连接elasticsearch的用户名和密码)
#elasticsearch.password: "pass"
2.4: 把kibana目录改为elk用户
chown -R elk:elk /usr/local/kibana-6.1./
2.5: 新增启动脚本
vim /usr/local/kibana-6.1./bin/start.sh
nohup /usr/local/kibana-6.1./bin/kibana >>/tmp/kibana.log >>/tmp/kibana.log
chmod a+x /usr/local/kibana-6.1./bin/start.sh
2.6: 用普通用户启动
su -s /bin/bash elk '/usr/local/kibana-6.1.1/bin/start.sh'
访问kibana,注意防火墙放开tcp 5601端口。我这边就直接关闭防火墙了。
2.7:使用Nginx限制访问kibana
使用nginx转发到kibana,由于kibana没有权限控制,可以借助nginx来部署认证和进行ip控制先把kibana改到监听127.0.0.1,然后利用nginx来转发。配置如下:
server {
listen ;
access_log /usr/local/nginx/logs/kibana_access.log main;
error_log /usr/local/nginx/logs/kibana_error.log error;
location / {
allow 127.0.0.1; deny all;
proxy_pass http://127.0.0.1:5601;
}
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
如果ip经常变化,感觉麻烦的话,就使用用户名密码登录的方式。
location / {
auth_basic "elk auth";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
proxy_pass http://127.0.0.1:5601;
} 生成密码文件
printf "elk:$(openssl passwd -1 elkpass)\n" >/usr/local/nginx/conf/htpasswd
三、elasticsearch安装和启动
3.1: elasticsearch的下载地址
(elasticsearch主要用来存储数据和查询分析,供kibana调取并进行展现)
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.tar.gz
3.2:解压安装
cd /usr/local/src/
tar -zxf elasticsearch-6.1..tar.gz
mv elasticsearch-6.1. /usr/local/
3.3:elasticsearch配置
vim /usr/local/elasticsearch-6.1./config/elasticsearch.yml
修改:
path.data: /usr/local/elasticsearch-6.1./data
path.logs: /usr/local/elasticsearch-6.1./logs
network.host: 127.0.0.1
http.port:
3.4:把elasticsearch目录改为elk
mkdir -p /usr/local/elasticsearch-6.1./data
mkdir -p /usr/local/elasticsearch-6.1./logs
chown -R elk:elk /usr/local/elasticsearch-6.1./
3.5: 更改jvm的内存限制(看个人机器配置)
vim /usr/local/elasticsearch-6.1./config/jvm.options
-Xms100M
-Xmx100M
3.6: 编辑elasticsearch启动脚本,-d后台启动。
vim /usr/local/elasticsearch-6.1./bin/start.sh
/usr/local/elasticsearch-6.1./bin/elasticsearch -d >>/tmp/elasticsearch.log >>/tmp/elasticsearch.log
chmod a+x /usr/local/elasticsearch-6.1./bin/start.sh
3.7: 启动elasticsearch
注意ES必须要普通用户启动
su -s /bin/bash elk '/usr/local/elasticsearch-6.1.1/bin/start.sh'
观察日志 tailf /tmp/elasticesearch.log
观察kibana网页,看下还会不会报elasticsearch的错误
elasticsearch监听在非127.0.0.,需要验证内核参数
network.host: 0.0.0.0
3.8: 常见启动报错
1、(处理max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144])
vim /etc/sysctl.conf
添加
vm.max_map_count = 262144
2、( 处 理 max number of threads [1024] for user [elk] is too low,increase to at least [4096] vim /etc/security/limits.d/90-nproc.conf
* soft nproc 4096
* hard nproc 4096
3、( 处 理 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536])
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
4、(处理system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk)
vim /usr/local/elasticsearch-6.1.1/config/elasticsearch.yml
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
跟新中。。。
ELK学习笔记的更多相关文章
- ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack
最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因 ...
- ELK学习笔记之CentOS 7下ELK(6.2.4)++LogStash+Filebeat+Log4j日志集成环境搭建
0x00 简介 现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的. 经 ...
- ELK学习笔记(二)-HelloWorld实例+Kibana介绍
这次我们通过一个最简单的HelloWolrd来了解一下ELK的使用. 进入logstash的config目录,创建stdin.conf 文件. input{ stdin{ } } output{ st ...
- ELK学习笔记(三)单台服务器多节点部署
一般情况下单台服务器只会部署一个ElasticSearch node,但是在学习过程中,很多情况下会需要实现ElasticSearch的分布式效果,所以需要启动多个节点,但是学习开发环境(不想开多个虚 ...
- ELK学习笔记(四)SpringBoot+Logback+Redis+ELK实例
废话不多说,直接上干货,首先看下整体应用的大致结构.(整个过程我用到了两台虚拟机 应用和Shipper 部署在192.168.25.128 上 Redis和ELK 部署在192.168.25.129 ...
- ELK学习笔记之基于kakfa (confluent)搭建ELK
0x00 概述 测试搭建一个使用kafka作为消息队列的ELK环境,数据采集转换实现结构如下: F5 HSL–>logstash(流处理)–> kafka –>elasticsear ...
- ELK学习笔记之F5 DNS可视化让DNS运维更安全更高效-F5 ELK可视化方案系列(3)
0x00 概述 此文力求比较详细的解释DNS可视化所能带来的场景意义,无论是运维.还是DNS安全.建议仔细看完下图之后的大篇文字段落,希望能引发您的一些思考. 在“F5利用Elastic stack( ...
- ELK学习笔记之F5利用EELK进行应用数据挖掘系列(2)-DNS
0x00 概述 很多客户使用GTM/DNS为企业业务提供动态智能解析,解决应用就近性访问.优选问题.对于已经实施多数据中心双活的客户,则会使用GSLB提供双活流量调度.DNS作为企业业务访问的指路者, ...
- ELK学习笔记之F5利用ELK进行应用数据挖掘系列(1)-HTTP
0x00 概述 F5 BIGIP从应用角度位于网络结构的关键咽喉位置,可获取所有应用的流量,针对流量执行L7层处理,即便是TLS加密的流量也可以通过F5进行SSL offload.通过F5可以统一获取 ...
- ELK学习笔记之Logstash和Filebeat解析对java异常堆栈下多行日志配置支持
0x00 概述 logstash官方最新文档.假设有几十台服务器,每台服务器要监控系统日志syslog.tomcat日志.nginx日志.mysql日志等等,监控OOM.内存低下进程被kill.ngi ...
随机推荐
- Juel Getting Started
Getting Started The JUEL distribution contains the following JAR files: juel-api-2.2.x.jar - contain ...
- hdu 1669(二分图多重匹配)
Jamie's Contact Groups Time Limit: 15000/7000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/ ...
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext
先说:ClassPathXmlApplicationContext 这个类,默认获取的是WEB-INF/classes/下的路径,也就是在myeclipse的src下的路径,所以用这个是获取不到WEB ...
- java网络通信:TCP协议
面试的时候,面试官由于需要考察一个面试人对于网络编程的熟悉程度,往往会考察学生对于TCP.HTTP.UDP.这些常见的网络编程当中的协议的了解程度,而TCP协议则是首当其冲的,作为进程之间通信常用的一 ...
- 学习PHPCMS需要掌握的函数
路径:phpcms\libs\classes\model.class.php /** * 执行sql查询 * @param $where 查询条件[例`name`='$name'] * @param ...
- Codeforces 731 C.Socks-并查集+STL(vector+map)
C. Socks time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- Problem A: 英雄无敌3(1)【dp/待补】
Problem A: 英雄无敌3(1) Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 86 Solved: 16[Submit][Status][ ...
- python——入门系列(一)索引与切片
1.索引和切片:python当中数组的索引和其他语言一样,从0~n-1,使用索引的方法也是中括号,但是python中的切片的使用简化了代码 索引:取出数组s中第3个元素:x=s[2] 切片:用极少的代 ...
- CSS中的层叠、特殊性、继承、样式表中的@import
CSS中的层叠.特殊性.继承.样式表中的@import 层叠 CSS有一个机制是层叠,层叠可以理解为对样式的覆盖,优先性为: 网站开发者的样式表 用户样式(通过设置浏览器的显示选项) 浏览器默认的样式 ...
- [BZOJ 1799] self 同类分布
Link: BZOJ 1799 传送门 Solution: 一句话的题目,看得爽,做得烦 一般这类和数位相关的都是数位$dp$吧 不过一开始还是感觉不太可做,毕竟每个数模数不同 但要发现,模数最高也只 ...