千家信息网

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

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,一、Zabbix相关知识简介:1、监控的维度:监控内容监控方式物理硬件:CPU温度、主板温度、风扇转速、电压、功率等IPMI、机房巡检操作系统:CPU负载、内存使用率、磁盘使用率、磁盘I/O、网卡流量
千家信息网最后更新 2024年09月22日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节点完成对自身状态的监控


监控 数据 配置 用户 主机 文件 事件 信息 模式 状态 主动 版本 软件 方式 对象 节点 软件包 管理 多个 环境 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全与技术学院分数线 美的互联网科技 数据库脱敏 广东厂家 羚客杭州网络技术有限公司 网络安全法中有关职业禁入的规定 苹果qq购买会员连接不上服务器 win10玩300英雄服务器 师范生教育专题数据库 网络安全信息资产管理办法 sql用什么模型构建数据库 科密考勤机数据库连接 clay服务器下载 得益于网络技术 美国重返亚太网络安全 数据库知识和技术专业 网络安全周稿件名字 web服务器都用什么 衡阳串口服务器企业 完善国家网络安全保障体系 朝阳区推广软件开发要求 网络安全与技术学院分数线 广州脉推网络技术有限公司 网络安全从我做起读后感 保证网络安全的五要素 无名杀本地服务器未运行 网络安全职能部门有哪些 加强监督构建网络安全作文 ns我的世界可以连接服务器吗 网络安全审查办法自什么时候开始 深圳市宝区互联网晓程科技
0