Grafana的安装和读取ES数据 模拟es数据产生sjgtest.py 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创建sjg索引查看 Grafana安装 yum localinstall grafana-6.7.2-1.x86_64.rpm -y 启动Grafana systemctl restart grafana-server 访问:端口是3000,默认是admin/admin,密码需要更改 汉化https://github.com/tghfly/grafana-chinese Grafana添加数据源sjges url: http://192.168.238.90:9200 选择基础认证 索引和时间配置 最简单的count图创建
启动Grafana systemctl restart grafana-server 访问:端口是3000,默认是admin/admin,密码需要更改 汉化https://github.com/tghfly/grafana-chinese Grafana添加数据源sjges url: http://192.168.238.90:9200 选择基础认证 索引和时间配置
添加数据源
最简单的count图创建
添加绘制饼图工具:
psutil工具安装 yum install gcc python3-devel -y pip3 install psutil==5.7.0 -i https://mirrors.aliyun.com/pypi/simple/
Grafana多维度展示Nginx日志分析-线图 logstash配置 input { beats { host => '0.0.0.0' port => 5044 } } filter { json { source => "message" remove_field => ["message"] } } output { elasticsearch { hosts => ["http://192.168.238.90:9200", "http://192.168.238.92:9200"] user => "elastic" password => "sjgpwd" index => "sjgjson-%{+YYYY.MM.dd}" } } filebeat配置 filebeat.inputs: - type: log tail_files: true backoff: "1s" paths: - /var/log/nginx/access.json.log processors: - drop_fields: fields: ["agent","ecs","log","input"] output: logstash: hosts: ["192.168.238.90:5044"] 数据模拟 while true;do curl 172.17.166.172/sjg666; curl 172.17.166.172/sjg; curl 127.0.0.1; sleep 5; done while true;do curl 172.17.166.172/sjg666; curl 172.17.166.172/sjg; curl 39.106.69.56; sleep 5; done
Grafana展现-线图
- 每分钟日志量展现Kibana上有
- IP分布查看term remove_addr_keyword
- 状态码分布查看
- 请求分布查看
每分钟日志量展现
IP分布查看term remove_addr_keywor 可选单位 排序方式 展现方式等 以addr进行分组
状态码分布查看
##饼图可选显示样式
请求分布查看
Grafana多维度展示metricbeat采集信息
metricbeat采集系统信息
cpu load
##以hostname分组,显示load1,load5,load15 展示信息输出hostname及field(采集的值的type)
cpu 负载
#选择百分比单位
磁盘使用率
内存使用率
流量情况
#采集为1分钟总带宽值单位bit,所以要/60等于每秒平均带宽*8字节等于1kb。第二次采集到的值为总值的平均值所以要去减去前一次的平均值。展示的为前一次总消耗量的平均值与后一次总平均量的差值。
nginx每秒访问平均值
nginx与采集流量类似 都是总的值/60 后一次与前一次结果平均的差为当前nginx访问平均值