码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix 4.0 安装配置(一)

时间:2020-01-20 14:37:41      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:通知   list   orm   wc -l   temp   链接   接口   界面   class   

一、Zabbix 组件

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

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

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

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

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

(4)Zabbix Agent:部署在被监控主机上,负责收集被监控主机的数据,并发往Zabbix Server或Zabbix 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获取相关数据。

二、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:媒介,发送通知的手段或通道,如Email、Jabber或SMS等。

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

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

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

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

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

(15)frontend:前端,Zabbix的web接口。

三、Zabbix支持的通信方式:

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

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

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

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

(5)JMX:Java Management Extensions,Java管理扩展,监控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.11.206  

CentOS   7.6 x86_64

web01

Zabbix   Database、Zabbix   Server、Zabbix   Web、Zabbix   Agent

192.168.11.207

CentOS   7.6 x86_64

web02

Zabbix   Agent

192.168.11.208

CentOS   7.6 x86_64

proxy

Zabbix   Proxy

192.168.11.100

windows 10

node

Zabbix   Agent

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

(1)关闭SELinux和firewalld

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

(3)配置主机名

(4)配置hosts文件:

# vim /etc/hosts

192.168.11.206 web01

192.168.11.207 web02

192.168.11.208 proxy

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

(6)配置Zabbix的yum源:

# 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

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

说明:Zabbix Web依赖于LAMP环境,安装zabbix-web-mysql4.0.16)软件包时默认会自动安装httpd2.4.6)、PHP5.4.16)、zabbix-web4.0.16)等相关软件包,此处使用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.11.%‘ identified by ‘123456‘;

mysql> grant all on *.* to root@‘192.168.11.%‘;

mysql> flush privileges;

#mysql -V

(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 Server、Zabbix Web和Zabbix 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.11.%‘用户,并授权‘zbxuser‘@‘192.168.11.%‘用户远程管理:

# mysql -uroot -p

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> create user ‘zbxuser‘@‘192.168.11.%‘ identified by ‘123456‘;

mysql> grant all on zabbix.* to ‘zbxuser‘@‘192.168.11.%‘;

mysql> flush privileges;

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

# zcat /usr/share/doc/zabbix-server-mysql-4.0.16/create.sql.gz | mysql -uzbxuser -h192.168.11.206 -p zabbix

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

mysql> use zabbix;

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

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

# mysql -uzbxuser -h192.168.11.206 -p zabbix < /usr/share/doc/zabbix-server-mysql-4.0.16/create.sql

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

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

# mysql -uzbxuser -h192.168.11.206 -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.11.206

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.11.206

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.11.206: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.11.206/zabbix #安装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)禁用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 (200)--> Update

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

Admin --> Messaging --> Frontend messaging[勾上√,全选] --> Update

4、部署Zabbix Agent:

出现ZBX没有变绿,是因为没有安装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.11.206

# ListenPort=10050

ListenPort=10050

# ListenIP=0.0.0.0

ListenIP=192.168.11.206

ServerActive=127.0.0.1

ServerActive=192.168.11.206

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.11.206

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

技术图片

 

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

zabbix 4.0 安装配置(一)

标签:通知   list   orm   wc -l   temp   链接   接口   界面   class   

原文地址:https://www.cnblogs.com/comprehensive/p/12217570.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!