ES+Kibana+Packetbeat使用总结
简介
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎。Kibanna是针对ElasticSearch一个界面UI。Packetbeat是监控网络数据包一个工具,分布式wireshark。
Packetbeat 是一个实时的网络数据包分析器,通过结合ES可以构建一个应用监控和性能分析系统。Packetbeat 可以将监控数据发送到es,或者redis,logstash中。目前支持以下协议:
- ICMP (v4 and v6)
- DNS
- HTTP
- Mysql
- PostgreSQL
- Redis
- Thrift-RPC
- MongoDB
- Memcache
搭建
搭建Es
- 下载
1
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.4/elasticsearch-2.3.4.tar.gz
- 解压
1
tar -xvf elasticsearch-2.3.4.tar.gz
- 配置 ES
默认配置即可正常使用,但配置config/elasticsearch.yml使用效果更好。
配置如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32cluster.name: my-application
node.name: node-1
node.master: true
node.data: true
path.logs: /data/truman/elasticsearch-2.3.4/logs
bootstrap.mlockall: true
network.host: 192.168.1.42
http.port: 9200
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["192.168.1.42"]
discovery.zen.fd.ping_interval: 1s
discovery.zen.fd.ping_timeout: 30s
discovery.zen.fd.ping_retries: 5
action.auto_create_index: true
action.disable_delete_all_indices: true
indices.memory.index_buffer_size: 30%
indices.memory.min_shard_index_buffer_size: 12mb
indices.memory.min_index_buffer_size: 96mb
action.write_consistency: one
index.number_of_shards: 3
index.number_of_replicas: 1
threadpool:
bulk:
type: fixed
queue_size: 300
index.translog.flush_threshold_period: 10m - 启动
在使用root账户启动脚本可能会报错,在次修改一下elasticsearch启动脚本,增加以下内容:然后后台启动脚本1
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
访问 http://192.168.1.42:9200/即可查看是否启动成功。1
nohup bin/elasticsearch &
- 安装head plugin
head 插件能够可视化操作index与数据,在http://192.168.1.42:9200/_plugin/head/上进行操作
安装
1 | bin/plugin install mobz/elasticsearch-head |
移除
1 | bin/plugin remove head |
安装kibana
- 下载
1
wget https://download.elastic.co/kibana/kibana/kibana-4.5.2-linux-x64.tar.gz
- 启动在浏览器中访问http://192.168.1.42:5601查看是否成功。
1
2
3tar -xvf kibana-4.5.2-linux-x64.tar.gz
cd kibana-4.5.2-linux-x64
bin/kibana
安装Packetbeat
- 下载
1
wget https://download.elastic.co/beats/packetbeat/packetbeat-1.2.3-x86_64.tar.gz
- 解压
1
tar -xvf packetbeat-1.2.3-x86_64.tar.gz
- 配置 Packetbeat
修改es输出即可,默认是localhost,将该内容修改为es所在的主机ip,即可使用默认配置运行了。修改完成后,可以通过以下命令检验修改配置是否正确(该shell需要root权限)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15output:
### Elasticsearch as output
elasticsearch:
# Array of hosts to connect to.
hosts: ["192.168.1.42:9200"]
template:
# Template name. By default the template name is packetbeat.
#name: "packetbeat"
# Path to template file
path: "packetbeat.template.json"
# Overwrite existing template
#overwrite: false1
sudo ./packetbeat -configtest -e
- 加载索引模板(index template)到es
- 加载加载成功后,访问以下网址,看packetbeat索引模板是否加上。
1
curl -XPUT 'http://192.168.1.42:9200/_template/packetbeat' -d@/etc/packetbeat/packetbeat.template.json
1
http://192.168.1.42:9200/_template/packetbeat
- 删除模板文件
1
curl -XDELETE 'http://192.168.1.42:9200/_template/packetbeat'
- 启动
1
sudo nohup ./packetbeat &
- 测试
模拟简单http请求查询数据1
curl http://www.aibibang.com > /dev/null
查询出数据,即可证明安装成功!1
curl -XGET 'http://192.168.1.42:9200/packetbeat-*/_search?pretty'
经验总结
- 索引未创建成功
在搭建过程中,可能由于索引模板配置错误,导致索引未创建成功。但还存在一种情况,即没有数据采集进去。采集到数据以后才会根据索引模板创建索引
2. thrift 监控配置
目前对thrift监控仅支持binary协议,详细配置如下
1 | thrift: |
- 修改采集字段
使用过程中,希望采集自定义字段,当前版本未发现。但在最新版本5.0.0-alpha4中可通过修改yml配置文件删除掉不需要采集的字段。
在5.0.0-alpha4中配置如下:其实老的版本在index template中也是可以设置的。通过设置_source,例如:1
2
3filters:
- drop_fields:
fields: ["request", "query","server","proc","client_server"]1
2
3
4
5
6
7
8
9
10
11"_source": {
"excludes": [
"request",
"query",
"server",
"proc",
"params",
"beat.hostname",
"client_server"
]
},