设为首页 收藏本站
查看: 1192|回复: 0

[经验分享] 第1章1zabbix快速入门

[复制链接]

尚未签到

发表于 2018-1-1 10:40:00 | 显示全部楼层 |阅读模式
  注意:本文不涉及性能测试、性能优化中的监控,所有文字的出发点都是日常运维监控。
  在开始之前,我们还是先统一下认识:要监控一个对象,需要掌握哪些东西呢?
  监控对象的理解:要监控的对象你是否了解呢?比如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配置文件。
[iyunv@linux-node1 ~]# 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
[iyunv@linux-node1 ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server

  创建Zabbix数据库以及用户。对这样的说明,参考MySQL数据库创建脚本
[iyunv@linux-node1 ~]# 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 zabbix@localhost>  Query OK, 0 rows affected (0.00 sec)
  导入初始模式和数据
[iyunv@linux-node1 ~]# cd /usr/share/doc/zabbix-server-mysql-3.0.3/

[iyunv@linux-node1 zabbix-server-mysql-3.0.3]# zcat create.sql.gz |mysql -uroot zabbix

  编辑Zabbix_server.conf数据库配置
[iyunv@linux-node1 ~]# 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服务进程
[iyunv@linux-node1 ~]#  systemctl start zabbix-server

  Apache的配置文件/etc/httpd/conf.d/zabbix.conf默认PHP已经配置好了。取消注释,设置正确的时区
[iyunv@linux-node1 ~]# 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服务器
[iyunv@linux-node1 ~]# systemctl start httpd

1.2.2配置Web界面
  在你的浏览器,打开网址http://Zabbix_server_ip/zabbix。
  你应该看到的web安装向导的第一个屏幕,如图1-1
DSC0000.png

图1-1

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

图1-2

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

图1-3

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

图1-4

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

图1-5

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

图1-6

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

图1-7

1.3Agent客户端安装配置
  Zabbix可以用Agent/Server的架构,客户端的采集方式分为Agent、SNMP等,通常情况都是使用Agent方式对服务器进行监控,后续再学习使用其他监控方式(SNMP、JMX、IPMI)
1.3.1zabbix-Agent安装
  安装zabbix-agent使用yum即可.(agent版本可以低于Server版)
[iyunv@linux-node2 ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

[iyunv@linux-node2 ~]# yum install zabbix-agent -y

1.3.2zabbix-Agent配置
  配置Agent和Server间通过Zabbix私有协议通信,需要了解主动模式和被动模式:
  Server被动模式:Server端主动向Agent采集数据。(1000台机器以内机器推荐使用)
  ServerActive主动模式:Agent主动像Server端发送数据。(1000台以上机器推荐使用)
[iyunv@linux-node2 ~]# sed -i 's#Server=127.0.0.1#Server=192.168.90.11#g' /etc/zabbix/zabbix_agentd.conf #修改被动模式监听地址为zabbix-server的IP地址

[iyunv@linux-node2 ~]# 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
DSC0007.png

图1-8

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

图1-9

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430482-1-1.html 上篇帖子: zabbix监控rds 下篇帖子: zabbix监控路由器所有接口信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表