1.Shell编程-基础
[toc]
shell的基本概述为什么要使用shell?
安装操作系统(CentOS)自动化安装操作系统(kickstart cobbler)底层shell
初始化优化操作系统
ntp时间同步
更改默认yum源
ssh优化
关闭Selinux
关闭/开启 防火墙(C6:iptables C7:firewalld)
安装基础服务(wget vim lrzsz net-tools unzip gzip…)
优化文件描述符
优化字符集
安装服务
Nginx
PHP
MySQL
Redis
MHA
Rsync
NFS
MongoDB
Zabbix
启动 服务(系统默认的shell脚本)
脚本实现自动化代码上线
监控服务(使用shell)
结合定时任务使用shell
重复性工作写入脚本
日志切割
日志分析
数据统计
机器巡检
数据备份
shell的编程和基础知识
熟练使用vim编辑器
熟悉ssh终端(Xshell、CRT)
熟练掌握linux常用命令
熟练掌握linux正则表达式及三剑客命令
如何写好shell的编程
环境变量
条件表达式
流程控制语句
循环
数组
函数
学 ...
9.Kibana深入-日志图形展示
[toc]
Kibana创建区域图Kibana支持多重图从展示功能,需要日志是json格式的支持。
Kibana区域图打开浏览器,访问:http://10.0.0.54:5601
选择一个日志
添加一个X轴
再次点击Vlsualize即可看见刚才创建的图形
Kibana创建数据表Kibana数据表点击图中 +号 即可再次画图。
选择Data table 数据表
选择日志
添加行
保存
Kibana创建热图热图举例
Kibana热图
颜色随意选择
Kibana创建折线图
Kibana创建MarkDownKibana Mark Down
Kibana创建饼图Kibana饼图
Kibana创建条形图Kibana条形图
Kibana创建度量图Kibana度量图
Kibana创建标签云标签云举例
Kibana标签云
Kibana聚合图形聚合图形创建一个Dashboard
一开始什么都没有的时候,它会告诉你Dashboard是空的,点击Add添加。
再次点击Dashboard就可以看见刚才创建的聚合图形了。 ...
8.Filebeat深入收集日志
[toc]
Filebeat介绍及部署Filebeat介绍Filebeat附带预构建的模块,这些模块包含收集、解析、充实和可视化各种日志文件格式数据所需的配置,每个Filebeat模块由一个或多个文件集组成,这些文件集包含摄取节点管道、Elasticsearch模板、Filebeat勘探者配置和Kibana仪表盘。
Filebeat模块很好的入门,它是轻量级单用途的日志收集工具,用于在没有安装java的服务器上专门收集日志,可以将日志转发到logstash、elasticsearch或redis等场景中进行下一步处理。
Filebeat和Logstash使用内存对比Logstash内存占用
123456789101112131415ps -ef | grep -v grep | grep logstash | awk '{print $2}'12628cat /proc/12628/status | grep -i vmVmPeak: 6252788 kBVmSize: 6189252 kBVmLck: 0 kBVm ...
7.Logstash结合Redis搭建集群
[toc]
Logstash将日志写入Redis为什么要使用Redis在企业中,日志规模的量级远远超出我们的想象,这就是为什么会有一家公司日志易专门做日志收集,给大型金融公司收集日志,比如银行,因为你有可能看到,1秒钟好几千万的日志量,往服务器写入,那么企业中的集群,架构都不是单台的,而是多台的,一台如果是1千万,那么5台的量级,10台的量级,我们要对他们进行收集,进行分析,难免会在网络传输过程中,丢数据。
日志是什么?日志对于企业来说,有什么作用?用户使用我们的产品,体验如何?用户的客诉,我们能拿出什么样的数据来说话?…
一系列的问题,都和日志相关,如果至关重要的那个数据丢失了,那么公司的损失可不仅仅是一条日志那么简单。如果我们不知道,用户对我们产品最感兴趣的地方在哪,那么产品的寿命也就越来越短。如果被攻击了,恶意攻击的IP源我们都找不到,那么或许就不是产品的寿命越来越短,而是这个企业存在的寿命,越来越短。
一个大规模日志量级的企业想要做到数据的安全性,数据的一致性,我们需要消息队列:Redis, Kafka,在ELK5版本中,建议使用Redis来做消息队列,Kafka能不能用?也能 ...
6.Logstash深入收集多类型日志
[toc]
Logstash收集java日志并输出到ES中因为我们现在需要用Logstash收集tomcat日志,所以我们暂时将tomcat安装到Logstash所在机器,也就是db03:10.0.0.83这台机器,收集tomcat访问日志以及tomcat错误日志进行实时统计,在企业中,tomcat机器肯定不是单台,而是一个集群的形式,那么我们每台tomcat上都需要安装一个Logstash,然后将收集到的日志输出给Elasticsearch进行分析。
将tomcat日志改成json格式在企业中,我们看到tomcat日志遇到异常(exception)一条日志可能是几行或者十几行甚至几十行,组成的,那么,我们需要将多行日志变成一行日志,来收集。
这里我们有几种方式可以实现:
将日志改成Json格式
企业中,java日志格式并不能随意改成json格式,因为将日志改成Json格式,查看起来会很难受,有些开发人员不希望将日志格式改成Json,所以需要跟开发人员进行沟通。将tomcat日志格式改成Json格式的两种方式:
开发自己更改,通过程序代码,或者log4j
运维修改tomcat的 ...
5.Kibana安装,索引添加及界面功能
[toc]
Kibana简介及部署什么是Kibana?Kibana是一个通过调用elasticsearch服务器进行图形化展示搜索结果的开源项目。
kibana环境准备
主机名
wanIP
LanIP
角色
应用
elk01
10.0.0.81
172.16.1.81
ES日志存储数据库
JDK elasticsearch
elk02
10.0.0.82
172.16.1.82
ES日志存储数据库
JDK elasticsearch
elk03
10.0.0.83
172.16.1.83
日志数据转发工具
JDK logstash kibana
Kibana安装及配置12345678910111213141516171819202122232425262728# 下载kibana安装包wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.16-x86_64.rpm# 将Kibana安装包下载至服务器,并安装yum localinstall -y kibana-5.3.0-x86_64.rpm# ...
4.Logstash部署、测试与系统日志收集
[toc]
Logstash环境准备与安装Logstash环境准备
主机名
wanIP
LanIP
角色
应用
elk01
10.0.0.81
172.16.1.81
ES日志存储数据库
JDK elasticsearch
elk02
10.0.0.82
172.16.1.82
ES日志存储数据库
JDK elasticsearch
elk03
10.0.0.83
172.16.1.83
日志数据转发工具
JDK logstash
关闭防火墙
12345# CentOS6 关闭防火墙/etc/init.d/iptables stop# CentOS7 关闭防火墙systemctl stop firewalld
关闭SELINUX
12345678910111213141516# 临时关闭setenforce 0setenforce: SELinux is disabled# 永久关闭vim /etc/sysconfig/selinux# This file controls the state of SELinux on the system.# SELINUX ...
3.Elasticsearch内部分片及分片处理机制介绍
[TOC]
副本分片介绍什么是副本分片?副本分片的主要目的就是为了故障转移,如果持有主分片的节点挂掉了,一个副本分片就会晋升为主分片的角色。
在索引写入时,副本分片做着与主分片相同的工作。新文档首先被索引进主分片然后再同步到其它所有的副本分片。增加副本数并不会增加索引容量。
无论如何,副本分片可以服务于读请求,如果你的索引也如常见的那样是偏向查询使用的,那你可以通过增加副本的数目来提升查询性能,但也要为此,增加额外的硬件资源。
Elasticsearch内部分片处理机制逆向索引
与传统的数据库不同,在Elasticsearch中,每个字段里面的每个单词都是可以被搜索的。如teacher:“zls,bgx,lidao,oldboy,alex”我们在搜索关键字oldboy时,所有包含oldboy的文档都会被匹配到Elasticsearch的这个特性也叫做全文搜索。
为了支持这个特性,Elasticsearch中会维护一个叫做“invertedindex”(也叫逆向索引)的表,表内包含了所有文档中出现的所有单词,同时记录了这个单词在哪个文档中出现过。
例: 当前有4个文档
txt1:“zls ...
2.Elasticsearch部署
[toc]
ELKstack部署及配置环境准备
公网IP
内网IP
主机名
部署服务
用途
10.0.0.81
172.16.1.81
elk01
elasticsearch、JDK
存储日志的数据库(2G内存)
10.0.0.82
172.16.1.82
elk02
elasticsearch、JDK
存储日志的数据库(2G内存)
10.0.0.83
172.16.1.83
elk03
Logstash、JDK
收集日志、过滤日志
10.0.0.84
172.16.1.84
elk04
Redis、Kibana
消息队列、日志展示
10.0.0.85
172.16.1.85
nginx01
nginx、filebeat
修改nginx日志格式为json收集
10.0.0.86
172.16.1.86
tomcat01
tomcat、JDK、filebeat
修改tomcat日志格式为json收集
安装包准备
安装包名
用途
elasticsearch-5.3.0.rpm
存储日志的数据库
elasticsearch-head.tar.g ...
12.Kibana深入-Dev Tools及Lucene语法
[toc]
Dev Tools介绍Dev Tools 页面包含开发工具,您可以使用这些Dev Tools与Kibana中的数据进行交互。
原先的交互式控制台Sense,使用户方便的通过浏览器直接与Elasticsearch进行交互。从Kibana 5开始改名并直接内建在Kibana,就是Dev Tools选项。
Kibana提供了Console UI来通过REST API与Elasticsearch交互,Console位于Kibana的Dev Tools栏下。Console有两个主要区域,左边是编辑区用来书写REST请求,右边用来显示请求返回结果。
自动提示Console提供了自动提示功能,可以为你提供API、方法等提示。编写完请求后点击绿色执行按钮,会在右侧面板给出请求结果。执行按钮旁边的“小扳手”按钮,可以将请求copy转化为curl(copy),还有一个功能就是自动缩紧格式(Auto Indent)。如果对已经锁进好的代码进行Auto Indent,Console会将请求体(body)缩进在一行中。
多请求查询Console支持多请求查询,只需要你将左侧选中执行即可。Conso ...