千家信息网

CentOS 7.7 yum方式安装配置Zabbix 4.0 LTS详解(一)

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,一、Zabbix相关知识简介:1、监控的维度:监控内容监控方式物理硬件:CPU温度、主板温度、风扇转速、电压、功率等IPMI、机房巡检操作系统:CPU负载、内存使用率、磁盘使用率、磁盘I/O、网卡流量
千家信息网最后更新 2024年11月23日CentOS 7.7 yum方式安装配置Zabbix 4.0 LTS详解(一)

一、Zabbix相关知识简介:

1、监控的维度:

监控内容

监控方式

物理硬件:CPU温度、主板温度、风扇转速、电压、功率等

IPMI、机房巡检

操作系统:CPU负载、内存使用率、磁盘使用率、磁盘I/O、网卡流量等

Linux模板

应用软件:Nginxphp-fpmRedisMySQLTomcat

定制开源模板

业务:业务状态、网页速度、PVUVIP、活跃用户数、每日成交量等

腾讯分析、Matomo

交换机、路由器、UPS等网络设备

SNMP

日志

ELKGoAccessAWStats

说明:PVUVIP名词解释

PVPage View,访问量,即页面浏览量或点击量,衡量网站用户访问的网页数量,在一定统计周期内用户每打开或刷新1个页面就记录1次,多次打开或刷新同1页面则浏览量累计。

UVUnique Visitor,独立访客,统计1天内访问某站点的用户数(以cookie为依据),访问网站的1台电脑客户端为1个访客,可以理解成访问某网站的电脑的数量,网站判断来访电脑的身份是通过来访电脑的cookies实现的,如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的,如果用户不保存cookies访问、清除了cookies或更换设备访问,计数会加100:00-24:00内相同的客户端多次访问只计为1个访客。

IPInternet Protocol,独立IP数,指1天内多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量,同一IP不管访问了几个页面,独立IP数均为1,不同的IP浏览页面,计数会加1IP是基于用户广域网IP地址来区分不同的访问者的,多个用户(多个局域网IP)在同1个路由器(同1个广域网IP)内上网,可能被记录为1个独立IP访问者,如果用户不断更换IP,则有可能被多次统计。

2、Zabbix组件:

(1)Zabbix Server:负责接收Zabbix AgentZabbix Proxy发送的报告信息,并负责组织配置信息、统计信息及操作数据等。

(2)Zabbix Database:用于存储所有Zabbix的配置信息及监控数据的数据库,监控数据包括

a、历史数据:每次采样的结果,保存时长相对较短

b、趋势数据:聚合数据,保存相对较长周期内的数据

(3)Zabbix WebZabbixGUI接口,管理员通过Web界面管理Zabbix配置以及查看Zabbix相关监控信息,可以单独部署在独立的服务器上。

(4)Zabbix Agent:部署在被监控主机上,负责收集被监控主机的数据,并发往Zabbix ServerZabbix Proxy

(5)Zabbix Proxy:可选组件,用于分布式监控环境,收集局部区域内Zabbix Agent的监控数据,并统一发往Zabbix Server

说明:一般情况下,将Zabbix Agent部署在被监控主机上采集数据,报告给负责监控的中心主机,中心主机也就是master/agent模型中的master,负责监控的中心主机被称为Zabbix ServerZabbix Server将从Zabbix Agent接收到的信息存储于Zabbix Database中,如果管理员需要查看各种监控信息,则需要使用PHP编写的Zabbix Web,且依赖于LAMP环境,不管是Zabbix Server,或Zabbix Web,都需要连接到Zabbix Database获取相关数据。

3、Zabbix常用术语:

(1)host:主机,需要被Zabbix监控的对象,主机必须属于某个主机组。

(2)host group:主机组,是具有相同属性、特征、角色的多个主机组成的逻辑单元。

(3)item:监控项,一个特定监控指标的相关数据,这些数据来自于被监控对象,监控项是Zabbix进行数据收集的核心,没有监控项将没有数据,相对某监控对象来说,每个监控项都由"key"进行标识。

(4)key:键,如果想要获取监控项对应的数据,则必须通过某个key去获取,Zabbix中自带一些key,这些key往往比较通用,通过这些key可以监控CPU、内存、硬盘等常用指标,获取不同的指标信息,但如果这些自带的key无法满足监控需求时,也可以自定义key,通过自定义key执行相应的操作。

(5)trigger:触发器,一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在其合理范围内,即阈值,接收到的数据量达到阈值时,触发器状态将从"OK"转变为"Problem",当数据量再次回归到合理范围时,其状态将从"Problem"转换回"OK"。

(6)event:事件,当触发器的状态发生改变时,会产生对应的事件,由触发器的状态改变而产生的事件被称为"触发器事件",Zabbix中,事件分为触发器事件、自动发现事件、自动注册事件和内部事件。

(7)action:动作,指对于特定事件事先定义的处理方法,包含操作(如发送通知)和条件(何时执行操作)。

(8)escalation:报警升级,发送告警或执行远程命令的自定义方案,如每隔5分钟发送一次告警,共发送5次等。

(9)media:媒介,发送通知的手段或通道,如EmailJabberSMS等。

(10)notification:通知,通过选定的媒介向用户发送有关某事件的信息。

(11)remote command:远程命令,预定义的命令,可在被监控主机处于某特定条件下时自动执行。

(12)template:模板,用于快速定义被监控主机的预设条目集合,通常包含了itemtriggergraphscreenapplication以及low-level discovery rule,模板可直接链接至单个主机。

(13)application:应用,一组item的集合。

(14)web scennarioweb场景,用于检测web站点可用性的一个或多个HTTP请求。

(15)frontend:前端,Zabbixweb接口。

4、Zabbix支持的通信方式:

(1)Agent:通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的Agent,推荐首选此种方式。

(2)SSH/Telnet:通过远程控制协议进行通信。

(3)SNMPSimple Network Management Protocol,简单网络管理协议,通过SNMP协议与被监控对象进行通信,通常无法在路由器、交换机这种硬件上安装Agent,但是这些硬件往往都支持SNMP协议,SNMP是一种比较久远的、通行的协议,大部分网络设备都支持这种协议,其实SNMP协议的工作方式也可以理解为master/agent的工作方式,只不过是在这些设备中内置了SNMPAgent而已。

(4)IPMIIntelligent Platform Management Interface,智能平台管理接口,通过IPMI接口进行监控,可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。

(5)JMXJava Management ExtensionsJava管理扩展,监控JVM虚拟机时,较常使用此种方式。

5、Zabbix的工作模式:

(1)主动模式:Zabbix Agent会将采集完的数据主动发送给Zabbix Server,可减轻Zabbix Server的压力。

(2)被动模式:Zabbix Agent不主动发送数据,而是等待Zabbix Server过来拉取数据,默认为被动模式。

说明:不管是主动模式还是被动模式,都是对于Zabbix Agent来说的,主动模式与被动模式可以并存


二、准备工作:

1、Zabbix版本选择:https://www.zabbix.com/life_cycle_and_release_policy

备注:建议选择LTSLong Term Support,长期支持)版本

2、相关网址:

(1)Zabbix下载地址:https://www.zabbix.com/download/

(2)Zabbix 4.0 LTS中文产品手册:https://www.zabbix.com/documentation/4.0/zh/manual

3、演示环境:

IP

操作系统

主机名

角色

192.168.0.120

CentOS 7.7 x86_64

zabbix-server

Zabbix DatabaseZabbix ServerZabbix WebZabbix Agent

192.168.0.121

CentOS 7.7 x86_64

sh-proxy

Zabbix Proxy

192.168.0.122

CentOS 7.7 x86_64

node-122

Zabbix Agent

192.168.0.130

Windows Server 2012 R2

node-130

Zabbix Agent

4、所有CentOS节点执行如下操作:

(1)关闭SELinuxfirewalld

(2)配置服务器时间同步

(3)配置主机名

(4)配置hosts文件:

# vim /etc/hosts

192.168.0.120 zabbix-server

192.168.0.121 sh-proxy

192.168.0.122 node-122

(5)配置epel源:# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm

(6)配置Zabbixyum源:

# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

# rpm -ql zabbix-release

# cat /dev/null > /etc/yum.repos.d/zabbix.repo

# vim /etc/yum.repos.d/zabbix.repo

[aliyun-zabbix]

name=Aliyun Zabbix Repository - $basearch

baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591


[aliyun-zabbix-non-supported]

name=Aliyun Zabbix Repository non-supported - $basearch

baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

5、zabbix-server节点搭建LAMP环境:

说明:Zabbix Web依赖于LAMP环境,安装zabbix-web-mysql4.0.14)软件包时默认会自动安装httpd2.4.6)、PHP5.4.16)、zabbix-web4.0.14)等相关软件包,此处使用yum方式安装PHP 7.2版本。CentOS 7.7MariaDB的版本为5.5.64,版本较低,升级为MariaDB 10.4版本后在导入create.sql文件时会提示"ERROR 1118 (42000) at line 1278: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.",所以Zabbix Database使用MySQL 5.7。此处不单独安装httpd,并将Zabbix DatabaseZabbix ServerZabbix Web都部署在zabbix-server节点上,实际生产环境中可以分开部署。

(1)安装配置MySQL 5.7

a、查看系统中是否已经存在MariaDB

# rpm -qa | grep -i mariadb --> mariadb-libs-5.5.64-1.el7.x86_64

# yum -y remove mariadb-libs

b、安装mysql57-community-release-el7.rpm

# rpm -ivh http://repo.mysql.com/mysql57-community-release-el7.rpm

备注:安装后会在/etc/yum.repos.d目录中生成mysql-community-source.repomysql-community.repo

c、安装MySQL 5.7相关软件包:

# yum list all | grep mysql-community

# yum -y install mysql-community-client mysql-community-common mysql-community-devel mysql-community-libs mysql-community-libs-compat mysql-community-server mysql-community-test

d、初始化MySQL 5.7# mysqld --initialize --user=mysql --datadir=/var/lib/mysql

备注:初始化之前确保/var/lib/mysql目录为空

e、修改my.cnf配置文件:

# mv /etc/my.cnf /etc/my.cnf.bak

# vim /etc/my.cnf

[mysqld]

port=3306

socket=/var/lib/mysql/mysql.sock

datadir=/var/lib/mysql

pid-file=/var/run/mysqld/mysqld.pid

log-error=/var/log/mysqld.log

lower_case_table_names=1

character_set_server=utf8mb4

collation_server=utf8mb4_general_ci

innodb_file_per_table=1

skip_name_resolve=1

slow_query_log=1

slow_query_log_file=mysql-slow.log

symbolic-links=0

explicit_defaults_for_timestamp=1

server_id=1

sync_binlog=1

innodb_flush_log_at_trx_commit=1

log_bin=mysql-bin

log_bin_index=mysql-bin.index

binlog_format=row

f、启动MySQL

# systemctl start mysqld

# systemctl status mysqld

# ps aux | grep mysqld

# ss -tunlp | grep -w :3306

# tail -100 /var/log/mysqld.log

g、配置开机自启:# systemctl enable mysqld

h、查看root@localhost用户的初始密码:# grep password /var/log/mysqld.log

i、配置安全向导:# mysql_secure_installation

j、授权root用户远程登录:

# mysql -uroot -p

mysql> create user root@'192.168.0.%' identified by '123456';

mysql> grant all on *.* to root@'192.168.0.%';

mysql> flush privileges;

(2)安装配置PHP 7.2

a、安装webtatic-release.rpm# rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

b、安装PHP 7.2相关软件包:

# yum list all | grep php

# yum -y install mod_php72w php72w-cli php72w-common php72w-devel php72w-fpm php72w-gd php72w-ldap php72w-mbstring php72w-mysqlnd php72w-opcache php72w-xml

c、查PHP版本:# php -version


三、zabbix-server节点部署Zabbix ServerZabbix WebZabbix Agent

1、部署Zabbix Server

(1)安装zabbix-server-mysql软件包:# yum -y install zabbix-server-mysql

(2)查看Zabbix Server版本:# zabbix_server -V

(3)创建zabbix数据库和'zbxuser'@'192.168.0.%'用户,并授权'zbxuser'@'192.168.0.%'用户远程管理:

# mysql -uroot -p

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> create user 'zbxuser'@'192.168.0.%' identified by '123456';

mysql> grant all on zabbix.* to 'zbxuser'@'192.168.0.%';

mysql> flush privileges;

(4)导入create.sql文件,初始化zabbix数据库(以下方法三选一):

# zcat /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql.gz | mysql -uzbxuser -h292.168.0.120 -p zabbix

# gzip -d /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql.gz

mysql> use zabbix;

mysql> source /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql

# gzip -d /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql.gz

# mysql -uzbxuser -h292.168.0.120 -p zabbix < /usr/share/doc/zabbix-server-mysql-4.0.14/create.sql

备注:gzip -d执行后自动删除create.sql.gz文件,保留解压后的create.sql文件

(5)检查zabbix数据库中是否创建了表:

# mysql -uzbxuser -h292.168.0.120 -p123456 -e 'use zabbix; show tables;' 2> /dev/null | wc -l

(6)修改zabbix_server.conf配置文件:

# rpm -ql zabbix-server-mysql

# cd /etc/zabbix

# cp zabbix_server.conf{,.bak}

# vim zabbix_server.conf

修改前

修改后

# ListenPort=10051

ListenPort=10051

# LogType=file

LogType=file

LogFile=/var/log/zabbix/zabbix_server.log

保持默认

LogFileSize=0

保持默认

PidFile=/var/run/zabbix/zabbix_server.pid

保持默认

# DBHost=localhost

DBHost=192.168.0.120

DBName=zabbix

保持默认

DBUser=zabbix

DBUser=zbxuser

# DBPassword=

DBPassword=123456

# DBSocket=

DBSocket=/var/lib/mysql/mysql.sock

# DBPort=

DBPort=3306

# ListenIP=127.0.0.1

ListenIP=192.168.0.120

AlertScriptsPath=/usr/lib/zabbix/alertscripts

保持默认

ExternalScripts=/usr/lib/zabbix/externalscripts

保持默认

# FpingLocation=/usr/sbin/fping

FpingLocation=/usr/sbin/fping

# AllowRoot=0

AllowRoot=0

# User=zabbix

User=zabbix

(7)启动Zabbix Server

# systemctl start zabbix-server

# systemctl status zabbix-server

# ps aux | grep zabbix_server

# ss -tunlp | grep -w 10051

# tail -100 /var/log/zabbix/zabbix_server.log

(8)配置开机自启:# systemctl enable zabbix-server

2、部署Zabbix Web

(1)安装zabbix-web-mysql软件包:# yum -y install zabbix-web-mysql

(2)修改httpd.conf配置文件:

# vim /etc/httpd/conf/httpd.conf

修改前

修改后

#ServerName www.example.com:80

ServerName 192.168.0.120:80

(3)启动httpd

# systemctl start httpd

# systemctl status httpd

# ps aux | grep httpd

# ss -tunlp | grep -w :80

(4)配置开机自启:# systemctl enable httpd

(5)浏览器访问http://192.168.0.120/zabbix


说明:/etc/httpd/conf.d/zabbix.conf配置文件中已针对PHP 5.4优化,但目前安装的是PHP 7.2,需要修改/etc/php.ini配置文件,Zabbix相关PHP网页全存放在/usr/share/zabbix目录下

# vim /etc/php.ini

修改前

修改后

post_max_size = 8M

post_max_size = 16M

max_execution_time = 30

max_execution_time = 300

max_input_time = 60

max_input_time = 300

;date.timezone =

date.timezone = Asia/Shanghai

重启httpd# systemctl restart httpd

刷新网页,必须所有的检查项都为"OK"才能继续:

安装后生成的配置文件:/etc/zabbix/web/zabbix.conf.php

登录Zabbix Web,用户名Admin,密码zabbix

3、Zabbix Web简单配置:

(1)修改Admin用户默认密码:

Administration --> Users --> Admin --> Change password --> 输入2次新密码root@123 --> Update

新密码:root@123

退出重新登录

(2)禁用guest用户:

Administration --> User groups --> 勾选Guests --> Disable

Administration --> Users --> guest用户的状态已变为Disabled

(3)修改刷新不支持项的时间间隔:

Administration --> General --> Other --> Refresh unsupported items默认10m修改为30s --> Update

(4)调整每页显示的行数,默认为50行:

右上角Admin--> User --> Rows per page --> Update

(5)开启前端消息声音:

右上角Admin--> Messaging --> Frontend messaging --> Update

4、部署Zabbix Agent

说明:出现上述监控提示是因为zabbix-server节点没有安装Zabbix Agent

(1)安装zabbix-agent软件包:# yum -y install zabbix-agent

(2)修改zabbix_agentd.conf配置文件:

# cd /etc/zabbix

# cp zabbix_agentd.conf{,.bak}

# vim zabbix_agentd.conf

修改前

修改后

PidFile=/var/run/zabbix/zabbix_agentd.pid

保持默认

# LogType=file

LogType=file

LogFile=/var/log/zabbix/zabbix_agentd.log

保持默认

LogFileSize=0

保持默认

# EnableRemoteCommands=0

EnableRemoteCommands=1

Server=127.0.0.1

Server=192.168.0.120

# ListenPort=10050

ListenPort=10050

# ListenIP=0.0.0.0

ListenIP=192.168.0.120

ServerActive=127.0.0.1

ServerActive=192.168.0.120

Hostname=Zabbix server

Hostname=zabbix-server

# AllowRoot=0

AllowRoot=0

# User=zabbix

User=zabbix

Include=/etc/zabbix/zabbix_agentd.d/*.conf

保持默认

# UnsafeUserParameters=0

UnsafeUserParameters=1

说明:

Server:使用于被动模式,指定允许哪台Zabbix Server主动拉取当前Zabbix Agent的数据,此IPZabbix ServerIP,实现基于IP的访问控制,如果有多个IP,使用逗号分隔。

ServerActive:使用于主动模式,指定Zabbix Agent将信息主动推送至哪台Zabbix Server,如果有多个IP,使用逗号分隔。

(3)启动Zabbix Agent

# systemctl start zabbix-agent

# systemctl status zabbix-agent

# ps aux | grep zabbix_agent

# ss -tunlp | grep -w 10050

# tail -100 /var/log/zabbix/zabbix_agentd.log

(4)配置开机自启:# systemctl enable zabbix-agent

5、配置Zabbix Web

Configuration --> Hosts --> Zabbix server --> Update

修改前

修改后

Host name: Zabbix server

Host name: zabbix-server

Visible name:

Visible name: Zabbix server

IP address: 127.0.0.1

IP address: 192.168.0.120

说明:上述Zabbix Web中的Host name值要与该节点的主机名,以及/etc/zabbix/zabbix_agentd.conf配置文件中的Hostname参数值三者相同

备注:zabbix-server节点完成对自身状态的监控


0