无棣住房建设局网站,WordPress grace7主题,产品如何做线上推广,微信运营服务商目录
一、elasticsearch
1、集群部署
2、cerebro部署
3、elasticsearch-head插件部署
4、elasticsearch集群角色分类
二、logstash
1、部署
2、elasticsearch输出插件
3、file输入插件
4、file输出插件
5、syslog 插件
6、多行过滤插件
7、grok过滤
三、kibana数…目录
一、elasticsearch
1、集群部署
2、cerebro部署
3、elasticsearch-head插件部署
4、elasticsearch集群角色分类
二、logstash
1、部署
2、elasticsearch输出插件
3、file输入插件
4、file输出插件
5、syslog 插件
6、多行过滤插件
7、grok过滤
三、kibana数据可视化
1、部署
2、定制数据可视化
1网站访问量
2访问量排行榜
3创建dashboard仪表盘大屏展示
四、ES集群监控
1、启用xpack认证
2、metricbeat监控
3、filebeat日志采集 一、elasticsearch
Elasticsearch 是一个开源的分布式搜索分析引擎建立在一个全文搜索引擎库 Apache Lucene基础之上。
Elasticsearch 不仅仅是 Lucene并且也不仅仅只是一个全文搜索引擎
一个分布式的实时文档存储每个字段 可以被索引与搜索一个分布式实时分析搜索引擎能胜任上百个服务节点的扩展并支持 PB 级别的结构化或者非结构化数据
基础模块
cluster管理集群状态维护集群层面的配置信息。alloction封装了分片分配相关的功能和策略。discovery发现集群中的节点以及选举主节点。gateway对收到master广播下来的集群状态数据的持久化存储。indices管理全局级的索引设置。http允许通过JSON over HTTP的方式访问ES的API。transport用于集群内节点之间的内部通信。engine封装了对Lucene的操作及translog的调用。
elasticsearch应用场景
信息检索日志分析业务数据分析数据库加速运维指标监控
官网https://www.elastic.co/cn/
1、集群部署 主机 ip 角色 docker 192.168.67.10 cerebro/elasticsearch-head elk1 192.168.67.31 elasticsearch elk2 192.168.67.32 elasticsearch elk3 192.168.67.33 elasticsearch elk4 192.168.67.34 logstash elk5 192.168.67.35 kibana 软件安装 rpm -ivh elasticsearch-7.6.1-x86_64.rpm 修改配置
cluster.name: my-es
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: [server1, server2, server3]
cluster.initial_master_nodes: [server1, server2, server3]系统设置
vim /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch - nofile 65535
elasticsearch - nproc 4096vim /usr/lib/systemd/system/elasticsearch.service
[service]
...
LimitMEMLOCKinfinity
systemctl daemon-reloadswapoff -avim /etc/fstab
#/dev/mapper/rhel-swap swap swap defaults 0 0systemctl daemon-reload
systemctl enable --now elasticsearch完成部署
2、cerebro部署 cerebro官方https://github.com/lmenezes/cerebro/ 使用docker启动服务 docker pull lmenezes/cerebro
docker run -d --name cerebro -p 9000:9000 lmenezes/cerebro访问 3、elasticsearch-head插件部署
安装依赖
yum install -y nodejs-9.11.2-1nodesource.x86 64.rpmtar xf phantomjs-2.1.1-linux-x86 64.tar.bz2
cd phantomjs-2.1.1-linux-x86 64/
cd bin/
mv phantomjs /usr/local/bin/
phantomjs 安装插件
rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm
unzip elasticsearch-head-master.zip
cd elasticsearch-head-master/
npm install --registryhttps://registry.npm.taobao.org
vim _site/app.js启动服务 npm run start
netstat -antlp|grep :9100修改es配置 vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: *
systemctl restart elasticsearch.service创建索引 查看ES状态 4、elasticsearch集群角色分类 Master主要负责集群中索引的创建、删除以及数据的Rebalance等操作。Master不负责数据的索引和检索所以负载较轻。当Master节点失联或者挂掉的时候ES集群会自动从其他Master节点选举出一个Leader。Data Node主要负责集群中数据的索引和检索一般压力比较大。Coordinating Node原来的Client node的主要功能是来分发请求和合并结果的。所有节点默认就是Coordinating node且不能关闭该属性。Ingest Node•专门对索引的文档做预处理Machine learning node:机器学习节点提供了机器学习功能该节点运行作业并处理机器学习 API 请求. 在生产环境下如果不修改elasticsearch节点的角色信息在高数据量高并发的场景下集群容易出现脑裂等问题。默认情况下elasticsearch集群中每个节点都有成为主节点的资格也都存储数据还可以提供查询服务。节点角色是由以下属性控制以下是默认值node.master: truenode.voting_only: false node.data: truenode.ingest: truenode.ml: truexpack.ml.enabled: truesearch.remote.connect: truenode.master这个属性表示节点是否具有成为主节点的资格 注意此属性的值为true并不意味着这个节点就是主节点。因为真正的主节点是由多个具有主节点资格的节点进行选举产生的。
node.data这个属性表示节点是否存储数据。node.ingest: 是否对文档进行预处理。search.remote.connect是否禁用跨集群查询生产集群中可以对这些节点的职责进行划分建议集群中设置3台以上的节点作为master节点这些节点只负责成为主节点维护整个集群的状态。再根据数据量设置一批data节点这些节点只负责存储数据后期提供建立索引和查询索引的服务这样的话如果用户请求比较频繁这些节点的压力也会比较大。所以在集群中建议再设置一批协调节点这些节点只负责处理用户请求实现请求转发负载均衡等功能。节点需求master节点普通服务器即可(CPU、内存 消耗一般)data节点主要消耗磁盘、内存。path.data: data1,data2,data3
这样的配置可能会导致数据写入不均匀建议只指定一个数据路径磁盘可以使用raid0阵列而不需要成本高的ssd。
Coordinating节点对cpu、memory要求较高。
vim /etc/elasticsearch/elasticsearch.yml
node.master: true
node.data: false
node.ingest: true
node.ml: false
等组合 node.ingest: true 至少一个节点要有 如果重启有错误 这个上面有数据需要清理迁移到其他节点 查看 不同插件查看 二、logstash Logstash是一个开源的服务器端数据处理管道。logstash拥有200多个插件能够同时从多个来源采集数据转换数据然后将数据发送到您最喜欢的 “存储库” 中。大多都是 Elasticsearch。Logstash管道有两个必需的元素输入和输出以及一个可选元素过滤器。 输入采集各种样式、大小和来源的数据Logstash 支持各种输入选择 同时从众多常用来源捕捉事件。能够以连续的流式传输方式轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。 过滤器实时解析和转换数据数据从源传输到存储库的过程中Logstash 过滤器能够解析各个事件识别已命名的字段以构建结构并将它们转换成通用格式以便更轻松、更快速地分析和实现商业价值。 利用 Grok 从非结构化数据中派生出结构 从 IP 地址破译出地理坐标 将 PII 数据匿名化完全排除敏感字段 简化整体处理不受数据源、格式或架构的影响输出选择您的存储库导出您的数据尽管 Elasticsearch 是我们的首选输出方向能够为我们的搜索和分析带来无限可能但它并非唯一选择。Logstash 提供众多输出选择您可以将数据发送到您要指定的地方并且能够灵活地解锁众多下游用例。 1、部署 新建一台虚拟机elk4部署logstash yum install -y jdk-11.0.15_linux-x64_bin.rpm
yum install -y logstash-7.6.1.rpm命令方式 /usr/share/logstash/bin/logstash -e input { stdin { } } output { stdout {} }2、elasticsearch输出插件
cd /etc/logstash/conf.d
vim test.confinput {stdin { }
}output {stdout {}elasticsearch {hosts 192.168.67.31:9200index logstash-%{YYYY.MM.dd}}
}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf3、file输入插件
vim fileput.confinput {file {path /var/log/messagesstart_position beginning}
}output {stdout {}elasticsearch {hosts 192.168.67.31:9200index syslog-%{YYYY.MM.dd}}}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/fileput.conf .sincedb文件保存文件读取进度避免数据冗余读取
cd /usr/share/logstash/data/plugins/inputs/file/ sincedb文件一共6个字段 inode编号文件系统的主要设备号文件系统的次要设备号文件中的当前字节偏移量最后一个活动时间戳浮点数与此记录匹配的最后一个已知路径 删除后重新读取 4、file输出插件
vim file.confinput {stdin { }
}
output {file {path /tmp/logstash.txt codec line { format custom format: %{message}} }
}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf 5、syslog 插件 logstash伪装成日志服务器 vim syslog.confinput {syslog {}
}output {stdout {}elasticsearch {hosts 192.168.67.31:9200index rsyslog-%{YYYY.MM.dd}}}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf 配置客户端日志输出 vim /etc/rsyslog.conf
去掉以下行的注释
$ModLoad imudp
$UDPServerRun 514*.* 192.168.36.34:5146、多行过滤插件
多行过滤可以把多行日志记录合并为一行事件 从elk1拷贝模板文件 cd /var/log/elasticsearchscp my-es.log elk4:/var/log/在elk4上执行 vim multiline.confinput {file {path /var/log/my-es.logstart_position beginningcodec multiline {pattern ^\[negate truewhat previous}}}output {stdout {}elasticsearch {hosts 192.168.67.31:9200index myeslog-%{YYYY.MM.dd}}}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/multiline.conf 7、grok过滤
安装httpd
yum install -y httpd
systemctl enablel --now httpd
echo www.westos.org /var/www/html/index.html访问此站点生成日志信息
ab -c1 -n 300 http://192.168.67.34/index.html 编写文件
vim grok.confinput {file {path /var/log/httpd/access_logstart_position beginning}
}filter {grok {match { message %{HTTPD_COMBINEDLOG} }}
}output {stdout {}elasticsearch {hosts 192.168.67.31:9200index apachelog-%{YYYY.MM.dd}}}/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf 三、kibana数据可视化
Kibana 核心产品搭载了一批经典功能柱状图、线状图、饼图、旭日图等等。将地理数据融入任何地图精选的时序性 UI对您Elasticsearch 中的数据执行高级时间序列分析。利用 Graph 功能分析数据间的关系
1、部署 新建虚拟机elk5部署kibana rpm -ivh kibana-7.6.1-x86_64.rpm 修改配置文件 server.host: 0.0.0.0elasticsearch.hosts: [http://192.168.67.31:9200]i18n.locale: zh-CN启动
systemctl enable --now kibana
netstat -antlp |grep :5601访问 创建索引 2、定制数据可视化
1网站访问量 2访问量排行榜
提前在各个节点 ab -c1 -n 500 http://192.168.67.34/index.html 一下 保存视图 3创建dashboard仪表盘大屏展示 把上面创建的两个可视化添加到仪表板中 四、ES集群监控
1、启用xpack认证 官网https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-tls.html#node-certificates 在elk1上生成证书
cd /usr/share/elasticsearch/
bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
cp elastic-certificates.p12 /etc/elasticsearch
cd /etc/elasticsearch/
chown elasticsearch elastic-certificates.p12修改配置文件
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12拷贝文件到elk23节点
二三节点同理
重启成功
等待所有集群节点重启成功后设置认证账户密码
cd /usr/share/elasticsearch/
bin/elasticsearch-setup-passwords interactiveES启用xpack之后其它服务都需要配置认证 head插件 cd /etc/elasticsearch/
vim elasticsearch.ymlhttp.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type启动
cd elasticsearch-head-master/
npm run start 访问http://192.168.67.101:9100/?auth_userelasticauth_password123456 cerebro访问直接使用账号密码登录 logstash访问在conf文件中加入账号密码 vim /etc/logstash/conf.d/grok.confinput {file {path /var/log/httpd/access_logstart_position beginning}
}filter {grok {match { message %{HTTPD_COMBINEDLOG} }}
}output {stdout {}elasticsearch {hosts 192.168.56.11:9200index apachelog-%{YYYY.MM.dd}user elasticpassword westos}}kibana访问 vim /etc/kibana/kibana.ymlelasticsearch.username: kibana
elasticsearch.password: westossystemctl restart kibana.service2、metricbeat监控
官网https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-metricbeat.html
首先使用内部检测然后进入设置模式
选择启动metricbeat的节点然后根据提示步骤操作
安装软件 修改配置文件添加账号密码
rpm -ivh metricbeat-7.6.1-x86_64.rpm
cd /etc/metricbeat/modules.d
metricbeat modules enable elasticsearch-xpackvim elasticsearch-xpack.yml
cd ..
vim metricbeat.yml
systemctl enable --now metricbeat.service其它节点依次类推Kibana监控 同上安装软件 不同的模块
metricbeat modules enable kibana-xpacksystemctl enable --now metricbeat.service禁用内部检测 vim /etc/kibana/kibana.ymlxpack.monitoring.kibana.collection.enabled: false3、filebeat日志采集 文档https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-elasticsearch.html 安装 rpm -ivh filebeat-7.6.1-x86_64.rpm
cd /etc/filebeat/modules.d
filebeat modules enable elasticsearch 修改配置
vim elasticsearch.yml- module: elasticsearch# Server logserver:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/*.log # Plain text logs- /var/log/elasticsearch/*_server.json # JSON logsgc:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/gc.log.[0-9]*- /var/log/elasticsearch/gc.logaudit:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/*_access.log # Plain text logs- /var/log/elasticsearch/*_audit.json # JSON logsslowlog:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/*_index_search_slowlog.log # Plain text logs- /var/log/elasticsearch/*_index_indexing_slowlog.log # Plain text logs- /var/log/elasticsearch/*_index_search_slowlog.json # JSON logs- /var/log/elasticsearch/*_index_indexing_slowlog.json # JSON logsdeprecation:enabled: true# Set custom paths for the log files. If left empty,# Filebeat will choose the paths depending on your OS.var.paths:- /var/log/elasticsearch/*_deprecation.log # Plain text logs- /var/log/elasticsearch/*_deprecation.json # JSON logscd ..
vim filebeat.yml
systemctl enable --now filebeat.service 23节点