目录
- Metricbeat
- Metricbeat组成
- 下载
- 启动
- Metricbeat Module
- system module配置内容
- Nginx Module
- 开启Nginx Module
- 配置nginx module
- 测试
Metricbeat
- 定期收集操作系统或应用服务的指标数据
- 存储到Elasticsearch中,进行实时分析
Metricbeat组成
Metricbeat有2部分组成
一部分是Module,另一个部分为Metricset
- Module
- 收集的对象:如 MySQL、Redis、Nginx、操作系统等
- Metricset
- 收集指标的集合:如 cpu、memory,network等
以Redis Module为例:
下载
首先我们到官网,找到Metricbeat进行下载
可以直接使用wget
下载
# 移动到该目录下
cd /opt/elk
# 下载文件
wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.8.1-linux-x86_64.tar.gz
# 解压文件
tar -zxvf metricbeat-8.8.1-linux-x86_64.tar.gz
# 修改文件名
mv metricbeat-8.8.1-linux-x86_64 metricbeat
然后修改配置文件
vim metricbeat.yml
添加如下内容
metricbeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 3
index.codec: best_compression
setup.kibana:
output.elasticsearch:
hosts: ["192.168.40.150:9200","192.168.40.138:9200","192.168.40.138:9200"]
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
默认会指定的配置文件,就是在
${path.config}/modules.d/*.yml
也就是 system.yml文件(默认开启)
,我们也可以自行开启其它的收集
启动
在配置完成后,我们通过如下命令启动即可
./metricbeat -e
在ELasticsearch中可以看到,系统的一些指标数据已经写入进去了:
Metricbeat Module
Metricbeat Module的用法和我们之前的filebeat的用法差不多
#查看列表
./metricbeat modules list
能够看到对应的列表
Enabled:
system #默认启用
Disabled:
aerospike
apache
…………
system module配置内容
- module: system
period: 10s # 采集的频率,每10秒采集一次
metricsets: # 采集的指标
- cpu
- load
- memory
- network
- process
- process_summary
Nginx Module
开启Nginx Module
在nginx中,需要开启状态查询,才能查询到指标数据。
#进入到安装nginx的目录,重新编译nginx
[root@elk-node1 nginx-1.23.4]# pwd
/nginx/nginx-1.23.4
[root@elk-node1 nginx-1.23.4]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
# 编译安装
[root@elk-node1 nginx-1.23.4]#
make
make install
[root@elk-node1 sbin]# ./nginx -V #查询版本信息
nginx version: nginx/1.23.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx1 --with-threads --with-http_ssl_module --with-http_stub_status_module --with-stream
[root@elk-node1 conf]# pwd
/usr/local/nginx1/conf
#配置nginx
[root@elk-node1 conf]# vim nginx.conf
location /nginx-status {
stub_status on;
access_log off;
}
[root@elk-node1 nginx1]# ./sbin/nginx -s reload
# 重启nginx
./nginx -s reload
测试
结果说明:
- Active connections:正在处理的活动连接数
- server accepts handled requests
- 第一个 server 表示Nginx启动到现在共处理了10个连接
- 第二个 accepts 表示Nginx启动到现在共成功创建 10 次握手
- 第三个 handled requests 表示总共处理了 28 次请求
- 请求丢失数 = 握手数 - 连接数 ,可以看出目前为止没有丢失请求
- Reading: 0 Writing: 1 Waiting: 0
- Reading:Nginx 读取到客户端的 Header 信息数
- Writing:Nginx 返回给客户端 Header 信息数
- Waiting:Nginx 已经处理完正在等候下一次请求指令的驻留链接(开启keep-alive的情况下,这个值等于 Active - (Reading+Writing))
配置nginx module
#启用nginx module
./metricbeat modules enable nginx
#修改nginx module配置
vim modules.d/nginx.yml
然后修改下面的信息
# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/6.5/metricbeat-modulenginx.
html
- module: nginx
#metricsets:
# - stubstatus
period: 10s
# Nginx hosts
hosts: ["http://192.168.40.150:8080"] # 要配置成8080端口,因为我之前进行了修改
# Path to server status. Default server-status
server_status_path: "nginx-status"
#username: "user"
#password: "secret"
修改完成后,启动nginx
#启动
./metricbeat -e
测试
我们能看到,我们的nginx数据已经成功的采集到我们的系统中了
可以看到,nginx的指标数据已经写入到了Elasticsearch。
更多的Module使用参见官方文档:在这里