大小孩

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

本节内容

1.Zabbix部署
1.环境准备
2.架构图
3.配置server端
4.配置agent端
2.Zabbix监控配置
1.修改语言及用户密码
2.创建主机、主机组
3.创建监控项(items)
4.触发器(trigger)
5.动作(action)
6.zabbix可视化
7.模板
8.宏(macro)

一、Zabbix部署

zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 < Zabbix Documentation > 。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP、zabbix agent、ping、端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux、Solaris、HP-UX、AIX、Free BSD、Open BSD、OS X等平台上。

###Zabbix常用术语###
#主机 (host)
- 一台你想监控的网络设备,用IP或域名表示
#主机组 (host group)
- 主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
#监控项 (item)
- 你想要接收的主机的特定数据,一个度量数据。
#触发器 (trigger)
- 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式
  当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。
#事件 (event)
- 单次发生的需要注意的事情,例如触发器状态改变或发现有监控代理自动注册
#异常 (problem)
- 一个处在“异常”状态的触发器
#动作 (action)
- 一个对事件做出反应的预定义的操作。
  一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成
#升级 (escalation)
- 一个在动作内执行操作的自定义场景; 发送通知/执行远程命令的序列
#媒介 (media)
- 发送告警通知的手段;告警通知的途径
#通知 (notification)
- 利用已选择的媒体途径把跟事件相关的信息发送给用户
#远程命令 (remote command)
- 一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令
#模版 (template)
- 一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合
  模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。
#应用 (application)
- 一组监控项组成的逻辑分组
#web 场景 (web scenario)
- 利用一个或多个HTTP请求来检查网站的可用性
#前端 (frontend)
- Zabbix提供的web界面
#Zabbix API
- Zabbix API允许你使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务
#Zabbix server
- Zabbix软件实现监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等
#Zabbix agent
- 一个部署在监控对象上的,能够主动监控本地资源和应用的程序
#Zabbix proxy
- 一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序

1、环境准备

主机:CentOS7虚拟机3台,一台作为监控服务器,两台作为被监控节点。

系统环境配置:配置Zabbix的yum源、关闭防火墙和selinux、配置各主机时钟同步服务。Zabbix安装需要LNMP或LAMP环境,我事先安装了MySQL5.6,使用yum安装Zabbix Server端时会自动安装PHP和Apach(httpd)。

Zabbix环境下php需要修改的参数:

[root@s35 ~]# vim /etc/php.ini
max_execution_time = 300 
memory_limit = 128M 
post_max_size = 16M 
upload_max_filesize = 2M 
max_input_time = 300 
date.timezone = Asia/Shanghai

Zabbix环境下其他参数:

[root@s35 ~]# systemctl status ntpd.service
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2018-04-22 22:01:32 CST; 1 day 10h ago
 Main PID: 695 (ntpd)
   CGroup: /system.slice/ntpd.service
           └─695 /usr/sbin/ntpd -u ntp:ntp -g

Apr 24 07:34:19 s35 ntpd[695]: 0.0.0.0 c614 04 freq_mode
Apr 24 07:34:20 s35 ntpd[695]: 0.0.0.0 c618 08 no_sys_peer
Apr 24 07:49:45 s35 ntpd[695]: 0.0.0.0 c612 02 freq_set kernel 2647.642 PPM
Apr 24 07:49:45 s35 ntpd[695]: 0.0.0.0 c61c 0c clock_step +1.988717 s
Apr 24 07:49:47 s35 ntpd[695]: 0.0.0.0 c615 05 clock_sync
Apr 24 07:49:48 s35 ntpd[695]: 0.0.0.0 c618 08 no_sys_peer
Apr 24 07:52:05 s35 ntpd[695]: 0.0.0.0 c613 03 spike_detect +0.419188 s
Apr 24 08:05:22 s35 ntpd[695]: 0.0.0.0 c61c 0c clock_step +2.078632 s
Apr 24 08:05:24 s35 ntpd[695]: 0.0.0.0 c614 04 freq_mode
Apr 24 08:05:25 s35 ntpd[695]: 0.0.0.0 c618 08 no_sys_peer
[root@s35 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+119.79-161-57.c 129.242.4.241    2 u   18   64    7  352.899  925.845 599.836
+ntp6.flashdance 194.58.202.148   2 u   87   64    2  317.194  785.023 495.317
*120.25.115.19   10.137.53.7      2 u   22   64    3   45.897  922.872 537.979
+ns.buptnet.edu. 10.3.8.150       5 u   16   64    7   32.650  925.762 600.497
[root@s35 ~]# getenforce 
Disabled
[root@s35 ~]# firewall-cmd --state
not running

2、架构图

3、配置server端

1) 配置Zabbix的yum源

安装zabbix使用MySQL的yum镜像仓库
# rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
2) 更新yum仓库并缓存
[root@s35 ~]# yum repolist 
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
repo id                                                   repo name                                                                        status
base/7/x86_64                                             CentOS-7 - Base                                                                  9,591
extras/7/x86_64                                           CentOS-7 - Extras                                                                  448
updates/7/x86_64                                          CentOS-7 - Updates                                                               2,416
zabbix/x86_64                                             Zabbix Official Repository - x86_64                                                132
zabbix-non-supported/x86_64                               Zabbix Official Repository non-supported - x86_64                                    4
repolist: 12,591
[root@s35 ~]# yum makecache 
Loaded plugins: fastestmirror, langpacks
base                                                                                                                      | 3.6 kB  00:00:00     
extras                                                                                                                    | 3.4 kB  00:00:00     
updates                                                                                                                   | 3.4 kB  00:00:00     
zabbix                                                                                                                    | 2.9 kB  00:00:00     
zabbix-non-supported                                                                                                      |  951 B  00:00:00     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Metadata Cache Created
3) 使用yum安装zabbix包(s35)
Installed:
  zabbix-agent.x86_64 0:3.4.8-1.el7                   zabbix-get.x86_64 0:3.4.8-1.el7            zabbix-sender.x86_64 0:3.4.8-1.el7              
  zabbix-server-mysql.x86_64 0:3.4.8-1.el7            zabbix-web.noarch 0:3.4.8-1.el7            zabbix-web-mysql.noarch 0:3.4.8-1.el7           

Dependency Installed:
  OpenIPMI-libs.x86_64 0:2.0.19-15.el7             OpenIPMI-modalias.x86_64 0:2.0.19-15.el7       apr.x86_64 0:1.4.8-3.el7_4.1                 
  apr-util.x86_64 0:1.5.2-6.el7                    fping.x86_64 0:3.10-1.el7                      httpd.x86_64 0:2.4.6-67.el7.centos.6         
  httpd-tools.x86_64 0:2.4.6-67.el7.centos.6       iksemel.x86_64 0:1.4-2.el7.centos              libzip.x86_64 0:0.10.1-8.el7                 
  mailcap.noarch 0:2.1.41-2.el7                    mariadb-libs.x86_64 1:5.5.56-2.el7             php.x86_64 0:5.4.16-43.el7_4.1               
  php-bcmath.x86_64 0:5.4.16-43.el7_4.1            php-cli.x86_64 0:5.4.16-43.el7_4.1             php-common.x86_64 0:5.4.16-43.el7_4.1        
  php-gd.x86_64 0:5.4.16-43.el7_4.1                php-ldap.x86_64 0:5.4.16-43.el7_4.1            php-mbstring.x86_64 0:5.4.16-43.el7_4.1      
  php-mysql.x86_64 0:5.4.16-43.el7_4.1             php-pdo.x86_64 0:5.4.16-43.el7_4.1             php-xml.x86_64 0:5.4.16-43.el7_4.1           
  t1lib.x86_64 0:5.1.2-14.el7                     

Complete!
[root@s35 ~]# yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql
4) 初始化数据库
数据库可以在本机,也可以是远程的,通过zabbix的web页面来配置。
创建数据库和用户
[root@s35 ~]# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by '123456';
mysql> flush privileges;
mysql> quit;
首先,我们来查看一下,zabbix-server-mysql这个包提供了什么:
[root@s35 ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-3.2.6
/usr/share/doc/zabbix-server-mysql-3.2.6/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.2.6/COPYING
/usr/share/doc/zabbix-server-mysql-3.2.6/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.2.6/NEWS
/usr/share/doc/zabbix-server-mysql-3.2.6/README
/usr/share/doc/zabbix-server-mysql-3.2.6/create.sql.gz      #生成表的各种脚本
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix
导入初始化数据
#mysql -u数据库用户名 -p(使用密码登录) 指定数据库
[root@s35 ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
导入以后,我们进去数据库查看一下:
[root@s35 ~]# mysql -uzabbix -p
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| zabbix             |
+--------------------+
2 rows in set (0.00 sec)
mysql> use zabbix;
Database changed
mysql> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
……
| valuemaps                  |
| widget                     |
| widget_field               |
+----------------------------+
140 rows in set (0.00 sec)

这样就导入成功了
5) 配置server端
通过grep命令查看大体配置项
root@s35 zabbix]# grep -i "^###" zabbix_server.conf
############ GENERAL PARAMETERS #################      一般参数
### Option: ListenPort                  监听端口
### Option: SourceIP                    由于Server端主机可能多个IP,需要指定哪个IP去连接Agent或者二级代理。
### Option: LogType                     日志信息输出位置(syslog、file、console),默认为file
### Option: LogFile                     日志文件名以及路径,默认LogFile=/var/log/zabbix/zabbix_server.log
### Option: LogFileSize                 日志文件最大大小(MB),范围(0-1024),为0时关闭日志轮循
### Option: DebugLevel                  日志级别,单位时间级别越高生成的日志量越多,即0级别日志量最少,5级别最多,默认3级别,建议视具体情况,自行把握
### Option: PidFile                     指定程程序PIDFILE路径,不建议修改,默认PidFile=/var/run/zabbix/zabbix_server.pid
### Option: SocketDir                   Zabbix内部服务用来存储IPC套接字的目录,默认SocketDir=/var/run/zabbix
### Option: DBHost                      Zabbix数据库地址(IP/HostName),如果写主机名,hosts文件需要做IP地址映射
### Option: DBName                      Zabbix数据库名
### Option: DBSchema                    Schema name,在IBM DB2和PostgreSQL上使用
### Option: DBUser                      Zabbix数据库用户名
### Option: DBPassword                  Zabbix数据库用户对应的密码
### Option: DBSocket                    MySQL套接字文件路径,默认DBSocket=/tmp/mysql.sock
### Option: DBPort                      远程连接DB端口号,SQLite忽略此配置
### Option: HistoryStorageURL           History storage HTTP[S] URL
### Option: HistoryStorageTypes         Comma separated list of value types to be sent to the history storage.

############ ADVANCED PARAMETERS ################      高级参数
### Option: StartPollers                Number of pre-forked instances of pollers(0-1000),默认5
### Option: StartIPMIPollers            Number of pre-forked instances of IPMI pollers(0-1000),默认0。当至少有一个IPMI poller启动时,IPMI管理程序会自动启动
### Option: StartPreprocessors          Number of pre-forked instances of preprocessing worke(0-1000),默认3。当preprocessor worker启动时,preprocessing管理程序会自动启动
### Option: StartPollersUnreachable     Number of pre-forked instances of pollers for unreachable hosts (including IPMI and Java).
### Option: StartTrappers               Number of pre-forked instances of trappers(0-1000),默认5
                                        rappers accept incoming connections from Zabbix sender, active agents and active proxies.At least one trapper process
                                        must be running to display server availability and view queue in the frontend
                                        #
### Option: StartPingers                Number of pre-forked instances of ICMP pingers(0-1000),默认1
### Option: StartDiscoverers            Number of pre-forked instances of discoverers(0-250),默认1
### Option: StartHTTPPollers            Number of pre-forked instances of HTTP pollers(0-1000),默认1
### Option: StartTimers                 Number of pre-forked instances of timers(0-1000),默认1
                                        Timers process time-based trigger functions and maintenance periods,Only the first timer process handles the 
                                        maintenance periods.
                                        #
### Option: StartEscalators             (0-100),默认1
### Option: StartAlerters               预分配的警报实例数量(0-100),默认3,警报器发送由操作创建的通知。
### Option: JavaGateway                 Zabbix Java gateway的IP/HostName,仅当ava pollers启动时需要
### Option: JavaGatewayPort             Zabbix Java gateway监听的端口
### Option: StartJavaPollers            Java轮询器的预分支实例的数量(0-1000),默认0
### Option: StartVMwareCollectors       预分流的vmware收集器实例的数量(0-250),默认0
### Option: VMwareFrequency             Zabbix将多久连接到VMware服务获得新数据(10-86400),默认60
### Option: VMwarePerfFrequency         Zabbix将多久连接到VMware服务获得性能数据(10-86400),默认60
### Option: VMwareCacheSize             VMware 缓存大小,分出内存空间存储VMware数据,仅在VMware collectors启动时需要
### Option: VMwareTimeout               指定vmware collector最多等待多久(秒)从VMware service获取回应
### Option: SNMPTrapperFile             用于将数据从SNMP trapper守护程序传递到服务器的临时文件,必须与zabbix_trap_receiver.pl或SNMPTT配置文件中的相同。
                                        #
### Option: StartSNMPTrapper            如果为1(0-1),SNMP trapper进程启动
### Option: ListenIP                    要监听的IP,如果不指定trapper会监听所有IP
### Option: HousekeepingFrequency       Zabbix将如何执行内务处理程序(小时)
### Option: MaxHousekeeperDelete        #
### Option: CacheSize                   缓存大小
### Option: CacheUpdateFrequency        Zabbix执行配置缓存的更新频率(秒)
### Option: StartDBSyncers              数据库同步器的预分叉实例的数量
### Option: HistoryCacheSize            历史缓存大小(以字节为单位)。共享内存大小以存储历史数据。
### Option: HistoryIndexCacheSize       历史索引缓存的大小(以字节为单位)。索引历史记录缓存的共享内存大小。
### Option: TrendCacheSize              趋势缓存的大小(以字节为单位)。共享内存大小以存储趋势数据。
### Option: ValueCacheSize              历史值缓存的大小(以字节为单位)。用于缓存项目历史记录数据请求的共享内存大小,设置为0会禁用值缓存。
### Option: Timeout                     指定等待Agent、SNMP设备或外部检查的时间(秒)
### Option: TrapperTimeout              指定trapper可以在处理新数据时花费多少秒
### Option: UnreachablePeriod           在主机网络不可达多少秒之后,视为该主机不可用
### Option: UnavailableDelay            在主机不可用期间,检查主机可用性的频率
### Option: UnreachableDelay            在主机网络不可达期间,检查主机可用性的频率
### Option: AlertScriptsPath            自定义警报脚本位置的完整路径
### Option: ExternalScripts             外部脚本位置的完整路径
### Option: FpingLocation               Location of fping
### Option: Fping6Location              Location of fping6
### Option: SSHKeyLocation              用于SSH检查和操作的公钥和私钥的位置
### Option: LogSlowQueries              在被记录(以毫秒为单位)之前,数据库查询可能需要多长时间
### Option: TmpDir                      临时目录
### Option: StartProxyPollers           被动代理的预分派轮询实例的数量
### Option: ProxyConfigFrequency        Zabbix服务器将配置数据发送到Zabbix代理的频率(秒)
### Option: ProxyDataFrequency          Zabbix服务器从请求Zabbix代理的历史数据的频率(秒)
### Option: AllowRoot                   是否允许root帐号运行此客户端,默认0不允许。当一个脚本执行需要以ROOT身份执行的,则此开关必须打开,建议根据实际情况开启或关闭。      
### Option: User                        授权给系统中已经存在的用户,仅在以root方式运行和AllowRoot被禁用时才会产生效果
### Option: Include                     目录路径或扩展配置文件路径,若需配置大量参数的且为了方便后续管理可以启用此参数,一般情况下无需启用
### Option: SSLCertLocation             SSL客户端证书的位置,这个参数只在web监控中使用。
### Option: SSLKeyLocation              SSL客户端证书的私钥的位置,这个参数只在web监控中使用。
### Option: SSLCALocation               覆盖证书颁发机构(CA)文件的位置,用于SSL服务器证书验证。如果没有设置,将使用全系统目录。这个参数仅用于web监测和SMTP认证。

####### LOADABLE MODULES #######                     加载模块
### Option: LoadModulePath             服务器模块位置的完整路径,默认取决于编译选项。
### Option: LoadModule                 在服务器启动时加载模块,模块用于扩展服务器的功能。

####### TLS-RELATED PARAMETERS #######               TLS相关参数
### Option: TLSCAFile                  包含顶级CA证书的文件的完整路径名
### Option: TLSCRLFile                 包含被撤销证书的文件的完整路径名
### Option: TLSCertFile                包含Agent证书或证书链的文件的完整路径名
### Option: TLSKeyFile                 包含Agent私钥的文件的完整路径名
数据库准备好了以后,要去修改server端的配置文件。
[root@s35 ~]# cd /etc/zabbix/
[root@s35 zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
#为了方便我们以后恢复,我们把配置文件备份一下
[root@s35 zabbix]# cp zabbix_server.conf{,.bak}
[root@s35 zabbix]# ll
total 44
drwxr-x--- 2 apache apache    33 Apr 24 16:42 web
-rw-r--r-- 1 root   root   10588 Apr  3 19:21 zabbix_agentd.conf
drwxr-xr-x 2 root   root      38 Apr 24 16:42 zabbix_agentd.d
-rw-r----- 1 root   zabbix 15763 Apr  3 19:21 zabbix_server.conf
-rw-r----- 1 root   root   15763 Apr 24 17:05 zabbix_server.conf.bak

[root@s35 zabbix]# vim zabbix_server.conf
ListenPort=10051            #默认监听端口
SourceIP=192.168.30.135      #发采样数据请求的IP
#数据库相关信息
DBHost=localhost            #数据库所在主机
DBName=zabbix               #数据库名称
DBUser=root           #MySQL数据库用户名
DBPassword=123456        #数据库用户密码
DBPort=3306                 #数据库端口
ListenIP=192.168.30.135    #注意不要写为localhost
6) 启动zabbix的server、agent
基本配置已经完成,开启服务
[root@s35 ~]# systemctl restart zabbix-server zabbix-agent
[root@s35 ~]# systemctl enable zabbix-server zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
检查端口是否已经开启
[root@s35 ~]# ss -nutl |grep 10051
tcp    LISTEN     0      128    192.168.30.135:10051                 *:*   
PS:如果端口没有开启,检查一下配置文件有没有问题。
7) 修改时区
在zabbix.conf中设置时区,仅对zabbix有效。
[root@s35 ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
在php配置文件中设置时区,对所有的php服务均有效。
[root@s35 zabbix]# vim /etc/php.ini 
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
date.timezone = Asia/Shanghai
PS:修改完时区之后需要重启httpd服务生效。
8) 配置Web GUI
查看Web GUI的配置文件
[root@s35 zabbix]# rpm -ql zabbix-web | grep conf |grep http
/etc/httpd/conf.d/zabbix.conf
/usr/share/zabbix/httpconf.php
/usr/share/zabbix/include/views/configuration.httpconf.edit.php
/usr/share/zabbix/include/views/configuration.httpconf.list.php
/usr/share/zabbix/include/views/configuration.httpconf.popup.php
/usr/share/zabbix/include/views/js/configuration.httpconf.edit.js.php
/usr/share/zabbix/include/views/js/configuration.httpconf.popup.js.php

#/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 Europe/Riga  #设置时区,仅对zabbix生效 
启动http服务
[root@s35 ~]# systemctl start httpd
[root@s35 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

#查看http服务端口
[root@s35 ~]# ss -nutl |grep 80
udp    UNCONN     0      0      fe80::20c:29ff:fe8c:ceb5%ens33:123                  :::*                  
tcp    LISTEN     0      128      :::80                   :::*                  
tcp    LISTEN     0      80       :::3306                 :::*                
用浏览器访问Zabbix进行初始化设置

4、配置agent端

监控端配置完毕并启动以后,还需要来配置一下监控端。即在需要监控的主机上安装agent指定它的server端,并在server端添加agent。

1) 安装zabbix
[root@s35 ~]# rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm    #配置zabbix的yum源
[root@s22 ~]# yum clean all    
[root@s35 ~]# yum repolist     #更新yum仓库
[root@s35 ~]# yum makecache    #缓存
[root@s35 ~]# yum install zabbix-agent zabbix-sender -y    #安装zabbix-agent、zabbix-sender
...
Installed:
  zabbix-agent.x86_64 0:3.4.8-1.el7                                      zabbix-sender.x86_64 0:3.4.8-1.el7                                     
Complete!
2) 配置agent
首先查看zabbix-agent安装后的文件
[root@s22 ~]# rpm -ql zabbix-agent 
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_agentd.d
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
/usr/lib/systemd/system/zabbix-agent.service
/usr/lib/tmpfiles.d/zabbix-agent.conf
/usr/sbin/zabbix_agentd
/usr/share/doc/zabbix-agent-3.4.8
/usr/share/doc/zabbix-agent-3.4.8/AUTHORS
/usr/share/doc/zabbix-agent-3.4.8/COPYING
/usr/share/doc/zabbix-agent-3.4.8/ChangeLog
/usr/share/doc/zabbix-agent-3.4.8/NEWS
/usr/share/doc/zabbix-agent-3.4.8/README
/usr/share/man/man8/zabbix_agentd.8.gz
/var/log/zabbix
/var/run/zabbix
备份、修改配置文件
[root@s22 ~]# cd /etc/zabbix/
[root@s22 zabbix]# ll
total 12
-rw-r--r-- 1 root root 10588 Apr  3 19:21 zabbix_agentd.conf
drwxr-xr-x 2 root root    38 Apr 24 23:41 zabbix_agentd.d
[root@s22 zabbix]# cp zabbix_agentd.conf{,.bak}
[root@s22 zabbix]# ll
total 24
-rw-r--r-- 1 root root 10588 Apr  3 19:21 zabbix_agentd.conf
-rw-r--r-- 1 root root 10588 Apr 24 23:44 zabbix_agentd.conf.bak
drwxr-xr-x 2 root root    38 Apr 24 23:41 zabbix_agentd.d
[root@s22 zabbix]# vim zabbix_agentd.conf
查看zabbix_agentd.conf总体配置项
[root@s22 zabbix]# grep -i "^###" zabbix_agentd.conf
############ GENERAL PARAMETERS ################# 一般参数
### Option: PidFile                  指定程程序PIDFILE路径,可修改到其它路径,但SNC不建议修改
### Option: LogType                  日志信息输出位置(syslog、file、console),默认为file
### Option: LogFile                  日志文件名以及路径,默认LogFile=/var/log/zabbix/zabbix_agentd.log
### Option: LogFileSize              日志文件最大大小(MB),范围(0-1024),为0时关闭日志轮循
### Option: DebugLevel               日志级别,单位时间级别越高生成的日志量越多,即0级别日志量最少,5级别最多,默认3级别,建议视具体情况,自行把握
### Option: SourceIP                 当系统设置有多个IP时,需要指定一个IP与二级代理或服务端通信,若系统只有一个IP,也建议指定一个IP
### Option: EnableRemoteCommands     是否允许从zabbix server远程执行命令,默认0不允许(建议设置为“允许”,SNC对命令下发功能进行了二次开发,功能强大,极大的方便日志运维工作)
### Option: LogRemoteCommands        记录远程执行命令日志
##### Passive checks related   #被动模式相关,由二级代理或服务端主动请求AGENT,去获取所采集到的监控数据                   
### Option: Server                   列出哪些主机的传入连接被接受(在有二级代理情况下,此IP地址应该填写二级代理服务器的IP,否则此IP应设置为服务端IP)
### Option: ListenPort               对应的ListenPort监听到哪个IP上面,建议指定IP时,不用0.0.0.0,默认10050
### Option: ListenIP                 Agent监听本机哪个IP,默认0.0.0.0(所有),主动模式下发送首个IP给Server端
### Option: StartAgents              被动模式Agent启动的instance数量,默认为3,为0则关闭被动模式Agent不监听任何TCP端口
##### Active checks related    #主动模式相关,Agent端(即采集客户端)将所采集的结果,主动提交给二级代理服务器或服务器,而此种情况下,二级代理服务器或服务器将被动接收采集信息
### Option: ServerActive             主动模式下Agent要连接的二级代理服务器或Server端 IP:port(or hostname:port)
### Option: Hostname                 唯一性,自定义一个主机名,与系统的主机名可同可不同,此参数可根据实际情况启用或关闭,建议关闭此参数,并启用HostnameItem参数
### Option: HostnameItem             自动获取主机名,为了方便配置,建议打开此参数而关闭Hostname参数(PS: HostnameItem的优先级低于Hostname)
### Option: HostMetadata             用于定义当前主机唯一标识符,最大长度255个,仅适用于自动发现情况下,默认不定义,建议不定义
### Option: HostMetadataItem         用于获取主机的HostMetadata,建议保持默认
### Option: RefreshActiveChecks      被监控的主机多久(秒)重新请求二级代理或服务端刷新一监控列表,范围为60-3600秒。Zzabbix客户端启动后,每经过这段时间(秒),从二级代理或
                                     服务端请求并下载监控项信息,保存在本地专门的buffersend中。这就是为什么当配置监控项,要过一会才能生效的原因。这个数值就是等待时间。
                                     建议不要将此数值设置过小,以免加大AGENT端和服务端及数据库的压力,建议保持默认120秒。
                                     #
### Option: BufferSend               保持数据在buffer中的最长时间(1-3600),in seconds,默认5
### Option: BufferSize               buffer在内存中的最大大小(2-65535),默认100
### Option: MaxLinesPerSecond        定义了AGENT在1秒内发送的日志最大行数,用于避免网络或cpu过载,建议保持默认

############ ADVANCED PARAMETERS ################# 高级参数
### Option: Alias                    设置参数的别名。它可以替代长和复杂的一个小而简单的一个有用的参数名称
### Option: Timeout                  Agent采集一个数据的超时时间(1-30),建议保持默认3
### Option: AllowRoot                是否允许root帐号运行此客户端,默认0不允许。当一个脚本执行需要以ROOT身份执行的,则此开关必须打开,建议根据实际情况开启或关闭。
### Option: User                     授权给系统中已经存在的用户,仅在以root方式运行和AllowRoot被禁用时才会产生效果
### Option: Include                  目录路径或扩展配置文件路径,若需配置大量参数的且为了方便后续管理可以启用此参数,一般情况下无须启用

####### USER-DEFINED MONITORED PARAMETERS ####### 自定义监控参数
### Option: UnsafeUserParameters     是否允许传递特殊字符\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @,默认0 - do not allow
### Option: UserParameter            用户自定义参数

####### LOADABLE MODULES #######                  可加载模块
### Option: LoadModulePath           本地Agent模块绝对路径
### Option: LoadModule               扩展模块路径,Agent启动时加载。强烈建议不要改动,除非你具有Agent开发能力

####### TLS-RELATED PARAMETERS #######            TLS相关参数
### Option: TLSConnect               Agent应该如何连接到服务器或代理,用于主动模式。
### Option: TLSAccept                接收哪种方式的传入连接
### Option: TLSCAFile                包含顶级CA证书的文件的完整路径名
### Option: TLSCRLFile               包含被撤销证书的文件的完整路径名
### Option: TLSServerCertIssuer      允许服务器证书发行机构
### Option: TLSServerCertSubject     允许服务器证书的主题
### Option: TLSCertFile              包含Agent证书或证书链的文件的完整路径名
### Option: TLSKeyFile               包含Agent私钥的文件的完整路径名
### Option: TLSPSKIdentity           唯一的,用于识别预共享密钥的敏感字符串
### Option: TLSPSKFile               包含预共享密钥的文件的完整路径名
需要修改的参数
Server=192.168.30.135         #被动模式下指定二级代理或服务端
ListenPort=10050              #监听端口
ListenIP=0.0.0.0              #监听的地址,0.0.0.0表示本机所有地址

ServerActive=192.168.30.135   #主动模式下指定二级代理或服务端
#Hostname=Zabbix server       #禁用自定主机名
HostnameItem=system.hostname  #启用自动获取系统主机名
拷贝配置文件到另一节点
root@s22 zabbix]# scp zabbix_agentd.conf root@s23:/etc/zabbix/
两个节点启动Agent服务,并设置开机自启
[root@s22 zabbix]# systemctl start zabbix-agent.service
[root@s22 zabbix]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
#查看端口
[root@s22 zabbix]# ss -nutl |grep 10050
tcp    LISTEN     0      128       *:10050                 *:*                  
tcp    LISTEN     0      128      :::10050                :::*     

二、Zabbix监控配置

Zabbix官方文档

1、修改语言及用户密码

中文版看着比较直观,嘿嘿嘿...

中文界面

 

同样的位置修改用户密码

2、创建主机、主机组

添加主机组完毕之后就可以添加主机

有很多选项卡,其中有一个加密,内网中建议不要加密,非常消耗资源

添加之后的界面

3、创建监控项(items)

1) 创建应用集

点击s22的应用集按钮,创建三个应用集

2) 不带参数监控项

如果想要正常监控一个监控项,Zabbix的server端一定要与agent端能够连接(无论在哪一端设置),并且能够获取命令。这些命令一般都是内建的命令,一个key对应一个命令(字典)。

关于item的结果,我们可以直接在网页上设置item的key值,由Zabbix Server按照更新时间间隔自动获取,也可以手动执行命令来获取:

[root@s35 .ssh]# zabbix_get -s 192.168.30.122 -p 10050 -k "system.cpu.intr"
5292465

#在agent端,也可以使用命令来查看intr的速率变化
[root@s22 zabbix]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 815528   2116 458636    0    0     5     5   73  174  0  0 99  0  0
 0  0      0 815528   2116 458668    0    0     0     0   66   82  0  1 99  0  0
 0  0      0 815124   2116 458668    0    0     0     0   75  162  0  0 100  0  0
 0  0      0 815156   2116 458668    0    0     0     0   81   89  1  0 99  0  0

设置完成点击更新,成功添加并跳转到如下页面:

返回所有主机页面,等待10s可以看到s22节点后面的选项已经有变成绿色的了

 

3) 带参数监控项

 

 

4、触发器(trigger)

 

 

5、动作(action)

 

 

6、zabbix可视化

 

 

7、模板

 

 

8、宏(macro)

 

 

参考:

https://www.cnblogs.com/keerya/p/7953695.html
posted on 2018-04-23 09:14  大小孩  阅读(478)  评论(0)    收藏  举报