module 官方提供可采集指标的对象: nginx mysql redis 系统 …
metricset 采集这个模块中的那些个具体的指标: CPU 内存 IO 网络
1. Metricbeat组成:
2. Metricbeat监控系统
1.安装metricbeat
[root@web01 ~]# rpm -ivh metricbeat-7.4.0-x86_64.rpm
2.配置metricbeat
[root@web01 ~]# cat /etc/metricbeat/metricbeat.yml
metricbeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
reload.period: 10s
setup.kibana:
host: "10.0.0.161:5601"
output.elasticsearch:
hosts: ["10.0.0.161:9200","10.0.0.162:9200","10.0.0.163:9200"]
3.默认metricbeat启用了system的监控,只需要对system模块采集的对象进行调整即可
列出所有的模块:
[root@web01 ~]# metricbeat modules list
[root@web01 ~]# cat /etc/metricbeat/modules.d/system.yml
# Module: system
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.4/metricbeat-module-system.html
- module: system
period: 10s
metricsets:
- cpu
- load
- memory
- network
- process
- process_summary
- socket_summary
- entropy
- core
- diskio
- socket
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)($|/)'
- module: system
period: 15m
metricsets:
- uptime
#- module: system
# period: 5m
# metricsets:
# - raid
# raid.mount_point: '/'
4.导入metricbeat相关的图形至kibana
[root@web01 ~]# metricbeat setup -e
5.启动metricbeat
[root@web01 ~]# systemctl enable metricbeat
[root@web01 ~]# systemctl restart metricbeat.service
3. Metricbeat监控Nginx状态
1)安装配置Nginx
[root@web01 ~]# yum install nginx -y
[root@web01 conf.d]# cat elk.cheng.conf
server {
listen 80;
server_name elk.cheng.com;
root /code;
location / {
index index.html;
}
location /status {
stub_status;
allow 127.0.0.1;
deny all;
}
}
[root@web01 ~]# systemctl restart nginx
[root@web01 ~]# curl 127.0.0.1/status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
2)启动meticbeat nginx模块
[root@web01 ~]# metricbeat modules enable nginx
3) 配置metriset
[root@web01 ~]# cat /etc/metricbeat/modules.d/nginx.yml
# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.4/metricbeat-module-nginx.html
- module: nginx
metricsets:
- stubstatus
period: 10s
# Nginx hosts
hosts: ["http://127.0.0.1"]
server_status_path: "status"
4) 重启metricbeat
[root@web01 filebeat]# systemctl restart metricbeat
4. Metricbeat监控Redis
1)安装配置Redis
[root@web01 ~]# yum install redis -y
[root@web01 ~]# systemctl restart redis
2)启动meticbeat nginx模块
[root@web01 ~]# metricbeat modules enable redis
3) 配置metriset
[root@web01 ~]# cat /etc/metricbeat/modules.d/redis.yml
# Module: redis
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.4/metricbeat-module-redis.html
- module: redis
metricsets:
- info
- keyspace
period: 10s
# Redis hosts
hosts: ["127.0.0.1:6379"]
# Network type to be used for redis connection. Default: tcp
network: tcp
# Max number of concurrent connections. Default: 10
maxconn: 10
# Redis AUTH password. Empty by default.
#password: foobared
4) 重启metricbeat
[root@web01 filebeat]# systemctl restart metricbeat
5. Metricbeat监控docker容器
1) 安装docker
[root@web01 ~]# yum install docker
[root@web01 ~]# systemctl start docker
2) 导入docker镜像
[root@web01 ~]# docker load -i docker_nginx1.15.tar.gz
3) 批量启动docker容器
for i in {1..10}
do
docker run -d --name "nginx_$RANDOM" nginx
done
4)启用metricbeat docker模块
[root@web01 ~]# metricbeat modules enable docker
5)配置docker metricset
[root@web01 ~]# cat /etc/metricbeat/modules.d/docker.yml
# Module: docker
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.4/metricbeat-module-docker.html
- module: docker
metricsets:
- container
- cpu
- diskio
- event
- healthcheck
- info
- memory
- network
period: 10s
hosts: ["unix:///var/run/docker.sock"]
6)重启metricbeat
[root@web01 ~]# systemctl restart metricbeat