Zabbix
原理:
五个组件:
1.server:核心引擎,负责收集和接收来自被监控设备的数据同事与其他组件进行通信,管理着所有
规则,包括触发器,告警,监控采集等
2.GUI:这是 web 管理界面
3.database:这是数据存储库
4.proxy:这是一个可选的组件,利用它来实现分布式监控架构或分担Zabbix Server的负载,提高
Zabbix Server的性能。它的主要功能是协助Zabbix Server从被监视的主机或设备收集数
据。Zabbix proxy收集的数据首先存放到本地临时数据库中,随后会定时发送到Zabbix
server中,即便Zabbix Server和Zabbix proxy的连接断开也不会导致数据的丢失(数据保
留的时间可在proxy的配置文件中设置)
5.agent:客户端
zabbix 5.0 安装教程(在线&离线安装)
- 一、在线安装
-
- \1. 关闭防火墙和selinux
- \2. 配置zabbix版本yum源
- \3. 安装 zabbix server 和 agent
- \5. 安装mariaDB数据库,并设置开机自启动
- \6. 使用以下命令初始化 mariaDB并配置 root 密码
- \7. 导入 zabbix 数据库,用户为zabbix,密码为步骤6设置的密码
- \8. 修改 zabbix_server.conf 里的数据库密码
- \9. 修改 zabbix 的 php 配置文件中的时区
- \10. 启动相关服务,并配置开机自动启动
- \11. 访问zabbix前端页面
一、在线安装
1. 关闭防火墙和selinux
#关闭防火墙并设置开机不启动
systemctl stop firewalld
systemctl disable firewalld#关闭selinux
setenforce 0 #临时
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #永久
reboot #永久关闭selinux要重启服务器才生效,可暂时不用重启,等装完zabbix再执行
2. 配置zabbix版本yum源
官网:http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# 执行完后会在/etc/yum.repos.d/下面自动生成yum文件(zabbix.repo),将官方源改为国内源
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
# 清除缓存即可
yum clean all
3. 安装 zabbix server 和 agent
yum install zabbix-server-mysql zabbix-agent -y
如果报图示错误,需要安装Percona-XtraDB依赖
wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
4.安装zabbix前端组件
[root@localhost ~]# yum install centos-release-scl -y
编辑配置文件
[root@localhost ~]# vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
enabled=1 #0修改为1(1-启用;0-不启用)
安装zabbix前端页面、初始化数据库、PHP及httpd组件
[root@localhost ~]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
5. 安装mariaDB数据库,并设置开机自启动
注意:安装mariaDB先确保目标环境没有mysql相关依赖,不然会冲突
检查命令:rpm -qa | grep mysql
如果已有mysql环境,可跳过此步骤
yum install mariadb-server -y
systemctl enable --now mariadb
6. 使用以下命令初始化 mariaDB并配置 root 密码
mysql_secure_installation
mysql -u root -p (输入上一步设置的root密码进入数据库)create database zabbix character set utf8 collate utf8_bin; #创建zabbix数据库create user zabbix@localhost identified by 'password'; #创建用户,其中password为上一步设置的密码grant all privileges on zabbix.* to zabbix@localhost; #给zabbix用户授权FLUSH PRIVILEGES; #让修改生效quit; #退出mariaDB数据库
7. 导入 zabbix 数据库,用户为zabbix,密码为步骤6设置的密码
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
8. 修改 zabbix_server.conf 里的数据库密码
vi /etc/zabbix/zabbix_server.conf
#找到 # DBPassword= ,将数据库密码改为zabbix数据库的密码(DBPassword=password),保存退出。
9. 修改 zabbix 的 php 配置文件中的时区
vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#去掉php_value[date.timezone] 前面的注释,然后将值改为:php_value[date.timezone] = Asia/Shanghai
10. 启动相关服务,并配置开机自动启动
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
11. 访问zabbix前端页面
1)使用浏览器访问http://ip/zabbix,点击Next step
2)检查一下相关组件是否正常,特别是:date.timezone,如果报错,请检查步骤9设置是否正确。
3)配置连接数据库 , 输入zabbix帐户的密码,点击“Next step”
4)直接点击“Next step”
5)直接点击“Next step”
6)看到以上提示,说明安装成功,点击"Finish"
7)进入登录界面, 用户名:Admin,密码:zabbix
至此,zabbix在线安装就算完成了
二、zabbix-agent安装
1.配置zabbix版本yum源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# 执行完后会在/etc/yum.repos.d/下面自动生成yum文件(zabbix.repo),将官方源改为国内源
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
# 清除缓存即可
yum clean all
2.安装zabbix agent
yum install -y zabbix-agent
3.配置zabbix_agentd.conf
[root@test1 ~]# vim /etc/zabbix/zabbix_agentd.conf
[root@test1 ~]# cat /etc/zabbix/zabbix_agentd.conf |grep -Ev “$|#”
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.0.127 #被动发现 IP为服务端地址
ServerActive=192.168.0.127 #主动发现 IP为服务端地址
Hostname=test1
Include=/etc/zabbix/zabbix_agentd.d/*.conf
4.启动zabbix_agent
systemctl start zabbix-agent
5.设置开机自启动
systemctl enable zabbix-agent
6.agented.conf配置说明
AllowRoot 默认值:0 是否允许使用root身份运行zabbix,如果值为0,并且是在root环境下,zabbix会尝试使用zabbix用户运行,如果不存在会告知zabbix用户不存在。 0 - 不允许 1 - 允许
BufferSend 取值范围:1-3600 默认值:5 数据存储在buffer中最长多少秒
BufferSize 取值范围:2-65535 默认值:100 buffer最大值,如果buffer满了,zabbix将会将检索到的数据发送给zabbix server或者proxy
DebugLevel 取值范围:0-5 默认值:3 指定日志级别 0 - basic information about starting and stopping of Zabbix processes 1 - critical级别 2 - error级别 3 - warnings级别 4 - debug级别 5 - extended debugging (与级别4一样. 只能使用runtime control 来设置.)
EnableRemoteCommands 默认值:0 是否运行zabbix server在此服务器上执行远程命令 0 - 禁止 1 - 允许
HostMetadata 取值范围:0-255 字符 仅用于主机自动注册功能,如果当前值为定义,那么它的值默认为HostMetadataItem的值。这个选项在2.2.0之后加入,并且确保支付不能超过限制,以及字符串必须是UTF8,否则服务器无法启动
HostMetadataItem 功能同上,如果HostMetadata值未设置,这个配置才有效。支持使用UserParameters、alias、system.run[]
Hostname 默认值:HostnameItem配置的值 主机名,必须唯一,区分大小写。Hostname必须和zabbix web上配置的一直,否则zabbix主动监控无法正常工作。为什么呢?因为agent拿着这个主机名去问server,我有配置主动监控项 吗?server拿着这个主机名去配置里面查询,然后返回信息。 支持字符:数字字母、’.’、’ '、 ‘_’、 ‘-’,不超过64个字符
HostnameItem 默认值:system.hostname 设置主机名,只有当HostMetadata没设置,她才生效。不支持UserParameters 、aliases,支持system.run[]
Include 包含自配置文件,不同的配置写到不同的文件中,然后include,配置文件会显得规范。例如: /absolute/path/to/config/files/*.conf. Zabbix 2.4.0开始支持正则表达式。
ListenIP 默认值:0.0.0.0 监听IP地址,默认为所有接口,多个ip之间使用逗号分隔
ListenPort 取值范围:1024-32767 默认值10050 监听端口
LoadModule 加载模块文件,可以写多个 格式: LoadModule= 必须配置LoadModulePath
LoadModulePath 模块路径,绝对路径
LogFile 日志文件路径 如果未配置,日志会记录到syslog中
LogFileSize 取值范围:0-1024 默认值:1 日志文件大小,单位为MB。 0 - 关闭自动轮滚. 备注:如果日志文件到达了最大值并且文件轮滚失败,那么老日志文件会被清空掉。
LogRemoteCommands 默认值:0 记录原型执行的shell命令日志,级别为warrning 0 - disabled 1 - enabled
MaxLinesPerSecond 取值范围:1-1000 默认值:100 处理监控类型为log何eventlog日志时,agent每秒最大发送的行数。默认为100行
PidFile 默认值:/tmp/zabbix_agentd.pid PID文件名
RefreshActiveChecks 取值范围:60-3600 默认值:120 多久时间(秒)刷新一次主动监控配置信息,如果刷新失败,那么60秒之后会重试一次
Server zabbix server的ip地址,多个ip使用逗号分隔
ServerActive zabbix 主动监控server的ip地址,使用逗号分隔多IP,如果注释这个选项,那么当前服务器的主动监控就被禁用了
SourceIP zabbix对外连接的出口IP地址
StartAgents 取值范围:0-100 默认值:3 zabbix启动之后开启被动监控的进程数量,如果设置为0,那么zabbix被动监控被禁用,并且不会监听相应端口,也就是说10050端口不会开启。
Timeout 默认值:1-30 默认值:3 超时时间,单位秒
UnsafeUserParameters 取值范围:0,1 默认值: 0 允许所有字符的参数传递给用户定义的参数。
User 默认值:zabbix 运行zabbix程序的用户,如果AllowRoot被禁用,才有效果
UserParameter 用户自定义key,格式: UserParameter=, 例如:serParameter=system.test,who|wc -l