一、yum安装prometheus
1、添加yum源
curl -s https://packagecloud.io/install/repositories/prometheus-rpm/release/script.rpm.sh | sudo bash 或者手动编写脚本 vim prometheus_install_yum.sh #!/bin/bash unknown_os () { echo "Unfortunately, your operating system distribution and version are not supported by this script." echo echo "You can override the OS detection by setting os= and dist= prior to running this script." echo "You can find a list of supported OSes and distributions on our website: https://packagecloud.io/docs#os_distro_version" echo echo "For example, to force CentOS 6: os=el dist=6 ./script.sh" echo echo "Please email support@packagecloud.io and let us know if you run into any issues." exit 1 } curl_check () { echo "Checking for curl..." if command -v curl > /dev/null; then echo "Detected curl..." else echo "Installing curl..." yum install -d0 -e0 -y curl fi } detect_os () { if [[ ( -z "${os}" ) && ( -z "${dist}" ) ]]; then if [ -e /etc/os-release ]; then . /etc/os-release os=${ID} if [ "${os}" = "poky" ]; then dist=`echo ${VERSION_ID}` elif [ "${os}" = "sles" ]; then dist=`echo ${VERSION_ID}` elif [ "${os}" = "opensuse" ]; then dist=`echo ${VERSION_ID}` elif [ "${os}" = "opensuse-leap" ]; then os=opensuse dist=`echo ${VERSION_ID}` else dist=`echo ${VERSION_ID} | awk -F '.' '{ print $1 }'` fi elif [ `which lsb_release 2>/dev/null` ]; then # get major version (e.g. '5' or '6') dist=`lsb_release -r | cut -f2 | awk -F '.' '{ print $1 }'` # get os (e.g. 'centos', 'redhatenterpriseserver', etc) os=`lsb_release -i | cut -f2 | awk '{ print tolower($1) }'` elif [ -e /etc/oracle-release ]; then dist=`cut -f5 --delimiter=' ' /etc/oracle-release | awk -F '.' '{ print $1 }'` os='ol' elif [ -e /etc/fedora-release ]; then dist=`cut -f3 --delimiter=' ' /etc/fedora-release` os='fedora' elif [ -e /etc/redhat-release ]; then os_hint=`cat /etc/redhat-release | awk '{ print tolower($1) }'` if [ "${os_hint}" = "centos" ]; then dist=`cat /etc/redhat-release | awk '{ print $3 }' | awk -F '.' '{ print $1 }'` os='centos' elif [ "${os_hint}" = "scientific" ]; then dist=`cat /etc/redhat-release | awk '{ print $4 }' | awk -F '.' '{ print $1 }'` os='scientific' else dist=`cat /etc/redhat-release | awk '{ print tolower($7) }' | cut -f1 --delimiter='.'` os='redhatenterpriseserver' fi else aws=`grep -q Amazon /etc/issue` if [ "$?" = "0" ]; then dist='6' os='aws' else unknown_os fi fi fi if [[ ( -z "${os}" ) || ( -z "${dist}" ) ]]; then unknown_os fi # remove whitespace from OS and dist name os="${os// /}" dist="${dist// /}" echo "Detected operating system as ${os}/${dist}." if [ "${dist}" = "8" ]; then _skip_pygpgme=1 else _skip_pygpgme=0 fi } finalize_yum_repo () { if [ "$_skip_pygpgme" = 0 ]; then echo "Installing pygpgme to verify GPG signatures..." yum install -y pygpgme --disablerepo='prometheus-rpm_release' pypgpme_check=`rpm -qa | grep -qw pygpgme` if [ "$?" != "0" ]; then echo echo "WARNING: " echo "The pygpgme package could not be installed. This means GPG verification is not possible for any RPM installed on your system. " echo "To fix this, add a repository with pygpgme. Usualy, the EPEL repository for your system will have this. " echo "More information: https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F" echo # set the repo_gpgcheck option to 0 sed -i'' 's/repo_gpgcheck=1/repo_gpgcheck=0/' /etc/yum.repos.d/prometheus-rpm_release.repo fi fi echo "Installing yum-utils..." yum install -y yum-utils --disablerepo='prometheus-rpm_release' yum_utils_check=`rpm -qa | grep -qw yum-utils` if [ "$?" != "0" ]; then echo echo "WARNING: " echo "The yum-utils package could not be installed. This means you may not be able to install source RPMs or use other yum features." echo fi echo "Generating yum cache for prometheus-rpm_release..." yum -q makecache -y --disablerepo='*' --enablerepo='prometheus-rpm_release' echo "Generating yum cache for prometheus-rpm_release-source..." yum -q makecache -y --disablerepo='*' --enablerepo='prometheus-rpm_release-source' } finalize_zypper_repo () { zypper --gpg-auto-import-keys refresh prometheus-rpm_release zypper --gpg-auto-import-keys refresh prometheus-rpm_release-source } main () { detect_os curl_check yum_repo_config_url="https://packagecloud.io/install/repositories/prometheus-rpm/release/config_file.repo?os=${os}&dist=${dist}&source=script" if [ "${os}" = "sles" ] || [ "${os}" = "opensuse" ]; then yum_repo_path=/etc/zypp/repos.d/prometheus-rpm_release.repo else yum_repo_path=/etc/yum.repos.d/prometheus-rpm_release.repo fi echo "Downloading repository file: ${yum_repo_config_url}" curl -sSf "${yum_repo_config_url}" > $yum_repo_path curl_exit_code=$? if [ "$curl_exit_code" = "22" ]; then echo echo echo -n "Unable to download repo config from: " echo "${yum_repo_config_url}" echo echo "This usually happens if your operating system is not supported by " echo "packagecloud.io, or this script's OS detection failed." echo echo "You can override the OS detection by setting os= and dist= prior to running this script." echo "You can find a list of supported OSes and distributions on our website: https://packagecloud.io/docs#os_distro_version" echo echo "For example, to force CentOS 6: os=el dist=6 ./script.sh" echo echo "If you are running a supported OS, please email support@packagecloud.io and report this." [ -e $yum_repo_path ] && rm $yum_repo_path exit 1 elif [ "$curl_exit_code" = "35" -o "$curl_exit_code" = "60" ]; then echo echo "curl is unable to connect to packagecloud.io over TLS when running: " echo " curl ${yum_repo_config_url}" echo echo "This is usually due to one of two things:" echo echo " 1.) Missing CA root certificates (make sure the ca-certificates package is installed)" echo " 2.) An old version of libssl. Try upgrading libssl on your system to a more recent version" echo echo "Contact support@packagecloud.io with information about your system for help." [ -e $yum_repo_path ] && rm $yum_repo_path exit 1 elif [ "$curl_exit_code" -gt "0" ]; then echo echo "Unable to run: " echo " curl ${yum_repo_config_url}" echo echo "Double check your curl installation and try again." [ -e $yum_repo_path ] && rm $yum_repo_path exit 1 else echo "done." fi if [ "${os}" = "sles" ] || [ "${os}" = "opensuse" ]; then finalize_zypper_repo else finalize_yum_repo fi echo echo "The repository is setup! You can now install packages." } main
2、更新yum源
yum clean all yum repolist yum search prometheus
3、安装prometheus
yum install -y prometheus2
4、启动prometheus,并加入自启
systemctl start prometheus systemctl enable prometheus
二、二进制安装prometheus
1、下载prometheus
从 https://prometheus.io/download/ 下载相应版本,安装到服务器上官网提供的是二进制版,解压就能用,不需要编译
上传prometheus-2.28.1.linux-amd64.tar.gz
2、解压安装包
tar -zxvf prometheus-2.28.1.linux-amd64.tar.gz -C /usr/local/ mv /usr/local/prometheus-2.28.1.linux-amd64/ /usr/local/prometheus
3、解压后当前目录会包含默认的Prometheus配置文件promethes.yml,下面配置文件做下简略的解析:
# 全局配置 global: scrape_interval: 15s # 设置抓取间隔,默认为1分钟 evaluation_interval: 15s #估算规则的默认周期,每15秒计算一次规则。默认1分钟 # scrape_timeout #默认抓取超时,默认为10s # Alertmanager相关配置 alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # 规则文件列表,使用'evaluation_interval' 参数去抓取 rule_files: # - "first_rules.yml" # - "second_rules.yml" # 抓取配置列表 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']
4、直接使用默认配置文件启动
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
5、验证启动
[root@prometheus opt]# netstat -nutlp|grep 9090 tcp6 0 0 :::9090 :::* LISTEN 4726/prometheus
6、访问prometheus界面
通过浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面
7、做成服务,设置成开启自启动
vim /etc/systemd/system/prometheus.service [Unit] Description=Prometheus Monitoring System Documentation=Prometheus Monitoring System [Service] ExecStart=/usr/local/prometheus/prometheus \ --storage.tsdb.path=/usr/local/prometheus/data \ --config.file=/usr/local/prometheus/prometheus.yml \ --web.listen-address=:9090 [Install] WantedBy=multi-user.target
8、创建目录
mkdir /usr/local/prometheus/data
9、设置开机自启
启动前先kill掉原来的服务,否则不能成功启动
systemctl daemon-reload systemctl enable prometheus systemctl start prometheus
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END