prometheus安装与部署
一、准备环境
1.三台服务器
prometheus服务器:192.168.242.176
被监控端服务器:192.168.242.177
grafana服务器:192.168.242.178
2. 修改主机名
vim /etc/hostname server.cluster.com
reboot
vim /etc/hosts
192.168.242.176 server.cluster.com
192.168.242.177 agent.cluster.com
1092.168.242.178 grafana.cluster.com
3.时间同步(重要)
date
#不同步需要设置
mount /dev/sr0 /mnt
yum install ntpdate -y
ntpdate cn.ntp.org.cn
4.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
iptables -F
二、安装prometheus
- 从https://prometheus.io/download/ 下载相应版本安装带服务器上(官网提供是二进制)
[root@server ~]# tar xf prometheus-2.5.0.linuxamd64.tar.gz -C /usr/local/
[root@server ~]# mv /usr/local/prometheus-2.5.0.linuxamd64/ /usr/local/prometheus
#直接使用默认配置文件启动
[root@server ~]# /usr/local/prometheus/prometheus --
config.file="/usr/local/prometheus/prometheus.yml" &
#确认端口(9090)
[root@server ~]# lsof -i:9090
- prometheus界面
通过浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面
可查看监控本机信息
- 可查看主机数据显示
- 在web主界面可通过关键字查看监控项
三、远程监控linux主机
在被监控端服务器上安装node_exporter,下载地址https://prometheus.io/download/
[root@agent ~]# tar xf node_exporter-0.16.0.linuxamd64.tar.gz -C /usr/local/
[root@agent ~]# mv /usr/local/node_exporter-0.16.0.linuxamd64/ /usr/local/node_exporter
#里面就一个启动命令node_exporter,可以直接使用此命令启动
[root@agent1 ~]# ls /usr/local/node_exporter/
LICENSE node_exporter NOTICE
[root@agent1 ~]# nohup
/usr/local/node_exporter/node_exporter &
#确认端口(9100)
[root@agent1 ~]# lsof -i:91
- 通过浏览器访问http://被监控端IP:9100/metrics就可查看node_exporter在监控端收集的信息
- 回到prometheus服务端的配置文件添加被监控端信息
#在主配置文件最后加上下面三行(注意空格的间距,保证不出错可直接复制配置文件里面经行修改)
[root@server ~]# vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent' # 取一个job名称来代表被监控的机器
static_configs:
- targets: ['192.168.242.177:9100'] # 这里改成被监控机器的IP,后面端口接9100
#改完配置文件后,重启服务
[root@server ~]# pkill prometheus
[root@server ~]# lsof -i:9090 # 确认端口没有进程占用
[root@server ~]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
[root@server ~]# lsof -i:9090
- 回到web页面查看
三、监控mysql
在被监控端上安装mysqld_exporter组件,下载地址https://prometheus.io/download/
#安装mysqld_exporter组件
[root@agent ~]# tar xf mysqld_exporter-0.11.0.linuxamd64.tar.gz -C /usr/local/
[root@agent ~]# mv /usr/local/mysqld_exporter0.11.0.linux-amd64/ /usr/local/mysqld_exporter
[root@agent1 ~]# ls /usr/local/mysqld_exporter/
LICENSE mysqld_exporter NOTICE
#安装mariadb数据库,并授权
[root@agent ~]# yum install mariadb\* -y
[root@agent ~]# systemctl restart mariadb
[root@agent ~]# systemctl enable mariadb
[root@agent ~]# mysql
MariaDB [(none)]> grant select,replication client,processON *.* to 'mysql_monitor'@'localhost' identified by '123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit
#创建一个mariadb配置文件,写上连接的用户名与密码(和上面的授权的用户名和密码要对应)
[root@agent ~]# vim /usr/local/mysqld_exporter/.my.cnf
[client]
user=mysql_monitor
password=123
#启动mysqld_exporter
[root@agent ~]# nohup /usr/local/mysqld_exporter/mysqld_exporter -config.mycnf=/usr/local/mysqld_exporter/.my.cnf &
#确认端口(9104)
[root@agent ~]# lsof -i:9104
- 回到prometheus服务器的配置文件里添加被监控的mariadb
#在主配置文件最后再加上下面三行
[root@server ~]# vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent1_mariadb'
static_configs:
- targets: ['192.168.242.177:9104'] # 这里改成被监控机器的IP,后面端口接9104
#改完配置文件后,重启服务
[root@server ~]# pkill prometheus
[root@server ~]# lsof -i:9090
[root@server ~]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
[root@server ~]# lsof -i:9090
- 回到web界面
四、grafana可视化工具
1.什么是grafana
Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警。官网:https://grafana.com/
2.使用grafana连接prometheus
- 安装grafana,下载地址:https://grafana.com/grafana/download
[root@grafana ~]# rpm -ivh grafana-5.3.4-1.x86_64.rpm
#启动服务
[root@grafana ~]# systemctl start grafana-server
[root@grafana ~]# systemctl enable grafana-server
确认端口(3000)
[root@grafana ~]# lsof -i:3000
若安装时出现依赖检测失败,就先安装所需的插件。yum install urw-fonts
- 通过浏览器访问 http:// grafana服务器IP:3000。账号密码默认admin
- 添加数据源
- 为添加的数据源制作图形显示
保存(ctrl+s)–>自定义名称–>save
3.grafana显示Mysql监控数据
在grafana上修改配置文件,并下载安装mysql监控的dashboard(可以看作是开发人员开发的监控模板)
#在grafana配置文件里最后加上以下三行
[root@grafana ~]# vim /etc/grafana/grafana.ini
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards
[root@grafana ~]# cd /var/lib/grafana/
#克隆
[root@grafana grafana]# git clone https://github.com/percona/grafana-dashboards.git
[root@grafana grafana]# cp -r grafanadashboards/dashboards/ /var/lib/grafana/
#重启grafana服务
[root@grafana grafana]# systemctl restart grafana-server
导入原先克隆的/var/lib/grafana/dashboards/下MySQL_Qverview.json
导入报prometheus数据源找不到,因为这些json文件默认找Prometheus的数据源,但前面我们建立的的是prometheus_data。即我们要修改,然后刷新就可以了
五、grafana+onealert报警
- 要先在onealert申请账号,然后添加grafana
- 按照下面步骤来完成
- 在grafana增加通知通道
创建成功
- 配置一个报警(cpu负载监控)
- 测试mysql连接数报警