本文介绍在CentOS 7/Ubuntu 18.04操作系统上安装Prometheus服务器的方法。我实验室中的所有服务器都将运行CentOS 7,但其他要监控的服务器将运行Ubuntu、Fedora、Debian、Arch甚至Windows服务器,所以为此,我假设你有一个运行CentOS 7的服务器(VM)或LXC容器,可以先参考在RHEL 8系统上安装Prometheus 2.6.0的步骤。
安装Prometheus服务器的具体方法 1、创建Prometheus系统组 让我们从创建Prometheus系统组开始,你需要使用-r或-system选项和groupadd命令: sudo groupadd --system prometheus ID < 1000的组是系统组。 2、创建Prometheus系统用户 现在让我们创建Prometheus系统用户并分配我们刚才创建的主要组: sudo useradd -s /sbin/nologin --system -g prometheus prometheus 这是一个不需要/bin/bash shell的系统用户,这就是我们使用-s/sbin/nologin的原因。 3、为Prometheus创建数据目录 Prometheus需要一个目录来存储其数据,我们将在/var/lib/prometheus下创建一个,我们将在启动服务时指定此数据目录: sudo mkdir /var/lib/prometheus 4、为Prometheus创建配置目录 Prometheus主配置文件目录是/etc/prometheus/,它将有一些子目录: for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done 5、下载Prometheus Archive并将其解压缩 我们需要下载Prometheus文件并将其解压缩以获取二进制文件,你可以从Prometheus发布的Github页面获取: sudo yum -y install wget cd /tmp wget https://github.com/prometheus/prometheus/releases/download/v2.7.1/prometheus-2.7.1.linux-amd64.tar.gz 提取文件: tar xvf prometheus-2.7.1.linux-amd64.tar.gz cd prometheus-2.7.1.linux-amd64/ 6、将Prometheus二进制文件复制到/usr/local/bin/ 由于/usr/local/bin/在$PATH中,让我们将二进制文件复制到它: sudo cp prometheus promtool /usr/local/bin/ 将控制台和console_libraries复制到/etc/prometheus目录: sudo cp -r consoles/ console_libraries/ /etc/prometheus/ ls /etc/prometheus/ console_libraries consoles rules rules.d files_sd 7、创建Prometheus配置文件 Prometheus配置文件将位于/etc/prometheus/prometheus.yml下,使用内容创建简单配置: # 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: 15s # scrape_timeout is set to the global default (10s). # 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. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] 你可以将文件编辑为适合自己需求的,然后保存。 8、创建Prometheus systemd服务单元文件 为了能够使用systemd管理Prometheus服务,你需要明确定义此单元文件: # cat /etc/systemd/system/prometheus.service [Unit] Description=Prometheus Documentation=https://prometheus.io/docs/introduction/overview/ Wants=network-online.target After=network-online.target [Service] Type=simple Environment="GOMAXPROCS=2" User=prometheus Group=prometheus ExecReload=/bin/kill -HUP $MAINPID ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries \ --web.listen-address=0.0.0.0:9090 \ --web.external-url= SyslogIdentifier=prometheus Restart=always [Install] WantedBy=multi-user.target 请记住编辑该行: Environment="GOMAXPROCS=2 将2替换为服务器上的vcpus数。 正式安装: rm -rf prometheus-2.7.1.linux-amd64.tar.gz rm -rf prometheus-2.7.1.linux-amd64/ 9、更改目录权限 将这些目录的所有权更改为Prometheus用户和组: for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done sudo chown -R prometheus:prometheus /var/lib/prometheus/ 10、重新加载systemd守护程序并启动该服务 运行以下命令: sudo systemctl daemon-reload sudo systemctl start prometheus 然后使用systemctl status prometheus命令检查状态:
11、配置firewalld 在防火墙上打开一个端口,对我来说,我将使用firewalld丰富的规则来允许仅从我的可信子网和IP进行访问: sudo firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" \ source address="192.168.10.0/24" port protocol="tcp" port="9090" accept' sudo firewall-cmd --reload 如果我可以在端口9090上访问Prometheus服务,我将从我的Grafana服务器进行测试: $ sudo yum -y install nmap-ncat $ sudo nc -v 62.12.112.233 9090 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 62.12.112.233:9090. 由于我可以连接到端口9090,这意味着我们的设置已完成。
相关主题 |