Zabbix
zabbix除了可以监控linux服务器之外,还可以监控路由器、交换机、容器等,全方位监控
Zabbix对服务器的监控是通过在服务器上部署“间谍”程序zabbix-agent获取数据,但对于路由器、交换机等机器的监控不能进行部署,这个时候就是在网页上创建主机的时候添加SNMP接口(simple network manager protocol 简单网络管理协议),要在路由器里面启动这个协议,Zabbix通过这个协议连接到路由器
Prometheus监控容器更加方便
zabbix和prometheus的区别:
- 数据存储:
Zabix使用关系型数据库如MySQL,使用外部数据库来存储数据
Prometheus使用时序性数据库TSDB - 架构和数据模型:
Zabbix有server端和agent端,agent用于部署在目标机器上,并提供数据指标给到server,它们之间基于TCP协议进行通信。其中有一个中心服务器负责收集和处理数据。
Prometheus基于客户端进行数据的收集,Server端会定时与客户端进行交互,并通过pull方式获取相关的监控指标。 - 监控方式:
Zabbix通过轮询的方式来监控,定期发送请求
Prometheus通过主动拉取的方式获取数据 - 查询:
Zabbix在查询方面功能较弱,只能通过Web界面做一些有限度的操作,或者直接到数据库使用SQL进行查询。
Prometheus提供了自带的查询语言PromQL,该语言非常灵活、简洁且功能强大,可以与函数和运算符配合,进行计算、过滤、分组等操作,同时支持正则表达式。
Zabbix原理图:
安装
注意关闭防火墙和selinux
# 关闭防火墙和selinux service firewalld stop systemctl disable firewalld setenforce 0 # 将selinux配置文件enforcing改为disabled,永久关闭 sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
1、安装Zabbix相关软件
https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/
在网站上下载文件到windows,然后传到服务器中,下载的文件:
安装资源仓库包,得到Zabbix的repo文件:
rpm -ivh zabbix-release-4.4-1.el7.noarch.rpm
ls /etc/yum.repos.d/
安装其他的包
yum install epel-release -y
yum install zabbix-* -y
2、安装mariadb数据库
zabbix会将搜集到的数据存到数据库中
1、安装mariadb
yum install mariadb mariadb-server
启动mariadb进程,登录到mariadb里
service mariadb start
systemctl enable mariadb.service
mysql -uroot -p
# mariadb密码初始为空,直接按回车即可
2、新建zabbix库
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
3、创建并授权一个用户来操作zabbix这个库
MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'zabbix123';
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost';
localhost
:只能在本地登录
4、导入数据
cd /usr/share/doc/zabbix-server-mysql-4.4.6/
gunzip create.sql.gz
cat create.sql |mysql -uzabbix -p'zabbix123' zabbix
# 或mysql -uzabbix -p'zabbix123' zabbix <create.sql
3、修改Zabbix的配置文件并启动
cd /etc/zabbix
vim zabbix_server.conf
# Default:
DBHost=localhost # 把91行的注释去掉
# Default:
DBPassword=zabbix123 # 添加密码
# 启动zabbix
service zabbix-server start
zabbix_server默认监听10051端口,间谍程序zabbix-agent会打开10050端口
4、修改时区
cd /etc/php-fpm.d
vim zabbix.conf
php_value[date.timezone] = Asia/Shanghai
# 去掉分号,修改地区为亚洲上海
重启生效
systemctl restart zabbix-server zabbix-agent httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm mariadb
测试
zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all]"
如果有返回值,就说明成功
这个时候就可以打开浏览器访问 192.168.232.170/zabbix
web界面数据库用户名和密码就是之前创建的,zabbix的用户名为Admin,密码为zabbix
日志文件:
/var/log/zabbix/