第1章zabbix快速入门

注意:本文不涉及性能测试、性能优化中的监控,所有文字的出发点都是日常运维监控。

在开始之前,我们还是先统一下认识:要监控一个对象,需要掌握哪些东西呢?

监控对象的理解:要监控的对象你是否了解呢?比如CPU到底是如何工作的?

监控对象的指标:我们要监控这个东西的什么属性?比如CPU的CPU使用率、负载、上下文切换。

确定报警基准线:怎么样才算是故障,要报警呢?比如CPU的负载到底多少算高?

如果上述的条件不满足,那就先不要开始实施监控了,因为等做完了,你会发现,然并卵?

1.1Zabbix安装前准备


主机名


IP地址


描述


系统版本


linux-node1.com


192.168.90.11


Zabbix-Server


CentOS7


linux-node2.com


192.168.90.12


Zabbix-Proxy


CentOS7

1.2Server服务端安装配置

1.2.1zabbix-Server安装

Zabbix3整个web界面做了一个全新的设计。

Zabbix存储配置包以及yum配置文件。

[[email protected] ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

Zabbix程序包安装,以及MySQL、Zabbix-agent

[[email protected] ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server

创建Zabbix数据库以及用户。对这样的说明,参考MySQL数据库创建脚本

[[email protected] ~]# mysql -uroot -p

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;

Query OK, 0 rows affected (0.00 sec)

导入初始模式和数据

[[email protected] ~]# cd /usr/share/doc/zabbix-server-mysql-3.0.3/

[[email protected] zabbix-server-mysql-3.0.3]# zcat create.sql.gz |mysql -uroot zabbix

编辑Zabbix_server.conf数据库配置

[[email protected] ~]# grep??^[a-Z]??/etc/zabbix/zabbix_server.conf

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

LogFileSize=0

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

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

SNMPTrapperFile=/var/log/snmptrap/snmptrap.log

Timeout=4

AlertScriptsPath=/usr/lib/zabbix/alertscripts

ExternalScripts=/usr/lib/zabbix/externalscripts

LogSlowQueries=3000

启动Zabbix服务进程

[[email protected] ~]#??systemctl start zabbix-server

Apache的配置文件/etc/httpd/conf.d/zabbix.conf默认PHP已经配置好了。取消注释,设置正确的时区

[[email protected] ~]# vim /etc/httpd/conf.d/zabbix.conf

php_value max_execution_time 300

php_value memory_limit 128M

php_value post_max_size 16M

php_value upload_max_filesize 2M

php_value max_input_time 300

php_value always_populate_raw_post_data -1

php_value date.timezone Asia/Shanghai

通过改变配置文件重新启动Apache Web服务器

[[email protected] ~]# systemctl start httpd

1.2.2配置Web界面

在你的浏览器,打开网址http://Zabbix_server_ip/zabbix。

你应该看到的web安装向导的第一个屏幕,如图1-1

图1-1

确保所有软件先决条件。如图1-2

图1-2

输入连接到数据库详细信息。Zabbix数据库必须已经创建好。如图1-3

图1-3

连接Zabbix服务细节,如果没有改变可选择默认如图1-4

图1-4

回顾一个设置概要,如图1-5

图1-5

完成安装,会在/etc/zabbix/web/zabbix.conf.php生成配置文件。如图1-6

图1-6

Zabbix登陆准备。?默认的用户名/密码为Admin/zabbix。如图1-7

?

图1-7

1.3Agent客户端安装配置

Zabbix可以用Agent/Server的架构,客户端的采集方式分为Agent、SNMP等,通常情况都是使用Agent方式对服务器进行监控,后续再学习使用其他监控方式(SNMP、JMX、IPMI)

1.3.1zabbix-Agent安装

安装zabbix-agent使用yum即可.(agent版本可以低于Server版)

[[email protected] ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

[[email protected] ~]# yum install zabbix-agent -y

1.3.2zabbix-Agent配置

配置Agent和Server间通过Zabbix私有协议通信,需要了解主动模式和被动模式:

Server被动模式:Server端主动向Agent采集数据。(1000台机器以内机器推荐使用)

ServerActive主动模式:Agent主动像Server端发送数据。(1000台以上机器推荐使用)

[[email protected] ~]# sed -i ‘s#Server=127.0.0.1#Server=192.168.90.11#g‘ /etc/zabbix/zabbix_agentd.conf?#修改被动模式监听地址为zabbix-server的IP地址

[[email protected] ~]# egrep -v ‘^#|^$‘ /etc/zabbix/zabbix_agentd.conf #查看修改后信息

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

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

LogFileSize=0

Server=192.168.90.11??#被动模式?zabbix-server的IP(Agent可以有多个Ip?用于向多个Master发送数据)

ServerActive=127.0.0.1??#主动模式(Agent自动像Server发送数据)

Hostname=linux-node2.com

Include=/etc/zabbix/zabbix_agentd.d/

1.4zabbix配置文件

Zabbix的配置虽然不是很复杂,但有的配置参数很难用上,接下来就针对ZabbixServer、ZabbixAgent的配置文件,对其每个参数进行介绍,不求大家都深入了解,但是希望大家通过对本小结的学习知道每个参数是干什么用的。

1.4.1Zabbix_server.conf

Zabbix_Server很显然这个是server的配置文件,参数具体作用如下1-1表格列出


参数名称


是否必须


默认值


解释


ListenPort



10050


Trapper类型Item监听的端口


SourceIP




在连接其他服务器时,使用的本机IP地址


LogType



file


syslog #系统日志

file #指定日志文件位置(指定位置方便管理)

console #输出至屏幕


LogFile



/var/log/zabbix/zabbix_server.log


LogType设置file时,使用文件来记录zabbixserver日志位置


LogFileSize



1


0表示禁用日志自动rotation,如果日志达到了限制,并且rotation失败,老日志文件将会被清空掉,重新生成一个新日志。


DebugLevel



3


0 -?有关的zabbix过程的启动和停止的基本信息

1 -?关键信息

2 -?错误信息

3 -?警告

4 -?用于调试(产生大量的信息)

5 -?扩展调试(产生更多的信息)


PidFile



/var/run/zabbix/zabbix_server.pid


记录Zabbix Server pid的文件位置


DBHost



localhost


ZabbixServer数据库位置,设置localhost默认使用MySQL端口


DBName



zabbix


数据库名称


DBScheme




对IBM DB2或者PostgreSQL生效


DBUser



zabbix


数据库用户


DBPassword




数据库密码


DNSocket



/tmp/mysql.sock


MySQL Socket文件


DBPort



3306


MySQL端口


StartPollers



5


pollers进程数,可以简单理解为zabbix工作的一个worker


StartIPMIPollers



0


IPMIPollers进程数


StartPollersUnreachable



1


检查unreachable hosts(包括IPMI)的进程数


StartTrappers



5


Trappers进程数


StartPingers



1


用于discover的discoverer的进程数


StartHTTPPollers



1


用于HTTP检查的进程数


StartTimers



1


Timers的进程数


StartEscalators



1


JavaGateway




Zabbix Java gateway使用的IP或者hostname


JavaGatewayPort



10052


Java gateway使用的端口


StartJavaPollers



0


Java pollers的进程数


StartVMwareCollectors



0


Vmware poller的进程数


VMwareFrequency



60


Zabbix从Vmware获取监控指的频率,单位是秒


VMwarePerfFrequency



60


多久Zabbix会连接到VMware服务获取性能数据


VMwareCacheSize



8M


Vmware的缓存,存储Vmware数据的共享内存大小,只有当Vmware collectors启动生效


VMwareTimeout



10


Vmware的超时时间


SNMPTrapperFile



/var/log/snmptrap/snmptrap.log


SNMP设备将在数据发送到Server前会将SNMP数据存在文件中


StartSNMPTrapper



0


SNMPTrapper开始


ListenIP



0.0.0.0


Trappers监听的IP


HousekeepingFrequency



1


Zabbix执行Housekeeper的频率


MaxHousekeeperDelete



5000


在Zabbix数据库中,有一张housekeeper表,里面记录了housekeeper要执行的任务


SenderFrequency



30


Zabbix发送报警的时间间隔


CacheSize



8M


存储Host、Item和Trigger数据的内存空间


CacheUpdateFrequency



60


将配置信息同步到内存中的频率


StartDBSyncers



4


将数据同步到数据库的内存大小


HistoryCacheSize



16M


存储History数据的内存大小


HistoryIndexCacheSize



4M


历史索引缓存大小


TrendCacheSize



4M


存储Trends数据的内存大小


ValueCacheSize



8M


历史值缓存大小,为0不缓存


Timeout



4


Zabbix等待Agent、SNMP设备或者自定义脚本的执行时间


TrapperTimeout



300


Trapper处理新数据的超时时间


UnreachablePeriod



45


当host保持unreachable状态后多久将其标记为unreachable状态


UnavailableDelay



60


当Host为unabailable状态时,检查Host的availability的频率


UnreachableDelay



15


当Host为unabailable状态时,检查Host的availability的频率


AlertScriptsPath



/usr/lib/zabbix/alertscripts


自定义报警脚本的位置


ExternalScripts



/usr/lib/zabbix/externalscripts


自定义监控脚本的位置


FpingLocation



/usr/sbin/fping


fping位置,fping可执行文件的owner要设置为root,并且设置suid


Fping6Location



/usr/sbin/fping6


同上。可以处理IPV6


SSHKeyLocation




使用SSH检查和action所需要的SSH公钥、私钥位置


LogSlowQueries



3000


记录数据慢查询,只有设置为3或者4才会生效。0默认关闭


TmpDir



/tmp


临时文件目录


StartProxyPollers



1


被动Proxy的poller进程数


ProxyConfigFrequency



3600


Zabbix Server将配置信息同步到Proxy的频率,这个参数只对被动的Proxy生效


ProxyDataFrequency



1


ZabbixServer请求Proxy历史数据的频率。这个参数只对被动的Proxy生效


AllowRoot



0


是否允许Server以root身份运行。0表示不允许,1表示允许。


User



zabbix


下降到特定用户权限


Include




指定存放自定义监控的文件位置


SSLCertLocation



${datadir}/zabbix/ssl/certs


SSL?客户端证书的位置(此参数只用于web监控)


SSLKeyLocation



${datadir}/zabbix/ssl/keys


私钥为?SSL?客户端证书


SSLCALocation




SSL?服务器证书验证的证书机构?CA文件的位置(?此参数只用于?web?监测和?SMTP?身份验证)


LoadModulePath



{libdir}/modules


loadable组件的位置


LoadModule




需要Server载入的loadable组件,格式为LoadModule=<module.so>


TLSCAFile




顶级CA证书的文件


TLSCRLFile




吊销证书文件路径


TLSCertFile




服务器证书或证书链的文件


TLSKeyFile




服务器专用密钥的文件

?

1.4.2Zabbix_agentd.conf


参数名称


是否必须


默认值


解释


PidFile



/var/run/zabbix/zabbix_agentd.pid


记录Zabbix Agent pid的文件位置


LogType



??file


syslog #系统日志

file #指定日志文件位置(指定位置方便管理)

console #输出至屏幕


LogFile



/var/log/zabbix/zabbix_agentd.log


LogType设置file时,使用文件来记录zabbixserver日志位置


LogFileSize



0


0表示禁用日志自动rotation,如果日志达到了限制,并且rotation失败,老日志文件将会被清空掉,重新生成一个新日志。


DebugLevel



3


0 -?有关的zabbix过程的启动和停止的基本信息

1 -?关键信息

2 -?错误信息

3 -?警告

4 -?用于调试(产生大量的信息)

5 -?扩展调试(产生更多的信息)


SourceIP




对外发起网络时使用的IP


EnableRemoteCommands



0


是否允许zabbixserver控制agent执行命令。0表示不允许。1表示允许


LogRemoteCommands



0


Server



127.0.0.1


ZabbixServer的IP或者主机名。ZabbixAgent只会接受来自这些IP或者主机名。如果有多个可以使用逗号分割


ListenPort



10050


ZabbixAgent监听的端口


ListenIP



0.0.0.0


ZabbixAgent监听的IP


StartAgents



3


处理被动检查的Zabbix_agentd进程数。如果设置为0,那么这个Agent的被动检查功能将禁止。Agent不会监听在所有的TCP端口


ServerActive



127.0.0.1


Zabbix主动模式(主动发送采集数据给ZabbixServer)


Hostname




运行ZabbixAgentd的hostname。必须与server中配置的hostname相同(默认不写是主机名)


HostnameItem



system.hostname


如果Hostname为空,会时候用这个参数定义的key的值作为Hostname,比如默认的system.hostname这个Zabbix自带的Key


HostMetadata




在host autho-registration中使用。如果超过255个字符。Agent会报错。如果没有设置,那么会从HostMetadataItme这个参数中获取


HostMetadataItem




使用一个ket的值作为host metadate的值


RefreshActiveChecks



120


主动检查项目列表刷新的时间


BufferSend



5


在buffer中缓存多少秒的数据


BufferSize



100


在内存buffer中缓存数据的最大个数,当buffer中的数据个数达到最大值后,会将数据发送到server或者Proxy


MaxLinesPerSecond



20


对于log和logrt类型的item,这个参数定义了每秒发送给server或者Proxy的最大行数。


Timeout



3


处理数据的超时时间


AllowRoot



0


是否允许Server以root身份运行。0表示不允许,1表示允许。


User



zabbix


下降到特定用户权限


Include



/etc/zabbix/zabbix_agentd.d/


指定存放自定义监控的文件位置推荐:/etc/zabbix/zabbix_agentd.d/*.conf


UnsafeUserParameters



0


在用户自定义的parameter中,所有的参数都会传递给脚本


UserParameter




用户自定义脚本的parameter,parameter意为key和脚本的对应关系。格式为UserParameter=<key>,<shell command>


LoadModulePath



${libdir}/modules


loadable组件的位置


LoadModule




需要Server载入的loadable组件,格式为LoadModule=<module.so>


TLSConnect



unencrypted


连接不加密


TLSAccept



unencrypted


接受不加密的连接


TLSCAFile




顶级CA证书的文件


TLSCRLFile




吊销证书文件路径


TLSServerCertIssuer




TLS服务器证书签发


TLSServerCertSubject




服务器证书主题


TLSCertFile




服务器证书或证书链的文件


TLSKeyFile




服务器专用密钥的文件


TLSPSKIdentity




预共享密钥区分大小写字符串


TLSPSKFile




预共享密钥文件路径

1.5zabbix宏的概述

宏的作用是便于在模板、Items、Trigger中的引用

Zabbix有许多内置的宏,如{HOST.NAME}、{HOST.IP}、{TRIGGER.NAME}等

详细信息请参考官方文档: https://www.zabbix.com/documentation/3.0/manual/appendix/macros/supported_by_location

为了更强的灵活性,Zabbix还支持全局宏-模板宏-主机宏级别使用用户自定义宏(user macro),用户自定义宏要使用”{$MACRO}”这种特殊的语法格式,?宏的名称只能使用大写字母、数字及下划线

宏可以应用在item keys和descriptions、Trigger名称和表达式、主机接口IP/DNS及端口、discovery机制的SNMP协议的相关信息中等。

1.5.1宏的替换次序

首先是主机级别的宏;其次是当前主机上一级模板中(直接链接至主机的模板)的宏,多个一级模板按其ID号排序;

再接着是二级模板中的宏;而后依次类推;最后检查的是全局宏;

Zabbix如果无法查找到某主机定义使用的宏,则不会对其进行替换操作。要使用用户自定义宏,有以下两种途径:

全局宏:Administration→General→Macros

主机或模板级别的宏:编辑相应主机或者模板的属性即可

1.5.2宏的使用示例

在主机级别定义一个名为{$NETWORK_NUMBER}的宏,以定义当前主机所接受的网卡进口流量的合理大小(当然这里值根据具体情况来做,仅供一个参考)如图1-8、图1-9

图1-8

而后在主机的triggers中使用此宏

图1-9

时间: 2024-11-08 11:12:44

第1章zabbix快速入门的相关文章

【第2章 Spring快速入门】2.2 WEB应用之HelloWorld

上一节:[第2章 Spring快速入门]2.1 Java应用之HelloWorld 本章节主要介绍在WEB开发过程中,Spring是怎么使用的?上一节中我们已经讲到在普通的Java Project中如何使用Spring容器了,那么在WEB开发中集成Spring时,Spring又应该与Web容器是如何集成使用的呢?本章会着重介绍WEB与Spring的集成使用,同时提供一个简单的Web Demo,供大家快速入手学习.本章主要讲解内容:1. Web开发中如何集成Spring:2. Spring MVC

第17章 社区快速入门和模板

IdentityServer组织不维护这些示例.IdentityServer组织愉快地链接到社区模板,但不能对模板做出任何保证.请直接与作者联系. 17.1 各种ASP.NET核心安全样本 https://github.com/leastprivilege/AspNetCoreSecuritySamples 17.2 IdentityServer4 EF和ASP.NET Identity 此示例结合了EF和ASP.NET Identity快速入门(#6和#8). 17.3 共同托管Identit

第1章1zabbix快速入门

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; text-indent: 5.0pt; line-height: 150%; font-size: 10.5pt; font-family: Consolas } h1 { margin-top: 17.0pt; margin-right: 0cm; margin-bottom: 16.5pt; ma

第1章 PHP快速入门

1.最好使用<?php   ?> 即XML风格的PHP标记: 2.echo语句:将传递给其自身的字符串打印到浏览器: 3.注释:①C风格的多行注释/*  */ ②C++风格的单行注释// ③Shell脚本风格的单行注释# 注释符号(//或#)作用到行结束之前 以及 PHP结束标记(?>)之前: 4.多个echo可以使用连接操作符(.)合并为单个echo: 5.打印时间: date_default_timezone_set("Etc/GMT-8"); echo 'dat

第二章 Vue快速入门--20 品牌案例-完成品牌列表的添加功能+ 21 品牌案例-根据Id完成品牌的删除

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width,initial-scale=1.0"> 7 <title>Document</title> 8

第二章 Vue快速入门-- 25 过滤器-定义格式化时间的全局过滤器

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width,initial-scale=1.0"> 7 <title>Document</title> 8

第二章 Vue快速入门-- 23 品牌案例-根据关键字实现数组的过滤

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width,initial-scale=1.0"> 7 <title>Document</title> 8

第1章、快速入门

1.1编写简单的C++程序 每个C++程序都包含多个函数,函数由执行函数功能的语句序列组成. 每个C++程序都包含而且必须有一个命名为main的函数,main函数是唯一被操作系统显式调用的函数. 定义main函数必须指定4个元素:返回类型.函数名.形参表.函数体. 操作系统调用main函数来执行,main函数则执行组成自己的语句并返回一个值给操作系统:main返回0表示程序执行成功,任何其他非0返回值都有操作系统自己定义的含义(通常返回非0表示有错误出现). 集成开发环境(IDE):IDE将编译

第一章:快速入门

1:cin , cout不是语句,而是iostream类的对象而已,这些都是属于控制平台流:流写入缓冲区,缓冲区刷新到设备上显示. 2:endl特殊字符,表示换行且刷新缓冲区 3:换行和空格一样,除了在头文件上以及字符串字面值. 4:对于结束字符是  换行+ctrl+z+换行 5:while和for区别在于while更加适合不知道循环次数,而for更加适合已知循环次数. 6:类使用--类出处,类名,支持哪些操作(类成员函数,操作符).