1. 普罗米修斯Prometheus监控安装
  2.  
  3. 架构:
  4.  
  5. 服务端:192.168.0.204
  6.  
  7. 客户端:192.168.0.206
  8.  
  9. 环境准备:所有节点安装go 语言环境
  10.  
  11. rz go1.12.linux-amd64.tar.gz
  12.  
  13. tar -C /usr/local -xzf go1.12.linux-amd64.tar.gz
  14.  
  15. cat >> /etc/profile<<EOF
  16. export PATH=$PATH:/usr/local/go/bin
  17. EOF
  18.  
  19. source /etc/profile
  20.  
  21. go version
  22.  
  23. 1server端部署
  24.  
  25. 1.1 软件包准备
  26.  
  27. cd /usr/local/src
  28. wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz #服务端、客户端都部署
  29. wget https://github.com/prometheus/prometheus/releases/download/v2.7.1/prometheus-2.7.1.linux-amd64.tar.gz #服务端部署
  30. tar xf prometheus-2.7.1.linux-amd64.tar.gz
  31. tar xf node_exporter-0.17.0.linux-amd64.tar.gz
  32.  
  33. 1.2 启动node_exporter
  34.  
  35. # 验证以Prometheus本身数据为例,在Web中查询指定表达式及图形化显示查询结果 。
  36. mv prometheus-2.7.1.linux-amd64 /usr/local
  37. mv node_exporter-0.17.0.linux-amd64 /usr/local/
  38. ln -s /usr/local/prometheus-2.7.1.linux-amd64/ /usr/local/prometheus
  39. ln -s /usr/local/node_exporter-0.17.0.linux-amd64/ /usr/local/node_exporter
  40. cd /usr/local/node_exporter
  41. ./node_exporter &
  42. netstat -lntp|grep 9100
  43. http://192.168.0.204:9100/metrics
  44.  
  45. 1.3 启动Prometheus
  46.  
  47. cd /usr/local/prometheus
  48. vi prometheus.yml
  49. global:
  50. scrape_interval: 15s
  51. evaluation_interval: 15s
  52. external_labels:
  53. monitor: 'codelab-monitor'
  54. rule_files:
  55. - 'prometheus_rules.yml' #需定义
  56. scrape_configs:
  57. - job_name: 'prometheus'
  58. static_configs:
  59. - targets: ['localhost:9090']
  60. labels:
  61. alias: prometheus
  62.  
  63. - job_name: 'linux1'
  64. static_configs:
  65. - targets: ['192.168.0.204:9100'] #安装node_node_exporter的节点ip地址
  66. labels:
  67. alias: linux-node1
  68.  
  69. - job_name: 'linux2'
  70. static_configs:
  71. - targets: ['192.168.0.206:9100'] #安装node_node_exporter的节点ip地址
  72. labels:
  73. alias: linux-node2
  74. ##############################################################
  75.  
  76. #添加alert规则
  77.  
  78. cat>>prometheus_rules.yml<<EOF
  79. groups:
  80. - name: example
  81. rules:
  82.  
  83. # Alert for any instance that is unreachable for >5 minutes.
  84. - alert: InstanceDown
  85. expr: up == 0
  86. for: 5m
  87. labels:
  88. severity: page
  89. annotations:
  90. summary: "Instance {{ $labels.instance }} down"
  91. description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."
  92.  
  93. # Alert for any instance that has a median request latency >1s.
  94. - alert: APIHighRequestLatency
  95. expr: api_http_request_latencies_second{quantile="0.5"} > 1
  96. for: 10m
  97. annotations:
  98. summary: "High request latency on {{ $labels.instance }}"
  99. description: "{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)"
  100. EOF
  101.  
  102. 启动Prometheus
  103. cd /usr/local/prometheus
  104. ./prometheus
  105.  
  106. 浏览器访问
  107.  
  108. http://192.168.0.204:9090/targets
  109.  
  110. 2、客户端部署
  111.  
  112. 2.1 部署node_exporter
  113.  
  114. 使用Prometheus Web来验证客户端Node Exporter的数据的采集。内存、CPU负载,磁盘等性能监控
  115.  
  116. wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz #客户端部署,可针对硬件层次进行监控
  117. tar xf node_exporter-0.17.0.linux-amd64.tar.gz
  118. mv node_exporter-0.17.0.linux-amd64 /usr/local/
  119. ln -s /usr/local/node_exporter-0.17.0.linux-amd64/ /usr/local/node_exporter
  120. cd /usr/local/node_exporter
  121. ./node_exporter &
  122. netstat -lntp|grep 9100
  123. http://192.168.0.206:9100/metrics #自定义Metrics
  124.  
  125. 拦截器/过滤器:用于统计所有应用请求的情况
  126. 自定义Collector: 可以用于统计应用业务能力相关的监控情况
  127.  
  128. 2.3、对mysql进行监控(没做)
  129.  
  130. https://www.hi-linux.com/posts/27014.html #可参考
  131. cd /usr/local/src/
  132. wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz #部署在mysql服务器上,node_exporter也部署(参考前面)
  133. tar xf mysqld_exporter-0.10.0.linux-amd64.tar.gz
  134. mv mysqld_exporter-0.10.0.linux-amd64 /usr/local/
  135. ln -s /usr/local/mysqld_exporter-0.10.0.linux-amd64/ /usr/local/mysqld_exporter 
  136. 加载mysqld_exporter 添加配置文件(需要MySQL授权用户)
  137. mysqld_exporter需要连接到MySQL,需要授权
  138. mysql> grant replication client, process on *.* to prometheus@"localhost" identified by "";
  139. mysql> grant select on performance_schema.* to prometheus@"localhost";
  140. cd /usr/local/mysqld_exporter/
  141. vim .my.cnf
  142. [client]
  143. user=prometheus
  144. password=123456
  145. nohup ./mysqld_exporter --config.my-cnf=.my.cnf & #启动
  146.  
  147. 2.4、对nginx进行监控(没做)
  148.  
  149. cd /usr/local
  150. git clone git://github.com/vozlt/nginx-module-vts.git #在nginx主机上操作
  151. ./configure --prefix=/usr/local/nginx-1.12.2 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/usr/local/nginx-module-vts
  152. make
  153. nginx -s stop
  154. \cp ./objs/nginx /usr/local/nginx/sbin/
  155. vim nginx.conf
  156. http {
  157. .....
  158. ###Prometheus配置##
  159. vhost_traffic_status_zone;
  160. vhost_traffic_status_filter_by_host on; #打开vhost过滤
  161. ###Prometheus配置##
  162. .....
  163. server {
  164. location /status {
  165. #vhost_traffic_status off;
  166. vhost_traffic_status_display;
  167. vhost_traffic_status_display_format html;
  168. }
  169. }
  170. }
  171. ########################################################################################################################
  172. wget -c https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.9.1/nginx-vts-exporter-0.9.1.linux-amd64.tar.gz
  173. tar xf nginx-vts-exporter-0.9.1.linux-amd64.tar.gz
  174.  
  175. ./nginx-vts-exporter -nginx.scrape_timeout 10 -nginx.scrape_uri http://10.10.16.107/status/format/json & #启动nginx Vhost Traffic
  176. http://10.10.16.107/status #访问nginx主机各节点状态
  177.  
  178. 3Alertmanager报警实现(安装在服务端)
  179.  
  180. 3.1 下载alertmanager安装包
  181. cd /usr/local
  182. wget https://github.com/prometheus/alertmanager/releases/download/v0.16.0/alertmanager-0.16.1.linux-amd64.tar.gz
  183. tar -axvf alertmanager-0.16.1.linux-amd64.tar.gz
  184.  
  185. 3.2 配置alert默认启动yml文件
  186.  
  187. mkdir -p /usr/local/alertmanager-0.16.1.linux-amd64/template/
  188. cd /usr/local/alertmanager-0.16.1.linux-amd64/
  189. cat>> /usr/local/alertmanager-0.16.1.linux-amd64/simple.yml<<EOF
  190. global:
  191. smtp_smarthost: 'smtp.163.com:25'
  192. smtp_from: '15613691030@163.com'
  193. smtp_auth_username: ''
  194. smtp_auth_password: 'Shaochuan@5tgb'
  195. smtp_require_tls: false
  196.  
  197. templates:
  198. - '/usr/local/alertmanager-0.16.1.linux-amd64/template/*.html'
  199.  
  200. route:
  201. group_by: ['alertname', 'cluster', 'service']
  202. group_wait: 30s
  203. group_interval: 5m
  204. repeat_interval: 10m
  205. receiver: default-receiver
  206.  
  207. receivers:
  208. - name: 'default-receiver'
  209. email_configs:
  210. - to: '15613691030@163.com'
  211. html: '{{ template "alert.html" . }}'
  212. headers: { Subject: "[WARN] 报警邮件test" }
  213. EOF
  214.  
  215. 3.3 配置报警发送文件样式模板
  216.  
  217. cat>> /usr/local/alertmanager-0.16.1.linux-amd64/template/alert.html<<EOF #template需要创建
  218. {{ define "alert.html" }}
  219. <table>
  220. <tr><td>报警名</td><td>开始时间</td></tr>
  221. {{ range 10 := .Alerts }}
  222. <tr><td>{{ index $alert.Labels "alertname" }}</td><td>{{ $alert.StartsAt }}</td></tr>
  223. {{ end }}
  224. </table>
  225. {{ end }}
  226. EOF
  227.  
  228. 3.4 配置alert.html
  229.  
  230. cat>> /usr/local/alertmanager-0.16.1.linux-amd64/alert.html<<EOF
  231. {{ define "alert.html" }}
  232. <table>
  233. <tr><td>报警名</td><td>开始时间</td></tr>
  234. {{ range 10 := .Alerts }}
  235. <tr><td>{{ index $alert.Labels "alertname" }}</td><td>{{ $alert.StartsAt }}</td></tr>
  236. {{ end }}
  237. </table>
  238. {{ end }}
  239. EOF
  240.  
  241. 3.5 启动alertmanager服务
  242.  
  243. ./alertmanager --config.file=simple.yml #启动alertmanager
  244.  
  245. 4Grafana安装、启动(安装在服务端)
  246.  
  247. wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.3-1.x86_64.rpm
  248. yum install -y urw-fonts
  249. rpm -i grafana-5.2.3-1.x86_64.rpm
  250. /sbin/chkconfig --add grafana-server
  251. systemctl start grafana-server.service
  252.  
  253. 浏览器访问:
  254. http://192.168.0.204:3000(默认账号密码admin/admin)
  255.  
  256. 进去后会要求修改密码,然后点击add datasource,选中 Prometheus 2.0 Stats后,就可以呈现出监控面板
  257.  










  258.  
  259. 6Prometheus监控总结
  260.  
  261. 6.1 做好ntp时间同步
  262.  
  263. prometheus对系统时间的准确性要求很高,必须保证本机时间与监控主机实时同步:
  264.  
  265. 参照:
    https://blog.csdn.net/csolo/article/details/82460539
    http://www.cnblogs.com/qianjingchen/articles/9578341.html

普罗米修斯Prometheus监控安装的更多相关文章

  1. 监控神器-普罗米修斯Prometheus的安装

    搬砖党的福音:普罗米修斯-监控神器 功能: 在业务层用作埋点系统 Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端).我们可以通过客户 ...

  2. 一步步教你用Prometheus搭建实时监控系统系列(一)——上帝之火,普罗米修斯的崛起

    上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼.每次我都能联想到带来上帝之火的希腊之神,普罗米修斯.而这个开源的logo也是火,个人挺喜欢这个logo的设计. 本 ...

  3. 普罗米修斯!Ubuntu下prometheus监控软件安装使用

    *Prometheus* 是一个开源的服务监控系统和时间序列数据库 官方网站:prometheus.io 一.安装prometheus cd /usr/local/        #进入安装目录 wg ...

  4. Prometheus普罗米修斯快速入门

    欢迎来到普罗米修斯! Prometheus是一个监控平台,通过从监控目标的抓取HTTP端点上获取指标. 本指南将展示如何使用和安装Promethues,配置和监视第一个资源.还将下载并安装导出器Exp ...

  5. 在Grafana使用普罗米修斯

    aaarticlea/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IE ...

  6. 当ABAP遇见普罗米修斯

    Jerry每次在工作场合中同Prometheus(普罗米修斯)打交道时,都会"出戏",因为这个单词给我的第一印象,并不是用go语言实现的微服务监控利器,而是名导雷德利·斯科特(Ri ...

  7. 普罗米修斯+grafana监控k8s

    其实现原理有点类似ELK.node-exporter组件负责收集节点上的metrics监控数据,并将数据推送给prometheus, prometheus负责存储这些数据,grafana将这些数据通过 ...

  8. (2012年旧文)纪念史蒂夫乔布斯---IT界的普罗米修斯

    谈苹果与乔布斯系列一  IT界的普罗米修斯 纪念PC界的先驱 史蒂夫乔布斯 2012-4-5 清明节,纪念IT时代的开创人—伟大的史蒂夫 乔布斯. 没有乔布斯,计算机还是属于一群科技人士的工具,没有漂 ...

  9. 记录一次k8s环境尝试过程(初始方案,现在已经做过很多完善,例如普罗米修斯)

    记录一次Team k8s环境搭建过程(初始方案,现在已经做过很多完善,例如普罗米修斯) span::selection, .CodeMirror-line > span > span::s ...

随机推荐

  1. C#获取资源文件

    System.Resources.ResourceManager rs = new System.Resources.ResourceManager("NetWebBrowser.Resou ...

  2. mysql类型为varchar double类型字符串求和多出多个小数

    -- 错误 SELECT SUM(price) FROM m_user -- 正确 SELECT TRUNCATE ( ) FROM m_user u; -- 正确 SELECT ) ) FROM m ...

  3. Object.defineProperty 相关学习

    Object.defineProperty 学习   描述: 方法直接在对象上定义一个新属性,或修改对象上的现有属性 并返回该对象.该方法允许精确地添加或修改对象上的属性: 语法: Object.de ...

  4. 微信小程序 post 请求获取不到参数原因

    如果使用post 请求一定要加上 header: { "content-type": "application/x-www-form-urlencoded" } ...

  5. E:nth-last-child(n)

    E:nth-last-child(n) 语法: E:nth-last-child(n) { sRules } 说明: 匹配父元素的倒数第n个子元素E,假设该子元素不是E,则选择符无效.大理石平台维修 ...

  6. 查看工程里有多少行java代码

    /** * @Classname CustBankcardServiceImpl * @Description 计算项目代码量(行数) * @Date 2019/11/04 14:24 * @Crea ...

  7. oracle存储过程把查询到的值更新到别的表

    create or replace procedure update_nst_t_Clime2 as cursor c_db is select * from NST_T_FRAME f ,) as ...

  8. Hadoop界的Hello World!

    Hadoop界的Hello World! 2019-05-20  19:50:09 应用平台:Eclipse+ubantu+hadoop包 注:例分析的形式给宝宝们解释一下,详细运行过程省略. 实例: ...

  9. meshing-局部加密

    原视频下载地址: https://pan.baidu.com/s/1nvSf5qh 密码: cpbs

  10. 安装virtual box

    将安装包放在app目录下: 进入安装目录,输入sudo gdebi 安装包名 安装完后,可以在搜索框中搜索:virtual 会出现安装好的虚拟机盒子.