以下操作在CENTOS7环境。

使用prometheus做监控,使用grafana做dashboard的界面展示:

因prometheus自带的监控web界面图形化展示方面比较弱,推荐使用grafana集成prometheus展示;

一、软件安装

1)granafa的安装:

官方安装指南:https://grafana.com/grafana/download?platform=linux
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.2-1.x86_64.rpm 
sudo yum localinstall grafana-5.2.2-1.x86_64.rpm

service grafana-server start

2)prometheus的安装:

官方下载地址:https://prometheus.io/download/

安装prometheus主程序

wget https://github.com/prometheus/prometheus/releases/download/v2.3.2/prometheus-2.3.2.linux-amd64.tar.gz

tar -zxvf prometheus-2.3.2.linux-amd64.tar.gz -C /usr/local/prometheus

cd /usr/local/prometheus

nohup ./prometheus >/dev/null &

安装 prometheus的告警程序

wget https://github.com/prometheus/alertmanager/releases/download/v0.15.2/alertmanager-0.15.2.linux-amd64.tar.gz

tar -zxvf alertmanager-0.15.2.linux-amd64.tar.gz -C /usr/local/prometheus

cd /usr/local/prometheus

nohup ./alertmanager >/dev/null &

3)需在各监控节点安装prometheus的node程序;

wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz

tar -zxvf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/prometheus

cd /usr/local/prometheus

nohup ./node_exporter >/dev/null &

二、安装exporter

prometheus可以理解为一个数据库+数据抓取工具,工具从各处抓来统一的数据,放入prometheus这一个时间序列数据库中。那如何保证各处的数据格式是统一的呢?就是通过这个exporter。exporter也是用GO写的程序,它开放一个http接口,对外提供格式化的数据。所以在不同的环境下,需要编写不同的exporter。好在已经有很多写好的exporter,我们可以直接使用,(本句是一句废话为了更好的排版显示)(https://github.com/prometheus这里可以找到很多exporter)我们这里直接使用mysqld_exporter(prometheus.io/download/#mysqld_exporter)。当然也要下载对应系统的版本。

2.1、mysql

解压后的内容如下:

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz
tar -zxvf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/prometheus

这里的mysqld_exporter是启动文件,.my.cnf是配置文件。想要正确的导出mysql的状态数据,必须在配置文件中正确的配置mysql的连接信息。我的配置如下:

配置.my.cnf文件

[client]
host = 127.0.0.1
user = REPL
password = Pbu4@123
socket = /mysqldata/data/mysqld.sock
[mysqladmin]
host = 127.0.0.1
user = zabbix
password = Zabbix@123
socket = /mysqldata/data/mysqld.sock

nohup ./mysqld_exporter --config.my-cnf=/etc/zabbix/.my.cnf --collect.binlog_size --collect.info_schema.processlist --collect.info_schema.innodb_metrics --collect.engine_innodb_status --collect.perf_schema.file_events --collect.perf_schema.eventswaits --collect.perf_schema.indexiowaits --collect.perf_schema.tableiowaits --collect.info_schema.tables --collect.info_schema.tablestats --collect.auto_increment.columns --collect.info_schema.userstats --collect.info_schema.innodb_cmp --collect.info_schema.innodb_cmpmem --collect.perf_schema.replication_group_member_stats >/dev/null &

可到grafana下载percona APP dashboard.

配置好了,就可以启动了。成功如下所示:

通过localhost:9104,就可以看到exporter导出的数据了:

在Prometheus中配置mysqld_exporter

exporter启动了,需要在Prometheus中正确的配置。修改prometheus目录中的prometheus.yml,增加配置如下:

重启prometheus,点击导航栏中的status->targets可以看到,mysql的exporter已经集成进来了。 如下图:

至此,prometheus这边监控mysql的环境搭建基本完成了。

2.2、mongodb的插件安装:

wget https://github.com/dcu/mongodb_exporter/releases/download/v1.0.0/mongodb_exporter-linux-amd64

tar -zxvf mongodb_exporter-linux-amd64 -C /usr/local/prometheus

cd /usr/local/prometheus

mongod配置副本集启动

./mongodb_exporter -mongodb.uri mongodb://192.168.152.128:27017,192.168.152.128:27018,192.168.152.128:27019

mongodb配置单机启动

/mongodb_exporter -mongodb.uri mongodb://192.168.152.128:27017

2.3、redis的插件安装:

redis 在redis服务器安装node_exporter和redis_exporter。

wget https://github.com/oliver006/redis_exporter/releases/download/v0.10.8/redis_exporter-v0.10.8.linux-amd64.tar.gz

wget https://github.com/prometheus/node_exporter/releases/download/0.13.0/node_exporter-0.13.0.linux-amd64.tar.gz

tar -zxvf node_exporter-0.13.0.linux-amd64.tar.gz -C /opt/prometheus_exporters --strip-components=1
tar -zxvf redis_exporter-v0.10.8.linux-amd64.tar.gz -C /opt/prometheus_exporters --strip-components=1
启动
nohup /opt/prometheus_exporters/node_exporter &
nohup /opt/prometheus_exporters/redis_exporter redis//192.168.0.17:6379 & 配置prometheus.yml 加入
- job_name: redis_exporter
static_configs:
- targets: ['192.168.0.17:9121']

下载grafana的redis的prometheus-redis_rev1.json模板

wget  https://grafana.com/api/dashboards/763/revisions/1/download

在grafana中导入json模板

2.4、nginx的插件安装:

下载源码nginx,再下载nginx-module-vts moudle进行编译安装。

git clone git://github.com/vozlt/nginx-module-vts.git

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_sysguard_module --with-stream --add-module=nginx-module-vts

make &&make install

更改Nginx Conf的配置,添加监控接口/status/:

http {
vhost_traffic_status_zone;
    vhost_traffic_status_filter_by_host on;

...

server {

...

location /status {
        vhost_traffic_status_display;
        vhost_traffic_status_display_format html;
    }
}
}

2.5、jmx的插件安装:

注意只对Oracle原生的jdk的相关指标可监控,openjdk的只能监控部分指标。

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar

tar -zxvf jmx_prometheus_javaagent-0.3.1.jar

配置config.yml文件

---
startDelaySeconds: 0
hostPort: localhost:58888 #master为本机IP(一般可设置为localhost);1234为想设置的jmx端口(可设置为未被占用的端口)
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
启动jar

java -Djava.security.egd=file:/dev/./urandom -javaagent:/var/lib/prometheus/jmx_prometheus_javaagent-0.3.1.jar=9157:/etc/prometheus/config.yml -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=58888 -Djava.rmi.server.hostname=localhost -jar /app.jar

三、最后在安装后的granfa里,配置prometheus 源,再到granfa里下载相关的dashboard进行配置。

使有prometheus监控redis,mongodb,nginx,mysql,jmx的更多相关文章

  1. Prometheus监控 Redis & Redis Cluster 说明

    说明 在前面的Prometheus + Grafana 部署说明之「安装」文章里,大致介绍说明了Prometheus和Grafana的一些安装使用,现在开始如何始部署Prometheus+Grafan ...

  2. 二 prometheus 监控 Redis

    Prometheus 监控Redis需要用到redis_exporter客户端, Prometheus -> redis_exporter这个模式, 类似监控Mysql 一个思路. 1 ) 设置 ...

  3. prometheus监控redis,redis-cluster

    Prometheus监控redis使用的是redis_exporter, 作者GitHub: https://github.com/oliver006/redis_exporter 需要说明的是: r ...

  4. Prometheus 监控 Redis 集群的正确姿势

    Prometheus 监控Redis的正确姿势(redis集群) Prometheus 监控 Redis cluster,其实套路都是一样的,使用 exporter. exporter 负责采集指标, ...

  5. linux+node.js+redis+mongodb+nginx环境的搭建

    1.推荐购买阿里云服务器,使用Centos7.0的服务器版本,在创建完全系统并进入之后,第一步是更新服务器的相关组件    yum -y install gcc gcc-c++ openssl-dev ...

  6. supervisor 监控redis & mongodb

    安装 安装python brew install python 安装pipwget https://bootstrap.pypa.io/get-pip.pysudo python get-pip.py ...

  7. prometheus监控redis

    下载redis_exporter插件 代理插件不一定非要安装在redis端 wget https://github.com/oliver006/redis_exporter/releases/down ...

  8. prometheus 监控 redis + rabbitmq

    1.安装部署 1.1 wget https://github.com/oliver006/redis_exporter/releases/download/v0.15.0/redis_exporter ...

  9. prometheus 监控的目标 - nginx - apache

    1.jvm类型 8563的grafanadashboard: gc时间,使用的现场,加载的类数 2.apache , nginx 用户连接状态,waiting数量 (使用nginx_status) c ...

随机推荐

  1. python 爬虫&爬取豆瓣电影top250

    爬取豆瓣电影top250from urllib.request import * #导入所有的request,urllib相当于一个文件夹,用到它里面的方法requestfrom lxml impor ...

  2. Django框架(三)

    六.Django的视图层 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML ...

  3. Android设备终端监控可能用到的工具

    先记录工具,以后详细分析 add-property-tagcheck-lost+foundcpueatercpustatsdaemonizedexdumpdirectiotestfiokexecloa ...

  4. ID基本操作(复制页面)(移动页面)(调整跨页页数)(版面调整)5.16

    1.在页面面板中选择要复制的页面.拖动到新建页面图标上就可以新建页面. 2.在页面面板中选择要复制的页面.点击右上角的下箭头选择直接复制跨页. 3.在页面面板中选择要移动的页面.用鼠标拖到要移动的地方 ...

  5. Vertical-align + 表单

    Vertical-align 垂直对齐方式 定义行内元素的基线相对于该元素所在的基线的垂直对齐. inline inline-clock img图片标签具有,块级元素没有. vertical-alig ...

  6. Mysql服务配置优化

    mysql服务器优化包含 硬件优化.操作系统配置优化(cpu调度.网络.内存.虚拟内存.磁盘io).Mysql服务配置优化(最大连接数.表缓存等.存储引擎).表结构优化.索引优化 总共5个方面. 本片 ...

  7. python_6

    set 集合 {} 无序 s = {1,2,3,4,5} s = {}print(type(s)) # 空{}就是字典 s = {1,2,3,4,5}s = {1,2,3,'22','ss',Fals ...

  8. mysql中describe关键字

    今天写代码的时候,有一个类的数据始终不能插入,老是提示在You have an error in your SQL syntax; check the manual that corresponds ...

  9. linux 内存使用情况详解

    一:首先是先登录 二:查看当前目录 命令:df -h 三:查看具体文件夹占用情况 命令:du --max-depth=1 -h  /data/ 或者:为了快算显示,同时也只是想查看目录整体占用大小 命 ...

  10. php 调用天气接口

    前几天没事的时候,浏览博客看到了一篇免费天气接口的文章,然后调用了一下文章中提到的接口,自己琢磨了半天,把数据处理了一下,虽然现在用不到,但是说不定以后会用,所以打算记录一下,毕竟这也算是自己第一次在 ...