Zabbix40LTS监控配置手册yvan.docx
《Zabbix40LTS监控配置手册yvan.docx》由会员分享,可在线阅读,更多相关《Zabbix40LTS监控配置手册yvan.docx(82页珍藏版)》请在冰豆网上搜索。
Zabbix40LTS监控配置手册yvan
Zabbix监控配置手册
系统部
2019年7月2号
版本记录
文档版本号
操作类型
修改内容
操作人
操作时间
审核人
说明
v1.0
文档创建
文档创建
潘宇峰
20190702
v1.1
文档增加
增加监控项和脚本
潘宇峰
20190711
v1.2
增加grafana
增加grafana接入
潘宇峰
20190712
安装前说明
1、zabbix安装方式包含多种:
yum源、源码、images,本文教程使用离线yum安装,以便学习过程;
2、生产环境推荐ovf模板化部署,此方式能保持一致性和高效率;
3、被监控方式推荐zabbixagent采集,硬件设备使用snmpv2协议;
4、严禁将内网机器接入公网yum安装;
5、不推荐暴力方式关闭防火墙。
1安装规划
1.1硬件规划
1.1.1官方配置参考
规模
平台
CPU/内存
数据库
受监控的主机数量
小型
CentOS
VirtualAppliance
MySQLInnoDB
100
中型
CentOS
2CPUcores/2GB
MySQLInnoDB
500
大型
RedHatEnterpriseLinux
4CPUcores/8GB
RAID10MySQLInnoDB或PostgreSQL
>1000
极大型
RedHatEnterpriseLinux
8CPUcores/16GB
FastRAID10MySQLInnoDB或PostgreSQL
>10000
1.1.2医惠配置要求
规模
平台
CPU/内存/硬盘
数据库
受监控的主机数量
中型
CentOS7.6
8vCPU
32GBvRAM
500GBSASvHDD
MySQLInnoDB(MariaDB)
<500
注意:
ZabbixServer与CentOS6.X兼容差,不推荐使用CentOS6
1.2软件规划
Zabbix是基于先进ApacheWeb服务器、领先的数据库引擎和PHP脚本语言构建的。
ZabbixServer版本
Agent版本
备注
4.0.9LTS
4.0.9
最新发行稳定版本
1.2.1数据库管理系统
数据库
版本
备注
MySQL
5.0.3-8.0.x
使用MySQL作为Zabbix后端数据库。
需要InnoDB引擎。
MariaDB同样支持。
1.2.2数据库容量测算
Zabbix配置文件数据需要固定数量的磁盘空间,且增长不大。
Zabbix数据库大小主要取决于这些变量,这些变量决定了存储的历史数据量:
▪每秒处理值的数量
这是Zabbixserver每秒接收的新值的平均数。
例如,如果有3000个监控项用于监控,取值间隔为60秒,则这个值的数量计算为3000/60= 50 。
这意味着每秒有50个新值被添加到Zabbix数据库中。
▪关于历史数据的管家设置
Zabbix将接收到的值保存一段固定的时间,通常为几周或几个月。
每个新值都需要一定量的磁盘空间用于数据和索引。
所以,如果我们每秒收到50个值,且希望保留30天的历史数据,值的总数将大约在(30*24*3600)* 50 =129.600.000,即大约130M个值。
根据所使用的数据库引擎,接收值的类型(浮点数、整数、字符串、日志文件等),单个值的磁盘空间可能在40字节到数百字节之间变化。
通常,数值类型的每个值大约为90个字节。
在上面的例子中,这意味着130M个值需要占用130M*90bytes= 10.9GB 磁盘空间。
1.2.3前端版本要求
Zabbix前端需要使用下列软件:
软件
版本
备注
Apache
1.3.12或以上
PHP
5.4.0或以上
PHP扩展库:
gd
2.0orlater
PHPGD扩展库必须支持PNG图像(--with-png-dir)、JPEG图像(--with-jpeg-dir)和FreeType2(--with-freetype-dir).
bcmath
php-bcmath(--enable-bcmath)
ctype
php-ctype(--enable-ctype)
libXML
2.6.15或以上
php-xmlorphp5-dom,如果发布者提供独立的部署包。
xmlreader
php-xmlreader,如果发布者提供独立的部署包。
xmlwriter
php-xmlwriter,如果发布者提供独立的部署包。
session
php-session,如果发布者提供独立的部署包。
sockets
php-net-socket(--enable-sockets)。
用户脚本支持所需要的组件。
mbstring
php-mbstring(--enable-mbstring)
gettext
php-gettext(--with-gettext)。
用于多语言翻译支持。
ldap
php-ldap。
只有在前端使用LDAP认证时才需要。
ibm_db2
使用IBMDB2作为Zabbix后端数据库所需要的组件。
mysqli
使用MySQL作为Zabbix后端数据库所需要的组件。
oci8
使用Oracle作为Zabbix后端数据库所需要的组件。
pgsql
使用PostgreSQL作为Zabbix后端数据库所需要的组件。
▪趋势数据的管家设置
Zabbix为表 trends 中的每个项目保留1小时的最大值/最小值/平均值/统计值。
该数据用于趋势图形和历史数据图形。
这一个小时的时间段是无法自定义。
Zabbix数据库,根据数据库类型,每个值总共需要大约90个字节。
假设我们希望将趋势数据保持5年。
3000个监控项的值每年需要占用3000*24*365* 90 = 2.2GB 空间,或者5年需要占用 11GB 空间。
▪事件的管家设置
每个Zabbix事件需要大约170个字节的磁盘空间。
很难估计Zabbix每天生成的事件数量。
在最坏的情况下,假设Zabbix每秒生成一个事件。
这意味着如果想要保留3年的事件,这将需要占用 3*365*24*3600* 170 = 15GB 的空间。
下表包含可用于计算Zabbix系统所需磁盘空间的公式:
参数
所需磁盘空间的计算公式(单位:
字节)
Zabbix配置文件
固定大小。
通常为10MB或更少。
History
days*(items/refreshrate)*24*3600*bytes
items:
监控项数量。
days:
保留历史数据的天数。
refreshrate:
监控项的更新间隔。
bytes:
保留单个值所需要占用的字节数,依赖于数据库引擎,通常为~90字节。
Trends
days*(items/3600)*24*3600*bytes
items:
监控项数量。
days:
保留历史数据的天数。
bytes:
保留单个趋势数据所需要占用的字节数,依赖于数据库引擎,通常为~90字节。
Events
days*events*24*3600*bytes
events:
每秒产生的事件数量。
假设最糟糕的情况下,每秒产生1个事件。
days:
保留历史数据的天数。
bytes:
保留单个趋势数据所需的字节数,取决于数据库引擎,通常为~170字节。
根据使用MySQL后端数据库的实际统计数据中收集到的平均值,例如监控项为数值类型的值约90个字节,事件约170个字节。
因此,所需要的磁盘总空间按下列方法计算:
配置文件数据+历史数据+趋势数据+事件数据
在安装Zabbix后不会立即使用磁盘空间。
数据库大小取决于管家设置,在某些时间点增长或停止增长。
1.2.4时间同步
在运行Zabbix的服务器上拥有精确的系统日期非常重要。
ntpd 是最受欢迎的守护进程,它将主机的时间与其他服务器的时间同步。
对于所有运行Zabbix组件的系统,强烈建议这些系统的时间保持同步。
如果时间未同步,Zabbix将在建立数据连接之后,根据得到的客户端和服务器的时间戳,并通过客户端和服务器的时间差对获得值的时间戳进行调整,将获得值的时间戳转化为Zabbixserver的时间。
为了尽可能简化并且避免可能的并发问题出现,网络延迟将会被忽略。
因此,通过主动连接(activeagent,activeproxy,sender)获得的时间戳数据将包含网络延迟,通过被动连接(passiveproxy)获得的数据已经减去了网络延迟。
所有其他监控类型都在服务器时间里完成,并且不会调整其时间戳。
1.2.5客户端浏览器要求
浏览器必须启用Cookies和JavaScript。
支持最新版本的Google、MozillaFirefox、MicrosoftInternetExplorer和Opero。
2Zabbix安装部署
2.1下载安装包
找一台外网CentOS7.x的机器用来下载安装包。
可以使用自己笔记本搭建虚拟机下载文件
1)登陆下载机器
使用xshell6(xshell5有后门漏洞)登陆下载机器,使用WinSCP上传下载文件。
2)配置yum源
#rpm-Uvh
3)新建安装包存放目录
#mkdir-p/home/zabbix
4)下载离线包
#yuminstallzabbix-server-mysqlzabbix-web-mysqlzabbix-agent--downloadonly--downloaddir=/home/zabbix
5)将安装包拷贝出来
使用WinSCP软件登陆下载机器,到/home/zabbix目录,将安装包全部拷贝出来,安装时需要上传到服务器。
2.2正式安装Server端
2.2.1系统环境配置
2.2.1.1机器名修改
1)修改机器名,永久生效
#hostnamectlset-hostnameZabbixSRV
2)立刻生效
#/bin/bash
2.2.1.2校时配置
CentOS7已经升级chronyd替代ntp服务进行校时。
1)编辑chronyf服务文件时间同步源(chrony.conf)
#vi/etc/chrony.conf,删除多余配置,增加生产时间服务器IP地址。
---------------------------------------------------------------
#Pleaseconsiderjoiningthepool(http:
//www.pool.ntp.org/join.html).
server172.10.10.111(替换成生产NTP服务器IP)iburst
2)启动服务
#systemctlstartchronyd.service
3)设置开机启动
#systemctlenablechronyd.service
4)查看时间同步源
#chronycsources-v
2.2.1.3防火墙配置
1)启动服务
#systemctlstartfirewalld
2)设置开机启动
#systemctlenablefirewalld
3)放行服务和端口
#firewall-cmd--permanent--add-server=zabbix-server
#firewall-cmd--permanent--add-server=zabbix-agent
#firewall-cmd--permanent--add-port=10050-10051/tcp
#firewall-cmd--permanent--add-service=http
2.2.1.4SELinux配置
1)关闭SELinux
#vi/etc/selinux/config将selinux值设置为disabled,重启生效
----------------------------------------------------------
SELINUX=disabled
2)立刻关闭selinux,无需重启
#setenforce0
2.2.2安装配置Mysql数据库
2.2.2.1配置本地YUM源
1)删除repo
#rm-rf/etc/yum.repos.d/*
2)新建本地DVDrepo
#vi/etc/yum.repos.d/dvd.repo
--------------------------------------------------------------
[dvd]
name=dvd
baseurl=file:
///media
enabled=1
gpgcheck=0
3)上传镜像
使用WinSCP将CentOS7.6的ISO镜像文件上传到/home/目录下
4)挂载CentOS7.6DVD镜像
#mount-oloop/home/CentOS7.6_x86_64.iso(名称按实际名字调整)/media
5)重建yum源
#yumcleanall
#yummakecache
2.2.2.2安装Mysql(MariaDB)
1)安装数据库
#yum-yinstallmariadbmariadb-server
2)启动服务
#systemctlstartmariadb
3)设置开机启动
#systemctlenablemariadb
2.2.2.3初始化Mysql
1)设置密码
#mysqladmin-urootpassword此处填入数据库新密码
2.2.2.4新建Zabbix库
1)登陆mysql数据库
#mysql-uroot-p
2)建立zabbix库
mysql>createdatabasezabbixcharactersetutf8collateutf8_bin;
3)配置zabbix用户具有zabbix库全部权限,且zabbix用户只允许本地登陆(localhost)
mysql>grantallprivilegesonzabbix.*tozabbix@localhostidentifiedby'前面设置的数据库密码';
2.2.2.5导入Zabbix库SQL
1)导入zabbix库sql文件(安装zabbix安装包后会有该数据库脚本文件)
#zcat/usr/share/doc/zabbix-server-mysql*/create.sql.gz|mysql-uzabbix-p-h192.168.100.61zabbix
2.2.3安装前端httpd
2.2.3.1配置本地YUM源
详见2.2.2.1配置本地YUM源
2.2.3.2安装httpd
1)安装httpd
#yuminstall-yhttpd
2)启动服务
#systemctlstarthttpd
3)设置开机启动
#systemctlenablehttpd
2.2.4安装配置Zabbix服务
2.2.4.1安装zabbix服务
1)安装前面已经下载和上传的zabbix离线包文件
#cd/home/zabbix
#yumlocalinstall*.rpm(建议使用此命令,但是需要本地yum支持,解决依赖包问题)
或
#rpm-ivh*.rpm–nodeps
2.2.4.2编辑Zabbix服务文件(Zabbix_Server.conf)
1)配置连接数据库的用户、密码、服务器地址
#vi/etc/zabbix/zabbix_server.conf
----------------------------------------------------------
用户名默认zabbix,可以不改
服务器地址默认本地,可以不改
DBPassword=password#修改连接的数据库的密码
2.2.4.3编辑ZabbixWeb站点文件(Zabbix.conf)
1)修改时区
#vi/etc/httpd/conf.d/zabbix.conf
----------------------------------------------------------------
php_valuedate.timezoneAsia/Shanghai#修改为上海时区
2)启动服务
#systemctlstartzabbix-server
3)设置开机启动
#systemctlenablezabbix-server
2.2.5初始化Zabbix网站
1)登陆web
推荐使用谷歌浏览器打开网站,地址为http:
//ip/zabbix,其中ip指zabbix服务器的ip
2)环境检查
确认检查结果必须全部是ok状态
3)输入数据库连接信息
4)输入zabbix服务端连接信息
5)确认配置无误
6)完成安装
7)登陆Zabbix管理系统
Zabbix前端已经就绪!
默认的用户名是 Admin,密码是zabbix。
2.3目录监控配置
2.3.1特殊目录监控
以下未var目录监控为示例
2.3.1.1创建监控脚本
#vi/etc/zabbix/zabbix_agentd.d/varcheck.sh
#!
/bin/bash
varsize=`sudodu-sb/var|awk'{print$1}'`
echo$varsize
2.3.1.2赋予权限
#chmoda+x/etc/zabbix/zabbix_agentd.d/varcheck.sh
2.3.1.3创建配置文件
指定key为disk.varchecksize,脚本文件为/etc/disk-varchecksize
#vi/etc/zabbix/zabbix_agentd.d/varcheck.conf
UserParameter=disk.varchecksize,/etc/zabbix/zabbix_agentd.d/varcheck.sh
2.3.1.4重启服务
被监控服务器端重启zabbix-agent服务
#systemctlrestartzabbix-agent
或
#servicezabbix-agentrestart
2.3.1.5Sercer端测试
进入zabbixserver服务器,安装zabbix_get工具(可以用浏览器访问repo源的http地址,找到对应系统、版本的zabbix_get的rpm包),用如下命令测试获取agent端var目录大小,返回结果是数字,,说明配置正确
#zabbix_get-s192.168.100.40-p10050-k"disk.varchecksize"
如果日志报错权限不足,按以下操作
#visudo
增加如下权限
zabbixALL=(ALL)NOPASSWD:
ALL
Defaults:
zabbix!
requiretty
保存后重启被监控端zabbix-agent
2.3.1.6页面配置目录监控
1)添加监控项
打开需要配置的模板,点击【监控项】,进入监控项目录,右上角点击【创建监控项】
2)添加图形
点击【图形】进入图形目录,右上角点击【创建图形】
3)检查结果
4)设置触发器报警
点击【触发器】进入目录列表,右上角点击【创建触发器】,如图表示1h周期内,var目录大小超过600M就报警,小于600M就恢复
2.3.2系统目录监控(linux模板已默认具备)
2.4数据库监控配置
2.4.1监控Oracle11g
2.4.1.1Orabbix安装要求
1)orabbix只需要安装在一台服务器即可,本文推荐选择安装在ZabbixServer上
2)需要jdk的支持,默认的openjdk也是可以的。
jdk是为orabbix服务的,因为orabbix就是一个oracle客户端去查找oracle中的数据,然后传给zabbix
2.4.1.2下载Orabbix插件
2.4.1.3安装Orabbix插件
1)上传【orabbix-1.2.3.zip】包到zabbix服务器
2)解压
#unzipOrabbix-1.2.3.zip-d/home/zabbix/orabbix-1.2.3
3)拷贝插件到/usr/local目录下
#cp-rf/home/zabbix/orabbix-1.2.3/usr/local/orabbix
4)更新jar文件,不更新监控会获取不到监控值
解压【orabbix4zabbix4-masterupdatejar.zip】文件到当前orabbix目录下
#unziporabbix4zabbix4-masterupdatejar.zip
运行build.sh文件编译更新jar文件
#cd/usr/local/orabbix/orabbix4zabbix4-master/
./build.sh
运行完毕后拷贝目录orabbix4zabbix4-master/orabbix里的文件覆盖到/usr/local/orabbix/
#cp-rf/usr/local/orabbix/orabbix4zabbix4-master/orabbix/*/usr/local/orabbix/*
5)配置权限
#cd/usr/local/orabbix
拷贝启动文件到加载启动服务目录
#cpinit.d/orabbix/etc/init.d/
赋予运行权限
#chmoda+x/usr/local/orabbix-R
#chmod+x/etc/init.d/orabbix-R
#chmod+x/usr/local/orabbix/run.sh
6)配置conf
从模板文件拷贝配置文件
#cpconfig.props.sampleconfig.props
编辑co