prometheus安装

下载安装

#官网下载 解压即可使用
https://prometheus.io/download/
#docker 方式安装
sudo docker run -n prometheus -d -p 9090:9090 prom/prometheus

配置文件

 /etc/prometheus/prometheus.yml 或 可执行文件当前目录下/prometheus.yml

完整配置文件

  scheme: http
static_configs:
- targets:
- localhost:9090
- job_name: node1_self
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- 192.168.3.103:9100
- job_name: mysql
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: http
static_configs:
- targets:
- 192.168.3.103:9104
labels:
instance: db1
- job_name: nginx
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /status/format/prometheus
scheme: http
static_configs:
- targets:
- 192.168.3.139:80
labels:
instance: web1
basic_auth:
username: UserName
password: PassWord

重启服务

重启服务或发信号重新加载配置

killall -HUP prometheus

官方exports 大全

https://prometheus.io/docs/instrumenting/exporters/

Linux服务器配置

下载安装node_exporter (下载解压即可使用)

https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

./node_exporter

测试node_exporter

curl http://localhost:9100/metrics

mysql的exporter下载和配置

可以在mysql机器上安装也可以在别的机器上安装

`. 老样子下载解压

https://github.com/prometheus/mysqld_exporter/releases

2. 要配置一下被监控的mysql账户信息

最好单独配置权限

为 mysqld_exporter 创建一个单独的用户

并赋予它受限的权限(PROCESS、REPLICATION CLIENT、SELECT)

最好还限制它的最大连接数(MAX_USER_CONNECTIONS)

CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'password' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';

$ cat .my.cnf

[client]
host=localhost
port=3306
user=root
password=123456
  1. 运行mysqld_exporter

    `./mysqld_exporter --config.my-cnf=".my.cnf"

  2. 在 prometheus服务端的配置文件prometheus.yml中找到 scrape_config子项 添加一个 job

    如:

  - job_name: mysql
static_configs:
- targets: ['192.168.1.7:9104']
labels:
instance: db1
  1. 发送 重载配置文件信号

    killall -SIGHUP prometheus
  2. 到prometheus 网页中 导航栏->status->target 查看刚才添加的是否成功!

nginx exporter 安装和配置

好多方式都可以.lua脚本,openresty 等

我们选择 编译nginx的nginx-module-vts 这就意味着我们要自己手动编译了.

  1. 下载nginx源码后解压.

    wget https://github.com/nginx/nginx/releases/tag/release-1.17.1

    tar -xvf nginx-release-1.17.1.tar.gz

    cd nginx-release-1.17.1
  2. 下载或克隆nginx-module-vts 模块 https://github.com/vozlt/nginx-module-vts
  3. 编译安装nginx

    安装依赖(centos)
  • openssl-devel
  • pcre-devel
  • gcc

./auto/configure --add-module=/home/pi/nginx-module-vts --with-http_ssl_module --with-debug

干掉nginx

make -j4 使用4个线程编译.树莓派有四个线程

make install 安装nginx默认

4.配置nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

user root;
#user nobody;
worker_processes 2; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream;
vhost_traffic_status_zone;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65; #gzip on; server {
listen 80;
server_name localhost; #charset koi8-r;
charset utf-8;
#access_log logs/host.access.log main; location / {
root html;
auth_basic "needAuth";
auth_basic_user_file /usr/local/nginx/conf/passwd.db;
}
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
#error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} } }

配置http密码

apt install apache2-utils -y

htpasswd -c /usr/local/nginx/conf/passwd.db UserName

启动nginx

先看下模块有没编译进来

cd /usr/local/nginx/
/usr/local/nginx/sbin/nginx -V |grep nginx-module-vts

能看到信息就代表模块编译成功.

4. 运行nginx

/usr/local/nginx/sbin/nginx

4.1 查看nginx机器的ip

ip a

5. 在prometheus中增加一个监控nginx的任务

添加配置内容在配置文件 prometheus.yml 注意因为我们nginx配置了验证,所以在prometheus中也要添加验证.要不没有办法支持访问

- job_name: nginx
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /status/format/prometheus
scheme: http
static_configs:
- targets:
- 192.168.3.139:80
labels:
instance: web1
basic_auth:
username: UserName
password: PassWord
  1. 发送 重载配置文件信号

    killall -SIGHUP prometheus
  2. 到prometheus 网页中 导航栏->status->target 查看刚才添加的是否成功!

之后可以使用配合Grafana可以愉快玩耍了.

prometheus简单监控Linux,mysql,nginx的更多相关文章

  1. Grafana+Prometheus系统监控之MySql

    架构 grafana和prometheus之前安装配置过,见:Grafana+Prometheus打造全方位立体监控系统 MySql安装 MySql的地位和重要性就不言而喻了,作为开源产品深受广大中小 ...

  2. prometheus+grafana监控Linux和kubernetes的例子

    1.安装和配置prometheus tar zxvf prometheus-.linux-amd64.tar.gz -C /usr/local/ ln -sv /usr/local/prometheu ...

  3. 服务器搭建纪录linux+mysql+nginx+php

    新的项目启动 第一版 首先买了阿里云,选好环境镜像包,一键安装. 第一版php打算不用框架,完全手写,主要的功能点 数据交互和图片传输. 后台搭建好后,使用PHP的Laravel, web端还是选定b ...

  4. Prometheus + Grafana 监控系统搭

    本文主要介绍基于Prometheus + Grafana 监控Linux服务器. 一.Prometheus 概述(略) 与其他监控系统对比 1 Prometheus vs. Zabbix Zabbix ...

  5. Grafana Prometheus系统监控Redis服务

    Grafana Prometheus系统监控Redis服务 一.Grafana Prometheus系统监控Redis服务 1.1流程 1.2安装redis_exporter 1.3配置prometh ...

  6. 使有prometheus监控redis,mongodb,nginx,mysql,jmx

    以下操作在CENTOS7环境. 使用prometheus做监控,使用grafana做dashboard的界面展示: 因prometheus自带的监控web界面图形化展示方面比较弱,推荐使用grafan ...

  7. 使用Prometheus+Grafana监控MySQL实践

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采 ...

  8. 初试 Prometheus + Grafana 监控系统搭建并监控 Mysql

    转载自:https://cloud.tencent.com/developer/article/1433280 文章目录1.Prometheus & Grafana 介绍1.1.Prometh ...

  9. 安装prometheus+grafana监控mysql redis kubernetes等

    1.prometheus安装 wget https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5 ...

随机推荐

  1. hdu 4501三重包问题

    好好理解一下背包问题 从01包入手 内层的循环 是为了以后求解记录数据 因为只有一个取舍问题 所以只需要一层循环就可以 这里有三个背包 钱 积分 以及免费物品 那么 就需要三重循环 #include& ...

  2. 联想U310 安装系统后无法识别机械硬盘处理

    过程: 原30G的固态更换成250G的 mSATA固态,去掉机械硬盘,开始在固态里安装系统, 系统用PE登录,安装正版Win7 64B 专业版, 安装结束,接上机械硬盘, *PE下,可以正常识别2块硬 ...

  3. JS基础_函数作用域

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. centos 随机启动脚本编写

    先说下问题背景 目前手上开发的产品是springboot微服务的,我们用jenkins来做的部署,部署脚本如下: 1.build脚本 负责从git服务器拉脚本 2.微服务脚本: #!/bin/shap ...

  5. 队列(queue)和堆栈(stack)的学习

    队列 1 . 先进先出  .队列尾进行插入,队列头进行删除,获取,修改.      -----first come  ,first served .   --first in  .first  out ...

  6. Disable trigger to avoid the ID is auto-updated

    CREATE TABLE COBRA.COBRA_PRODUCT_INFO_BAK AS SELECT * FROM COBRA.COBRA_PRODUCT_INFO; TRUNCATE TABLE ...

  7. 使用pyinstaller打包使用scrapy模块的程序运行时出现No such file or directory的问题解决

    解决的方案是利用pyinstaller的hook特性,步骤如下: 1.在项目目录新建hooks目录,目录中新建hooks-scrapy.py 文件,文件内容如下: from PyInstaller.u ...

  8. redis 订阅&发布(转载)

    https://segmentfault.com/a/1190000016898228?utm_source=coffeephp.com 方法一: redis_helper.py: 封装发布订阅方法 ...

  9. 场效应管种类-场效应管N、P沟道与增强、耗尽型工作原理等知识详解 如何选用晶体三极管与场效应管的技巧

    http://www.kiaic.com/article/detail/1308.html 场效应管种类场效应管 场效应晶体管(Field Effect Transistor缩写(FET))简称场效应 ...

  10. stm32如何核对flash大小和sram大小

    以stm32f103zet6为例,直接上图: