🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、监控组件 ### 监控需要的组件 alertmanager-0.21.0.linux-amd64.tar.gz grafana-7.4.0.linux-amd64.tar.gz mysqld_exporter-0.12.1.linux-amd64.tar.gz node_exporter-1.0.1.linux-amd64.tar.gz prometheus-2.24.0.linux-amd64.tar.gz ### 部署的要求 启动组件的时候,**不要使用root用户启动**,这里我们创建prome用户;我们在prome用户下启动组件。 ### 创建prome用户 操作命令(在 root 用户下操作) ``` # 先查看是否有prome用户 su - prome # 添加prome用户,如果已经存在prome用户,则不用再次添加。 adduser prome # 修改密码 passwd prome # 授予prome用户sudo权限 vim /etc/sudoers ``` ### 安装 Linux 基线 操作命令 (在 root 用户下操作) ``` ## Linux基线安装 yum install wget gcc openssl git autoconf vim screen automake libtool make perl gettext gettext-devel gd gperf ncurses-devel zip unzip net-tools snappy-devel sysstat iftop psmisc ntp logrotate sshpass rsync ``` ### Linux 主机时间同步 操作命令(在 root 用户下操作) ``` # 同步NTP服务器(上海) [root@ncayu618 ~]# ntpdate -u ntp.api.bz 22 Mar 16:08:51 ntpdate[24159]: adjust time server 114.118.7.161 offset -0.000475 sec [root@ncayu618 ~]# date 2021年 03月 22日 星期一 16:09:33 CST [root@ncayu618 ~]# hwclock 2021年03月22日 星期一 16时15分40秒 -0.351661 秒 # 将系统时间写入到硬件 [root@ncayu618 ~]# clock -w # 再次确认时间 [root@ncayu618 ~]# date 2021年 03月 22日 星期一 16:09:33 CST [root@ncayu618 ~]# hwclock 2021年03月22日 星期一 16时15分40秒 -0.351661 秒 ``` ### 上传和解压组件 注:文件上传到 Linux 上时,默认用户组为 root,需要把组件的放在prome 用户组下;组件启动和关闭均使用 prome 用户。 操作命令 ``` # 查看是否有/data/applications/prometheus文件夹,如果没有就创建 cd /data mkdir applications cd applications mkdir prometheus # 创建software文件夹(用于存放组件) mkdir software # 把prometheus文件夹赋予fivefu用户组 chown prome:prome prometheus/ chown prome:prome software/ # 上传组件到software文件夹 # 解压组件到 /data/applications/prometheus 目录下 tar xvfz node_exporter-1.0.1.linux-amd64.tar.gz -C /data/applications/prometheus # 重命名文件,创建软连接 mv node_exporter-1.0.1.linux-amd64/ node_exporter-1.0.1 ln -s node_exporter-1.0.1 node_exporter ``` ### 二、开始安装 ### 1.确定监控部署路径 之前安装的[Prometheus](https://so.csdn.net/so/search?q=Prometheus&spm=1001.2101.3001.7020)监控的路径是:/data/applications 。 由于每一个组件安装后就需要创建一个软连接,/data/applications目录下就会有很多文件夹,于是后期的Prometheus部署可以用下面的路径: ``` # 部署路径: /data/applications/prometheus # tar.gz二进制包存放路径 /data/applications/software ``` 友情提示:`Linux主机上下载组件比较慢,请上传组件二进制包到/data/applications/software 目录下`。 ## 2.部署Prometheus组件 #### 解压Prometheus组件到指定目录 ``` # 解压 tar xzvf prometheus-2.24.0.linux-amd64.tar.gz -C /data/applications/prometheus # 重命名 cd /data/applications/prometheus mv prometheus-2.24.0.linux-amd64 prometheus-2.24.0 # 创建软连接 ln -s prometheus-2.24.0 prometheus ``` #### 创建目录文件,让目录更美观 ``` # 进入Prometheus路径下 cd /data/applications/prometheus/prometheus/ # 创建文件夹 bin、conf、data、logs、script mkdir bin conf data logs script # 移动prometheus.yml文件到conf目录 mv prometheus.yml conf/ # 移动prometheus、promtool、LICENSE、NOTICE 文件到bin目录 mv prometheus promtool LICENSE NOTICE bin/ ``` ### 创建启动脚本 ``` # 进入script文件 cd script # 创建脚本文件run_prometheus.sh vim run_prometheus.sh ``` ### 启动Prometheus脚本文件:run\_prometheus.sh ``` #!/bin/bash set -e DEPLOY_DIR=/data/applications/prometheus/prometheus/bin cd "${DEPLOY_DIR}" || exit 1 # WARNING: This file was auto-generated. Do not edit! # All your edit might be overwritten! exec > >(tee -i -a "/data/applications/prometheus/prometheus/logs/prometheus.log") exec 2>&1 exec ./prometheus \ --config.file="/data/applications/prometheus/prometheus/conf/prometheus.yml" \ --web.listen-address=":9090" \ --web.external-url="http://192-168-70-133:9090/prometheus" \ --web.enable-admin-api \ --log.level="info" \ --storage.tsdb.path="/data/applications/prometheus/prometheus/data" \ --storage.tsdb.retention="30d" 2>&1 & ``` “http://192-168-70-133:9090/prometheus “URL中含有”prometheus“是为了**使用nginx把Prometheus从内网中代理出来**。 ### 查看Prometheus进程 ``` ss -naltp | grep prometheus [root@host-192-168-70-133 ~]# ss -naltp | grep prometheus LISTEN 0 128 [::]:9090 [::]:* users:(("prometheus",pid=18094,fd=8)) ``` ### 查看prometheus的web页面: ``` # 通过浏览器访问http://服务器IP:9090就可以访问到Prometheus的主界面 例如:http://192.168.70.133:9090/prometheus/targets ``` ### prometheus.yml的配置文件: ``` # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: - 192.168.70.133:9093 rule_files: - "node_exporter_rules.yml" - "windows_exporter_rules.yml" - job_name: 'Linux' static_configs: - targets: ['192.168.70.133:9100'] - targets: ['192.168.70.134:9100'] - targets: ['192.168.70.135:9100'] - targets: ['192.168.70.136:9100'] - targets: ['192.168.70.137:9100'] - targets: ['192.168.70.138:9100'] - job_name: 'MySQL' static_configs: - targets: ['192.168.70.139:9104'] ```