Linux教程

Prometheus在Linux主机的安装

本文主要是介绍Prometheus在Linux主机的安装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

第一步:安装go语言环境(我觉得不装也没有什么问题)

第二步:在192.168.248.11 上安装Prometheus

第三步:监控远程LInux主机

第四步:在192.168.248.11 上安装Grafana

第五步:在Prometheus服务器上安装alermanager

 

 

准备一台Prometheus服务器   192.168.248.11

一台被监控服务器 192.168.248.12 安装Prometheus服务       第一步:安装go语言环境(我觉得不装也没有什么问题) go语言环境下载链接:https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz tar -xzf go1.8.3.linux-amd64.tar.gz -C /usr/local vim /etc/profile #在文件最下面添加go环境 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin export PATH=$PATH:/usr/local/go/bin 0 #保存退出后,让配置文件生效: source /etc/profile #验证是否成功 go version 0 第二步:在192.168.248.11 上安装Prometheus #去官网下载对应的系统的版本,官方地址:https://prometheus.io/download/ 0 #传入服务器,解压到/usr/local tar -vxf prometheus-2.33.4.linux-amd64.tar.gz -C /usr/local 0 #为了以后方便进入目录,可以做个软连接 ln -sv /usr/local/prometheus-2.33.4.linux-amd64.tar.gz -C /usr/local/Prometheus #配置监控的配置文件:prometheus.yml 0 #运行该文件 cd /usr/local/Prometheus ./prometheus #通过url 192.168.248.11:9090,点击targets跳转到监控目标 0 #主机数据展示 0 #在web主页面可以通过关键字查询监控项 0 #补充:可以将Prometheus服务放入系统服务里,使用systemctl启动 cd /usr/lib/systemd/system vim prometheus.service [Unit] Description=prometheus System Documentation=https://prometheus.io [Service] Restart=on-failure ExecStart=/usr/local/prometheus/prometheus --storage.tsdb.path=/usr/local/prometheus/data --config.file=/usr/local/prometheus/prometheus.yml [Install] WantedBy=multi-user.target 0 0 第三步:监控远程LInux主机 #在远程linux主机(被监控端安装node_exporter组件) #下载地址:https://prometheus.io/download/ 0 tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local/ mv /usr/local/node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter #包里只有一个启动命令node_exporter,可以直接使用此命令启动 nohup /usr/local/node_exporter/node_exporter & 0 #再开一个终端,确认9100的端口 0 #Tip:nohup命令:如果把启动node_exporter的终端给关闭,那么进程也会随之关闭。nohup命令会帮我们解决这个问题 #通过访问192.168.248.12:9100/metrics可以查看node_exporter在被监控端收集的监控信息 0 #在192.168.248.11这台服务器的配置文件里添加被监控及其的配置段 0 #重启服务,先关闭上次打开的进程 0 #在192.168.248.11这台服务器 lsof -i:9090 0 kill -9 44410 cd /usr/local/Prometheus ./prometheus 0 #贴士:可以将node exporter加入系统启动 cd /usr/lib/systemd/system vim node_exporter.service [Unit] Description=Prometheusnode_exporter [Service] User=nobody ExecStart=/usr/local/node_exporter/node_exporter --log.level=error ExecStop=/usr/bin/killallnode_exporter [Install] WantedBy=default.target 0 第四步:在192.168.248.11 上安装Grafana wget https://dl.grafana.com/oss/release/grafana-5.3.4-1.x86_64.rpm rpm -ivh grafana-5.3.4-1.x86_64.rpm ## wget https://dl.grafana.com/enterprise/release/grafana-enterprise-7.2.0-1.x86_64.rpm ## sudo yum install grafana-enterprise-7.2.0-1.x86_64.rpm systemctl start grafana-server systemctl enable grafana-server #检查端口 lsof -i:3000 0 #浏览器访问192.168.248.11:3000 0 0 0 0 0 #配置dashboard #登录grafana的dashboard平台,查询所需的json文件,地址:https://grafana.com/grafana/dashboards #去官网寻找对应的表盘,这里选择node exporter监控看板 #在grafana中导入表盘 #访问https://grafana.com/grafana/dashboards/8919/revisions 下载最小的json,或copy对应id 0 0 0 #grafana的dashboard安装成功界面展示 0 ==================Prometheus+Grafana安装完成============================ #在192.168.248.12 上安装mysql并加入Prometheus的监控 #下载 wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz #解压: tar xf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/ #创建一个mysql配置文件,写上连接的用户名和密码(这个用户需要被授予远程访问的权限) vim /usr/local/mysqld_exporter-0.11.0.linux-amd64/.my.cnf [client] user=abc password=123456 #启动mysql的监控 nohup /usr/local/mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter --config.my.cnf=/usr/local/mysqld_exporter-0.11.0.linux-amd64/.my.cnf & #将mysql的监控配置到192.168.248.11上 cd /usr/local/Prometheus vim /prometheus.yml #文件末尾添加如下内容,注意缩进 - job_name:'agent_mysql' static_configs: - targets:['192.168.246.12:9104'] #杀死原进程,再启动新进程 lsof -i:9090 cd /usr/local/Prometheus ./prometheus 0 =======================mysql添加到Prometheus完成========================= 第五步:在Prometheus服务器上安装alermanager 上面的Prometheus服务安排在192.168.80.11上,下面的统一安排在192.168.80.14上 # 下载地址:https://prometheus.io/download/ 0 #或者 wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz tar -zxvf alertmanager-0.21.0.linux-amd64.tar.gz mv alertmanager-0.21.0.linux-amd64 /usr/local/alertmanager #我这里用的是0.23.0的版本 #修改配置文件 cd /usr/local/alertmanager vim alertmanager.yml global: resolve_timeout: 5m smtp_from: '17****818@qq.com' #邮箱地址 smtp_smarthost: 'smtp.qq.com:465' #邮箱smtp服务器代理 smtp_auth_username: '17*****718@qq.com' # 邮箱名称 smtp_auth_password: '*****' #授权码 smtp_require_tls: false smtp_hello: 'qq.com' route: group_by: ['alertname'] #报警分组依据 group_wait: 5s #最初即第一次等待多久时间发送一组警报的通知 group_interval: 5s # 在发送新警报前的等待时间 repeat_interval: 30m # 发送重复警报的周期 对于email配置中,此项不可以设置过低,>否则将会由于邮件发送太多频繁,被smtp服务器拒绝 receiver: 'email' # 发送警报的接收者的名称,以下receivers name的名称 receivers: - name: 'email' email_configs: # 邮箱配置 - to: '17*****8@qq.com' # 接收警报的email配置 headers: { Subject: "[WARN] 报警邮件"} # 接收邮件的标题 send_resolved: true inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'dev', 'instance'] 0 #检测yml文件是否有语法错误 ./amtool check-config alertmanager.yml 0 #启动alertmanager cd /usr/local/alertmanager ./alertmanager 0 #修改Prometheus配置文件 cd /usr/local/prometheus/ vim prometheus.yml cd /usr/local/prometheus vim prometheus.yml # my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: ['localhost:9093'] #alermanager地址 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: - "/usr/local/prometheus/rules/*.yml" #规则存放路径 # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.   0 #创建rules规则目录 cd /usr/local/prometheus mkdir rules cd rules 0 #添加报警规则 vim system_info.yml groups: - name: 主机状态-监控告警 rules: - alert: 主机状态 expr: up == 0 for: 5m labels: status: 非常严重 annotations: summary: "{{$labels.instance}}:服务器宕机" description: "{{$labels.instance}}:服务器延时超过5分钟" - alert: CPU使用情况 expr: 100-(avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by(instance)* 100) > 80 for: 1m labels: status: 一般告警 annotations: summary: "{{$labels.instance}} CPU使用率过高!" description: "{{$labels.instance }} CPU使用大于80%(目前使用:{{$value}}%)" - alert: 内存使用 expr: (1 - (node_memory_MemAvailable_bytes / (node_memory_MemTotal_bytes))) * 100 > 80 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.instance}} 内存使用率过高!" description: "{{$labels.instance }} 内存使用大于80%(目前使用:{{$value}}%)" - alert: IO性能 expr: (avg(irate(node_disk_io_time_seconds_total[1m])) by(instance)* 100) > 80 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.instance}} 流入磁盘IO使用率过高!" description: "{{$labels.instance }} 流入磁盘IO大于80%(目前使用:{{$value}})" - alert: 网络 expr: ((sum(rate (node_network_receive_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance)) / 100) > 102400 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.instance}} 流入网络带宽过高!" description: "{{$labels.instance }}流入网络带宽持续2分钟高于100M. RX带宽使用率{{$value}}" - alert: 网络 expr: ((sum(rate (node_network_transmit_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance)) / 100) > 102400 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.instance}} 流出网络带宽过高!" description: "{{$labels.instance }}流出网络带宽持续2分钟高于100M. RX带宽使用率{{$value}}" - alert: TCP会话 expr: node_netstat_Tcp_CurrEstab > 1000 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.instance}} TCP_ESTABLISHED过高!" description: "{{$labels.instance }} TCP_ESTABLISHED大于1000(目前使用:{{$value}}%)" - alert: 磁盘容量 expr: 100-(node_filesystem_free_bytes{fstype=~"ext4|xfs"}/node_filesystem_size_bytes {fstype=~"ext4|xfs"}*100) > 80 for: 1m labels: status: 严重告警 annotations: summary: "{{$labels.instance}} 磁盘分区使用率过高!" description: "{{$labels.instance }} 磁盘分区使用大于80%(目前使用:{{$value}}%)" #重启Prometheus服务 systemctl restart prometheus #进浏览器查看警报 0 #邮箱展示(由于我这里邮箱名字给错了,所有显示发送失败 0 =================================alertmanager报警配置完成============================
这篇关于Prometheus在Linux主机的安装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!