ELK集群之metricbeat(9)
Metricbeat包的安装及简单使用
Metricbeat包的安装及简单使用
系统数据采集
Python -> ES -> Grafana metricbeat的安装
metricbeat -> logstash -> ES -> Grafana系统监控
Metricbeat解决的问题:手动写Python比较麻烦
yum localinstall metricbeat-7.6.2-x86_64.rpm -y


metric默认配置说明
/etc/metricbeat/metricbeat.yml
/etc/metricbeat/modules.d/*.yml metric配置/etc/metricbeat/metricbeat.yml
metricbeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
index.codec: best_compression
setup.kibana:
output.logstash:
hosts: ["192.168.238.90:5044"]
metricbeat输出到logstash


metricbeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
index.codec: best_compression
setup.kibana:
output.kafka:
hosts: ["172.17.166.217:9092", "172.17.166.218:9092", "172.17.166.219:9092"] topic: 'test2'
partition.round_robin:
reachable_only: false required_acks: 1
compression: gzip
max_message_bytes: 1000000
metricbeat输出到kafka
metricbeat采集系统配置


# Module: system
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.6/metricbeat-module-system.html
- module: system
period: 60s
metricsets:
- network
interfaces:
- eth0 - module: system
period: 10s
metricsets:
- cpu
- load
- memory
#- network
#- process
#- process_summary
#- socket_summary
#- entropy
#- core
#- diskio
#- socket
#- service
#process.include_top_n:
# by_cpu: 5 # include top 5 processes by CPU
# by_memory: 5 # include top 5 processes by memory - module: system
period: 1m
metricsets:
- filesystem
# - fsstat
processors:
- drop_event.when.regexp:
system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib)($|/)' #q
#- module: system
# period: 15m
# metricsets:
# - uptime #- module: system
# period: 5m
# metricsets:
# - raid
# raid.mount_point: '/'
system.yml
Metricbeat收集cpu内存等信息Grafana展示
Kibana上先清空之前的索引信息 load展示
metric: avg system.load.1
metric: avg system.load.5
metric: avg system.load.15
groupby: host.name.keyword alias: {{host.name.keyword}} {{metric}} {{field}}
interval: 1m cpu展示,如果显示异常,清空索引后再观察下
cpu.idle.pct
cpu.system.pct
cpu.user.pct
cpu.iowait.pct 磁盘使用率
system.filesystem.used.pct 内存使用率的展现
system.memory.actual.used.pct Metricbeat收集流量信息Grafana展示
需要配置单独收集某个网卡的流量/etc/metricbeat/modules.d/system.yml
- module: system
period: 60s
metricsets:
- network
interfaces:
- eth0 Grafana配置流量信息1m=60s 1Byte=8bit
avg(system.network.in.bytes) _value/60*8
Derivative(avg(system.network.in.bytes)) alias {{host.name.keyword}} in traffic
alias {{host.name.keyword}} out traffic
metricbeat modules enable nginx #开启模块


多台metricbeat安装-多台服务器采集
metricbeat安装
yum localinstall metricbeat-7.6.2-x86_64.rpm -y metric配置/etc/metricbeat/metricbeat.yml
拷贝之前一台服务器的 metricbeat配置/etc/metricbeat/modules.d/system.yml
拷贝之前一台服务器的 启动查看grafana
systemctl restart metricbeat Metricbeat采集Nginx信息Grafana展示
Nginx编译需要加以下选项
--with-http_stub_status_module Nginx配置新增
location /sjgstatus {
stub_status on;
access_log off;
allow 192.168.0.0/16;
deny all;
} Metricbeat支持nginx
metricbeat modules enable nginx 测试能否获取数据
curl xxx/sjgstatus Grafana配置nginx请求情况
avg(requests) _value / 60
Derivative
term by : service.address.keyword
alias: {{service.address.keyword}} accept persecond 模拟数据
while true; do curl 192.168.238.90; curl 192.168.238.90/test; sleep 1; done Metricbeat采集多台Nginx数据
安装Nginx,跟之前一样的配置 Metric新增一台Nginx监控
hosts: ["http://xxx","http://xxx"] 一台Metricbeat就能监控能通的Nginx
metricbeat开启nginx监测模块
Metricbeat采集Redis信息Grafana展示


安装redis
yum install redis -y 配置redis
设置绑定地址:0.0.0.0
设置密码:sjgpwd Metricbeat支持redis
metricbeat modules enable redis 监控redis每秒连接数
received persecond _value / 60
Derivative
grouby: service.address
alias: {{service.address.keyword}} received persecond 模拟数据
while true; do redis-cli -a sjgpwd set a b; redis-cli -a sjgpwd get a; sleep 1; done metricbeat还支持收集很多模块,见以下目录
/etc/metricbeat/modules.d/
redis
Metricbeat采集Mysql监控数据


Metricbeat采集Mysql监控数据
安装mysql服务器准备
yum install mariadb-server -y
systemctl restart mariadb
mysql_secure_installation 监控权限开启
grant usage on *.* to 'monitor'@'192.168.%' identified by 'sjgpwd';
flush privileges; 测试能否正常登录
mysql -h 192.168.238.92 -umonitor -psjgpwd -A 开启监控mysql模块
metricbeat modules enable mysql 配置mysql监控
hosts: ["monitor:sjgpwd@tcp(xxx:3306)/"] 监控mysql delete persecond
delete persecond _value / 60
Derivative
grouby: service.address
alias: {{service.address.keyword}} delete persecond 模拟数据,观察grafana
use mysql;
create table test (id int);
mysql -psjgpwd -A -e "use mysql; delete from test"
mysql
Metricbeat根据不同类型定义不同索引


metricbeat采集
metricbeat modules enable system
metricbeat modules enable redis
metricbeat modules enable nginx
metricbeat modules enable mysql Logstash区分system还是redis 还是其它
output {
if [service][type] == "mysql" {
elasticsearch {
hosts => ["http://192.168.238.90:9200", "http://192.168.238.92:9200"]
user => "elastic"
password => "sjgpwd"
index => "sjgmysql-%{+YYYY.MM.dd}"
}
}
else if [service][type] == "redis" {
elasticsearch {
hosts => ["http://192.168.238.90:9200", "http://192.168.238.92:9200"]
user => "elastic"
password => "sjgpwd"
index => "sjgredis-%{+YYYY.MM.dd}"
}
}
else {
elasticsearch {
hosts => ["http://192.168.238.90:9200", "http://192.168.238.92:9200"]
user => "elastic"
password => "sjgpwd"
index => "sjgother-%{+YYYY.MM.dd}"
}
}
}
logstash配置
Kibana页面上ES索引监控的开启


Kibana监控的开启
开启kibana监控
使用metricbeat 启动metricbeat
metricbeat modules enable elasticsearch-xpack
metricbeat modules disable 所有 配置文件elasticsearch-xpack.yml
- module: elasticsearch
metricsets:
- ccr
- cluster_stats
- enrich
- index
- index_recovery
- index_summary
- ml_job
- node_stats
- shard
period: 10s
hosts: ["http://192.168.238.90:9200", "http://192.168.238.92:9200"]
username: "elastic"
password: "sjgpwd"
xpack.enabled: true metricbeat配置:/etc/metricbeat/metricbeat.yml
metricbeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
index.codec: best_compression
setup.kibana: output.elasticsearch:
hosts: ["192.168.238.90:9200", "192.168.238.92:9200"]
username: "elastic"
password: "sjgpwd" Python测试监控是否正常
import time
import datetime
from elasticsearch import Elasticsearch
es = Elasticsearch(['http://elastic:sjgpwd@192.168.238.90:9200', 'http://elastic:sjgpwd@192.168.238.92:9200'])
for i in range(10000):
curtime=datetime.datetime.utcnow().isoformat()
body = {"name": "sjg{0}".format(i), "@timestamp": curtime, "sjgcount": i}
es.index(index='sjg', body=body)
time.sleep(1)
print('insert {0}'.format(i))
kibana监测es
ELK集群之metricbeat(9)的更多相关文章
- Centos7中ELK集群安装流程
Centos7中ELK集群安装流程 说明:三个版本必须相同,这里安装5.1版. 一.安装Elasticsearch5.1 hostnamectl set-hostname elk vim /e ...
- ansible playbook部署ELK集群系统
一.介绍 总共4台机器,分别为 192.168.1.99 192.168.1.100 192.168.1.210 192.168.1.211 服务所在机器为: redis:192.168.1.211 ...
- Kibana安装(图文详解)(多节点的ELK集群安装在一个节点就好)
对于Kibana ,我们知道,是Elasticsearch/Logstash/Kibana的必不可少成员. 前提: Elasticsearch-2.4.3的下载(图文详解) Elasticsearch ...
- elk集群配置配置文件中节点数配多少
配置elk集群时,遇到,elasticsearch配置文件中的一个配置discovery.zen.minimum_master_nodes: 2.这里是三配的2 看到某一位的解释是这样:为了避免脑裂, ...
- Filebeat-1.3.1安装和设置(图文详解)(多节点的ELK集群安装在一个节点就好)(以Console Output为例)
前期博客 Filebeat的下载(图文讲解) 前提 Elasticsearch-2.4.3的下载(图文详解) Elasticsearch-2.4.3的单节点安装(多种方式图文详解) Elasticse ...
- 通过docker搭建ELK集群
单机ELK,另外两台服务器分别有一个elasticsearch节点,这样形成一个3节点的ES集群. 可以先尝试单独搭建es集群或单机ELK https://www.cnblogs.com/lz0925 ...
- ELK集群搭建
基于5台虚拟机,搭建ELK集群. 方案: 1. ELK是日志分析平台,而不是一款软件,是一整套解决方案,是三个软件产品的首字母缩写,ELK分别代表: Elasticsearch:负责日志检索和储存 L ...
- 搭建ELK 集群 rpm安装
上次是使用docker搭建的ELK,三个软件都跑在一台机器的一个docker中,这个就当是测试环境吧. 下面开始搭建正式环境下的ELK集群. 三台服务器 A:logstash B:Elasticsea ...
- ELK集群部署实例(转)
转载自:http://blog.51cto.com/ckl893/1772287,感谢原博. 一.ELK说明 二.架构图 三.规划说明 四.安装部署nginx+logstash 五.安装部署redis ...
随机推荐
- Shell系列(31)- 双分支if语句简介
双分支if条件语句 if [ 条件判断式 ] then 条件成立,执行的程序 else 条件不成立,执行的程序 fi 需求 根据用户输入的目录名,判断是否存在 脚本: #!/bin/bash #使用r ...
- Shell系列(10)- bash环境变量(3)
环境变量与用户自定义变量的区别 环境变量是全局变量,用户自定义变量是局部变量. 用户自定义变量只在当前的 shell 中生效,环境变量在当前 shell 和这个 shell 的所有子 shell 中生 ...
- Promise源码实现与测试
const PENDING = 'pending', FULFILLED = 'fulfilled', REJECTED = 'rejected' class MyPromise { construc ...
- 查看Docker启动jenkins的管理员密码
Docker启动docker后,第一次方法jenkins,需要输入管理员密码. 其实查看启动时候的日志可以看到密码,也可以按照以下方法找到密码. 1.查看docker容器ID:docker ps -a ...
- PHP 处理历史数据的伪代码
<?php class a { protected static $Senior = [1, 2, 3]; protected static $NoSenior = [13, 14, 15, 1 ...
- django 模版-标签-视图-csrf-token-模版继承-HTML过滤器
""" ******模版****** --定义模版-- **变量** 视图传递给模版的数据 注意1:要遵守标识符规则 语法:{{var(即变量)}} 如果使用的变量不存在 ...
- 鸿蒙内核源码分析(索引节点篇) | 谁是文件系统最重要的概念 | 百篇博客分析OpenHarmony源码 | v64.01
百篇博客系列篇.本篇为: v64.xx 鸿蒙内核源码分析(索引节点篇) | 谁是文件系统最重要的概念 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么 ...
- P7470-[NOI Online 2021 提高组]岛屿探险【Trie,CDQ分治】
正题 题目链接:https://www.luogu.com.cn/problem/P7470 题目大意 给出\(n\)个二元组\((a,b)\). \(q\)次询问给出\((l,r,c,d)\)表示询 ...
- Python下载课件
from urllib.request import urlretrieve # #下载网络文件到本地 import os os.chdir("C:/Users/RankFan/Deskto ...
- MD5加密算法的实现方式
MD5加密算法 MD5在我们平时项目中运用比较多,尤其是在用户注册的时候,密码存入数据库时可以利用MD5算法加密后存入,可以保证数据的安全性. 代码实现 public final class Md5U ...