实验案例:一台服务器server,一台客户端client,时间同步(chrony)提前做好!!!
IP | 角色 | 系统 |
---|---|---|
192.168.100.50 | Prometheus 服务端 | CentOS 7 |
192.168.100.60 | node_exporter 客户端 | CentOS 7 |
服务器的操作:
部署go环境(Golang官网下载地址:https://golang.org/dl/ 按照包版本:go1.18.2.linux-amd64.tar.gz)
[root@server ~]# tar -zxvf go1.18.2.linux-amd64.tar.gz -C /usr/local [root@server ~]# vim /etc/profile export PATH=$PATH:/usr/local/go/bin [root@server ~]# source /etc/profile [root@server ~]# go version go version go1.18 linux/amd64
在网上拉取prometheus 的压缩包并解压至指定目录,改名,查看它的的版本号,方便grafana后续使用
[root@server ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.51.1/prometheus-2.51.1.linux-amd64.tar.gz [root@server ~]# tar -zxvf prometheus-2.51.1.linux-amd64.tar.gz -C /usr/local [root@server ~]# mv prometheus-2.51.1.linux-amd64/ prometheus [root@server ~]# ./prometheus --version
启动prometheus的服务:
[root@server /usr/local/prometheus]# ./prometheus --config.file=prometheus.yml
浏览器访问192.168.100.50:9090,查看服务是否启动成功
然后将prometheus配置为系统服务:
vi /usr/lib/systemd/system/prometheus.service #添加以下内容 [Unit] Description=https://prometheus.io [Service] Restart=on-failure ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.listen-address=:9090 [Install] WantedBy=multi-user.target [root@server ~]# systemctl daemon-reload #生效系统文件 [root@server ~]# pkill prometheus #暂停上次启动的服务 [root@server ~]# systemctl enable prometheus #服务 [root@server ~]# systemctl start prometheus #再重新启动服务
客户端操作:
在网上拉取node_exporter 压缩包并解压至指定目录
[root@client ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz [root@client ~]# tar -zxvf node_exporter-1.1.2.linux-amd64.tar.gz -C /usr/local/ [root@client ~]# mv node_exporter-1.1.2.linux-amd64/ node_exporter
启动node_exporter,并添加到系统服务
# 直接启动 [root@client /usr/local/node_exporter]# ./node_exporter & # 启动后会监听9100端口 # 添加为服务方式启动 [root@client ~]# vi /usr/lib/systemd/system/node_exporter.service [Unit] Description=node_exporter After=network.target [Service] ExecStart=/usr/local/node_exporter/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target # 启动node_exporter systemctl daemon-reload pkill node_exporter systemctl enable node_exporter systemctl start node_exporter
服务端添加配置文件增加被监控项
[root@server /usr/local/prometheus]# vi prometheus.yml #在底部添加以下三行 - job_name: 'linux' static_configs: - targets: ['192.168.100.60:9100']
打开网页192.168.100.50:9000查看被监控项是否被添加
当然除了监控主机状态还可以监控其他服务
例如:mysql(前提是mysql提前装好,mysql和mariadb不一样哦)
提取mysqld-exporter的压缩包
[root@client ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz [root@client ~]# tar -zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/ [root@client /usr/local]# mv mysqld_exporter-0.12.1.linux-amd64 mysqld_exporter [root@client /usr/local/mysqld_exporter]# vim .my.cnf [client] user=root password=000000
启动mysqld-exporter
[root@client /usr/local/mysqld_exporter]# ./mysqld_exporter --config.my-cnf="/usr/local/mysqld_exporter/.my.cnf" & [root@client /usr/local/mysqld_exporter]# ps -ef |grep exporter root 3447 3398 0 01:31 pts/1 00:00:02 ./node_exporter root 4647 3398 0 02:13 pts/1 00:00:00 ./mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf root 4654 3398 0 02:13 pts/1 00:00:00 grep --color=auto exporter [root@client /usr/local/mysqld_exporter]# ss -lntp |grep 4647 LISTEN 0 128 :::9104 :::* users:(("mysqld_exporter",pid=4647,fd=3)) [root@client /usr/local/mysqld_exporter]#
服务端添加被监控项:
[root@server /usr/local/prometheus]# vi prometheus.yml - job_name: 'mysql' static_configs: - targets: ['192.168.100.60:9104'] #重启prometheus服务 [root@server /usr/local/prometheus]# systemctl restart prometheus.service
在浏览器查看mysqld-exporter添加是否成功
通过grafana展示prometheus数据
#如果下载不下来,可以去官网下载然后上传https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/Packages wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.1-1.x86_64.rpm [root@server ~]# yum install initscripts fontconfig -y [root@server ~]# yum install -y grafana-enterprise-10.4.1-1.x86_64.rpm [root@server ~]# systemctl start grafana-server.service
启动后访问地址192.168.100.50:3000
初始化密码和用户名都是admin
进入grafana后添加datasources数据源,grafana模板对接的是prometheus数据源,所以添加的ip我觉得只能是服务端ip:9090,纯属个人经验猜测,如果有误,欢迎评论指导,谢谢啦
界面右上角的+号选择import dashboard导入模板