zabbix的搭建与入门(代码片段)

cash-su cash-su     2023-02-04     370

关键词:

一,Zabbix架构

zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

Zabbix 的运行架构如下图所示:

技术分享图片

1.1 组件

zabbix 由以下几个组件部分构成:

1) Zabbix Server:

负责接收 agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;

2) Database Storage:

专用于存储所有配置信息,以及由 zabbix 收集的数据;

3) Web interface:

zabbix 的 GUI 接口,通常与 Server 运行在同一台主机上;

4) Proxy:

可选组件,常用于分布监控环境中,代理 Server 收集部分被监控端的监控数据
并统一发往 Server 端;

5) Agent:

部署在被监控主机上,负责收集本地数据并发往 Server 端或 Proxy 端;

注:zabbix node 也是 zabbix server 的一种 。

1.2 进程

默认情况下zabbix包含5个程序: zabbix_agentd、 zabbix_get、 zabbix_proxy、 zabbix_sender、zabbix_server,另外一个 zabbix_java_gateway 是可选,这个需要另外安装。

下面来分别介绍下他们各自的作用:

? zabbix_agentd

客户端守护进程,此进程收集客户端数据,例如 cpu 负载、内存、硬盘使用情况等。

? zabbix_get

zabbix 工具,单独使用的命令,通常在 server 或者proxy端执行获取远程客户端信息的命令。 通常用户排错。 例如在server端获取不到客户端的内存数据, 我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

? zabbix_sender

zabbix 工具,用于发送数据给 server 或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix 超时。于是我们在脚本执行完毕之后,使用 sender 主动提交数据。

? zabbix_server

zabbix 服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway 的数据最终都是提交到 server
备注:当然不是数据都是主动提交给 zabbix_server,也有的是 server 主动去取数据。

? zabbix_proxy

zabbix 代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到 server 里。

? zabbix_java_gateway

zabbix2.0 之后引入的一个功能。顾名思义:Java 网关,类似 agentd,但是只用于 Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。 它的数据最终会给到server或者proxy。

1.3 zabbix监控环境中相关术语

  • 主机(host) :

要监控的网络设备,可由 IP 或 DNS 名称指定;

  • 主机组(host group):

主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;

? 监控项(item) :

一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是 zabbix 进行数据收集的核心,相对某个监控对象,每个 item 都由"key"标识;

? 触发器(trigger) :

一个表达式,用于评估某监控对象的特定 item 内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";

? 事件(event) :

触发一个值得关注的事情,比如触发器状态转变,新的 agent 或重新上
线的 agent 的自动注册等;

? 动作(action) :

指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;

? 报警媒介类型(media) :

发送通知的手段或者通道,如 Email、Jabber 或者 SMS 等;

? 模板 (template) :

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

? 前端(frontend) :

Zabbix 的 web 接口

二,ZabbixServer的安装

2.1 搭建自定义yum仓库并安装支持包

技术分享图片

[[email protected] rpm]# pwd
/root/rpm
[[email protected] rpm]# ls
fontconfig-2.8.0-5.el6.x86_64.rpm        libX11-common-1.6.4-3.el6.noarch.rpm
fontconfig-devel-2.8.0-5.el6.x86_64.rpm  libX11-devel-1.6.4-3.el6.x86_64.rpm
freetype-2.3.11-17.el6.x86_64.rpm        libXau-devel-1.0.6-4.el6.x86_64.rpm
freetype-devel-2.3.11-17.el6.x86_64.rpm  libxcb-1.12-4.el6.x86_64.rpm
gd-devel-2.0.35-11.el6.x86_64.rpm        libxcb-devel-1.12-4.el6.x86_64.rpm
libICE-1.0.6-1.el6.x86_64.rpm            libXext-1.3.3-1.el6.x86_64.rpm
libSM-1.2.1-2.el6.x86_64.rpm             libXpm-devel-3.5.10-2.el6.x86_64.rpm
libvpx-1.3.0-5.el6_5.x86_64.rpm          libXt-1.1.4-6.1.el6.x86_64.rpm
libvpx-devel-1.3.0-5.el6_5.x86_64.rpm    repodata
libX11-1.6.4-3.el6.x86_64.rpm            xorg-x11-proto-devel-7.7-14.el6.noarch.rpm
[[email protected] rpm]# cat /etc/yum.repos.d/CentOS-Media.repo 
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[rpm]
name=rpm
baseurl=file:///root/rpm/
gpgcheck=0
enabled=1

[[email protected] yum.repos.d]# yum -y install pcre pcre-devel zlib-devel libaio libaio-devel libxml2 libxml2-devel bzip2-devel openssl openssl-devel net-snmp-devel net-snmp curl-devel gd gcc gcc-c++ make libjpeg-devel libpng-devel libcurl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker mysql-devel net-snmp-utils

#如果下一步出现问题,请注释掉yum配置文件里的本地光盘源
[[email protected] rpm]# yum -y install libvpx-devel gd-devel

2.2 编译安装LNMP环境

2.2.1 安装nginx

[[email protected] ~]# useradd -s /sbin/nologin -M www
[[email protected] ~]# tar xf nginx-1.10.2.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/nginx-1.10.2/
[[email protected] nginx-1.10.2]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module && make && make install
[[email protected] nginx-1.10.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

#创建nginx配置文件模版
[[email protected] nginx-1.10.2]# cd /usr/local/nginx/conf/
[[email protected] conf]# egrep -v "^$|#" nginx.conf.default > nginx.conf

#将nginx配置文件改成如下内容
[[email protected] conf]# vim nginx.conf
[[email protected] conf]# cat nginx.conf
worker_processes  1;
events 
    worker_connections  1024;

http 
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server 
        listen       80;
        server_name  localhost;
    location / 
        root   html;
        index  index.php index.html index.htm;
    
    location = /nginx-status 
                stub_status on;
                access_log off;
        
    location ~ .php$ 
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html 
            root   html;
        
    

[[email protected] conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2.2.2 安装mysql

[[email protected] ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/
[[email protected] ~]# cd /usr/local/
[roo[email protected] local]# mv mysql-5.5.32-linux2.6-x86_64 mysql
[[email protected] local]# cd mysql/
[[email protected] mysql]# /bin/cp support-files/my-small.cnf /etc/my.cnf 
[[email protected] mysql]# useradd -s /sbin/nologin -M mysql
[[email protected] mysql]# chown -R mysql.mysql data
[[email protected] mysql]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK
...以下省略若干...

[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected] mysql]# chmod +x /etc/init.d/mysqld 
[[email protected] mysql]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS! 
[[email protected] mysql]# netstat -antup | grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3990/mysqld   

2.2.3 安装libmcrypt

[[email protected] ~]# tar xf libmcrypt-2.5.8.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/libmcrypt-2.5.8/
[[email protected] libmcrypt-2.5.8]# ./configure && make && make install

2.2.4 安装GD

[[email protected] ~]# tar xf GD-2.18.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/GD-2.18/
[[email protected] GD-2.18]# perl Makefile.PL
[[email protected] GD-2.18]# make && make install

2.2.5 安装PHP

[[email protected] ~]# tar xf php-5.6.30.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/php-5.6.30/
[[email protected] php-5.6.30]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
[[email protected] php-5.6.30]# make && make install

#创建php配置文件
[[email protected] php-5.6.30]# cp php.ini-development /usr/local/php/etc/php.ini

#修改php配置文件php.ini
[[email protected] php-5.6.30]# cat -n /usr/local/php/etc/php.ini | sed -n ‘372p;382p;393p;660p;702p;820p;936p‘
   372  max_execution_time = 300
   382  max_input_time = 300
   393  memory_limit = 256M
   660  post_max_size = 32M
   702  always_populate_raw_post_data = -1
   820  upload_max_filesize = 16M
   936  date.timezone =Asia/Shanghai

#创建php-fpm配置文件
[[email protected] php-5.6.30]# cd /usr/local/php/etc/
[[email protected] etc]# cp php-fpm.conf.default php-fpm.conf

#修改php-fpm.conf配置文件
[[email protected] etc]# cat -n php-fpm.conf | sed -n ‘149,150p‘
   149  user = www
   150  group = www

2.3 安装zabbix server端

2.3.1 编译安装zabbix server

[[email protected] ~]# useradd zabbix -s /sbin/nologin -M
[[email protected] ~]# tar xf zabbix-3.2.4.tar.gz -C /usr/src/
[[email protected] ~]# cd /usr/src/zabbix-3.2.4/
[[email protected] zabbix-3.2.4]# ./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --with-libxml2
[[email protected] zabbix-3.2.4]# make && make install

#由于zabbix启动脚本路径默认指向的是/usr/local/sbin路径,因此,需要提前简历软连接:
[[email protected] zabbix-3.2.4]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
[[email protected] zabbix-3.2.4]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/

2.3.2 配置zabbix的mysql环境

Zabbix server 和mysql安装到一台服务器上,首先需要手动创建zabbix数据库,操作如下:

[[email protected] ~]# which mysqladmin
/usr/bin/mysqladmin
[[email protected] ~]# mysqladmin -uroot password ‘123123‘
[[email protected] ~]# mysql -uroot -p123123 -e ‘create database zabbix character set utf8;‘
[[email protected] ~]# mysql -uroot -p123123 -e "grant all privileges on zabbix.* to [email protected]‘localhost‘ identified by ‘123123‘;"
[[email protected] ~]# mysql -uroot -p123123 -e ‘flush privileges;‘

#如下数据的导入顺序不可以错
[[email protected] ~]# mysql -uzabbix -p123123 zabbix < /usr/src/zabbix-3.2.4/database/mysql/schema.sql 
[[email protected] ~]# mysql -uzabbix -p123123 zabbix < /usr/src/zabbix-3.2.4/database/mysql/images.sql 
[[email protected] ~]# mysql -uzabbix -p123123 zabbix < /usr/src/zabbix-3.2.4/database/mysql/data.sql 

2.4 安装Zabbix web GUI

  • Zabbix web是php代码编写的,因此需要有php环境,前面已经安装好了lnmp,因此可以直接使用。
  • 默认的nginx安装的根目录为/usr/local/nginx/html,因此,只需要Zabbix web的代码放到此目录即可。
  • Zabbix web的代码在Zabbix源码包中的frontends/php目录下,将这个php目录拷贝到/usr/local/nginx/html/目录下并改名zabbix即可完成Zabbix web端的安装。
  • 在浏览器输入http://IP/zabbix,然后会检查zabbix web运行环境是否满足,并提供连接数据库的相关信息即可,最后将连接数据库相关信息都存入文件zabbix/conf/zabbix.conf.php中,这样就可以登录zabbix的web平台了。
  • 默认的zabbix平台登录用户名为Admin,密码为zabbix。

2.4.1 复制zabbix web目录到nginx web根目录下

[[email protected] ~]# cp -rp /usr/src/zabbix-3.2.4/frontends/php /usr/local/nginx/html/zabbix
[[email protected] ~]# cd /usr/local/nginx/html/
[[email protected] html]# ls -l
total 12
-rw-r--r--.  1 root root  537 Dec  8 14:15 50x.html
-rw-r--r--.  1 root root  612 Dec  8 14:15 index.html
drwxr-xr-x. 13 1000 1000 4096 Feb 27  2017 zabbix
[[email protected] html]# chown -R www.www zabbix
[[email protected] html]# ll -d zabbix/
drwxr-xr-x. 13 www www 4096 Feb 27  2017 zabbix/

2.4.2 启动nginx服务及php-fpm

[[email protected] html]# /usr/local/nginx/sbin/nginx 
[[email protected] html]# netstat -antup | grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      8439/nginx   
[[email protected] local]# /usr/local/php/sbin/php-fpm 
[[email protected] local]# netstat -antup | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      8522/php-fpm  

2.4.3 登录web根据提示生成zabbix.conf.php配置文件

#起初并没有zabbix.conf.php配置文件,我们可以选择自动生成配置文件
[[email protected] ~]# cd /usr/local/nginx/html/zabbix/conf
[[email protected] conf]# ls
maintenance.inc.php  zabbix.conf.php.example

在浏览器里输入http://IP/zabbix,配置zabbix数据库环境,如下图所示:

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

执行如上图所示的步骤生成zabbix.conf.php配置文件

[[email protected] conf]# pwd
/usr/local/nginx/html/zabbix/conf
[[email protected] conf]# ls
maintenance.inc.php  zabbix.conf.php  zabbix.conf.php.example
[[email protected] conf]# cat zabbix.conf.php      #里面记录的信息就是我们刚刚的操作
<?php
// Zabbix GUI configuration file.
global $DB;

$DB[‘TYPE‘]     = ‘MYSQL‘;
$DB[‘SERVER‘]   = ‘localhost‘;
$DB[‘PORT‘]     = ‘0‘;
$DB[‘DATABASE‘] = ‘zabbix‘;
$DB[‘USER‘]     = ‘zabbix‘;
$DB[‘PASSWORD‘] = ‘123123‘;

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB[‘SCHEMA‘] = ‘‘;

$ZBX_SERVER      = ‘localhost‘;
$ZBX_SERVER_PORT = ‘10051‘;
$ZBX_SERVER_NAME = ‘zabbixserver‘;

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

提示:
除了通过web界面的方式生成zabbix.conf.php文件外,我们也可以利用zabbix.conf.php.example的模版文件直接修改成我们需要的配置文件。

2.4.4 登录zabbix web

技术分享图片

技术分享图片

2.4.5 设置zabbix中文模式

技术分享图片

技术分享图片

技术分享图片

三,zabbix server的配置

3.1 zabbix_server.conf配置

通过源码安装方式将zabbix安装到/usr/local/zabbix下面,zabbix server的配置文件为/usr/local/zabbix/etc/zabbix_server.conf,需要修改的内容为如下:

#需要修改的内容为如下:
[[email protected] ~]# cd /usr/local/zabbix/etc/
[[email protected] etc]# cat -n zabbix_server.conf | sed -n ‘12p;38p;87p;103p;111p;118p;136p;165p;181p;297p;447p‘
    12  # ListenPort=10051
    38  LogFile=/tmp/zabbix_server.log
    87  DBName=zabbix
   103  DBUser=zabbix
   111  # DBPassword=
   118  # DBSocket=/tmp/mysql.sock
   136  # StartPollers=5
   165  # StartTrappers=5
   181  # StartDiscoverers=1
   297  # ListenIP=0.0.0.0
   447  # AlertScriptsPath=$datadir/zabbix/alertscripts

#将zabbix_server.conf文件内容修改成如下所示:
[[email protected] etc]# cat -n zabbix_server.conf | sed -n ‘12p;38p;87p;103p;111p;118p;136p;165p;181p;297p;447p‘
    12  ListenPort=10051    #zabbix server监听端口
    38  LogFile=/tmp/zabbix_server.log  #zabbix server日志路径
    87  DBName=zabbix   #zabbix server连接MySQL数据库的数据库名
   103  DBUser=zabbix   #zabbix server连接MySQL数据库的用户名
   111  DBPassword=123123   #zabbix server连接MySQL数据库的密码
   118  DBSocket=/tmp/mysql.sock    #MySQL的实例文件位置
   136  StartPollers=5  #用于设置zabbix server服务启动时启动Pollers(主动收集数据进程)的数量,数量越多,则服务端吞吐能力越强,同时对系统资源消耗越大
   165  StartTrappers=10    #用于设置zabbix server服务启动时启动Trappers(负责处理Agentd推送过来的数据的进程)的数量。Agentd为主动模式时,zabbix server需要设置这个值大一些。
   181  StartDiscoverers=10 #用于设置zabbix server服务启动时启动Discoverers进程的数量,如果zabbix监控报Discoverers进程忙时,需要提高该值。
   297  ListenIP=0.0.0.0    #zabbix server启动的监听端口对哪些ip开放,Agentd为主动模式时,这个值建议设置为0.0.0.0
   447  AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts  #zabbix server运行脚本存放目录,一些供zabbix server使用的脚本,都可以放在这里。

3.2 添加相关服务和端口到系统配置文件

编辑/etc/services文件,在最后添加以下代码:

[[email protected] ~]# tail -4 /etc/services 
zabbix-agent    10050/tcp       # Zabbix Agent
zabbix-agent    10050/udp       # Zabbix Agent
zabbix-trapper  10051/tcp       # Zabbix Trapper
zabbix-trapper  10051/udp       # Zabbix Trapper

其中,10051是zabbix server的监听端口,10050是zabbix agent的监听端口。

3.3 添加管理维护脚本

从zabbix源码包misc/init.d/fedora/cora/目录中找到zabbix_server和zabbix_agentd,然后复制到/etc/init.d目录下,由于我们的zabbix_agnetd采用rpm的安装方式,会自动添加启动脚本,所以在此处,我们不进行zabbix_agentd的启动脚本的复制。

[[email protected] ~]# cp /usr/src/zabbix-3.2.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
[[email protected] ~]# cd /etc/init.d/
[[email protected] init.d]# chmod +x /etc/init.d/zabbix_server 
[[email protected] init.d]# chkconfig zabbix_server on

3.4 启动zabbix_server端进程

[[email protected] ~]# /etc/init.d/zabbix_server start
Starting zabbix_server:                                    [  OK  ]
[[email protected] ~]# netstat -antup | grep zabbix_server
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      9319/zabbix_server 

四,zabbix_agent的安装与配置

zabbix agent端的安装建议采用rpm包方式安装,可从http://repo.zabbix.com/zabbix/3.2/下载zabbix的agent端rpm包,版本与zabbix server端保持一致,安装如下:

[[email protected] chen]# wget http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.4-1.el6.x86_64.rpm
[[email protected] ~]# rpm -ivh zabbix-agent-3.2.4-1.el6.x86_64.rpm

安装完成后,zabbix agent端已经安装完成了,zabbix agent端的配置目录位于/etc/zabbix下,可在此目录进行配置文件的修改。

特别提示:

  • zabbix server的源码包本身就包含了zabbix server端和zabbix agent端,因此,zabbix服务器端无需再安装zabbix agent的rpm包。
  • 然而zabbix agent的rpm包是为了方便在服务器上进行快速安装而设计的快捷安装包。
  • 因此为了统一,监控端和被监控端的zabbix agent我们都用rpm的安装方式

修改zabbix agent端的配置文件

#需要修改的内容如下所示:
[[email protected]_Server ~]# cd /etc/zabbix/
[[email protected] zabbix]# cat -n zabbix_agentd.conf | sed -n ‘13p;32p;95p;103p;120p;136p;147p;265p;284p‘
    13  PidFile=/var/run/zabbix/zabbix_agentd.pid
    32  LogFile=/var/log/zabbix/zabbix_agentd.log
    95  Server=127.0.0.1
   103  # ListenPort=10050
   120  # StartAgents=3
   136  ServerActive=127.0.0.1
   147  Hostname=Zabbix server
   265  Include=/etc/zabbix/zabbix_agentd.d/*.conf
   284  # UnsafeUserParameters=0

#将内容修改为如下所示:
[[email protected] zabbix]# cat -n zabbix_agentd.conf | sed -n ‘13p;32p;95p;103p;120p;136p;147p;265p;284p‘
    13  PidFile=/var/run/zabbix/zabbix_agentd.pid   #进程pid存放路径
    32  LogFile=/var/log/zabbix/zabbix_agentd.log   #zabbix agent日志存放路径
    95  Server=127.0.0.1,192.168.0.220  #指定zabbix server端IP地址
   103  ListenPort=10050    #指定agentd的监听端口
   120  StartAgents=3       #指定启动agentd进程数量。设置0表示关闭
   136  ServerActive=192.168.0.220:10051    #启用agnetd主动模式,启动主动模式后,agentd将主动将收集到的数据发送到zabbix server端,Server Active后面指定的IP就是zabbix server端IP
   147  Hostname=192.168.0.220 #需要监控服务器的主机名或者IP地址,此选项的设置一定要和zabbix web端主机配置中对应的主机名一致。
   265  Include=/etc/zabbix/zabbix_agentd.d/    #相关配置都可以放到此目录下,自动生效
   284  UnsafeUserParameters=1  #启用agent端自定义item功能,设置此参数为1后,就可以使用UserParameter指令了。UserParameter用于自定义item

启动zabbix_agent端进程

[[email protected] ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]
[[email protected] ~]# netstat -antup | grep zabbix_agent
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      1322/zabbix_agentd  
tcp        0      0 :::10050                    :::*                        LISTEN      1322/zabbix_agentd  
[[email protected] init.d]# chkconfig zabbix-agent on

我们在监控端和被监控端都进行如上所述的zabbix agent端的安装。

五,测试zabbix server监控

如何知道zabbix server监控已经生效呢,可通过zabbix server上的zabbix_get命令来完成,在zabbix server上执行如下命令即可进行测试:

#利用如下命令进行测试
/usr/local/zabbix/bin/zabbix_get -s 192.168.0.221 -p 10050 -k "system.uptime"

-s 是指定zabbix agent端的IP地址
-p 是指定zabbix agent端的监听端口
-k 是监控项,即item
如果有输出结果,表面zabbix server可以从zabbix agent获取数据,配置成功。

具体操作如下:

#在监控端zabbix_server端进行如下操作
[[email protected] init.d]# /usr/local/zabbix/bin/zabbix_get -s 192.168.0.221 -p 10050 -k "system.uptime"
26330       #有数据显示就代表监控正常
[[email protected] init.d]# /usr/local/zabbix/bin/zabbix_get -s 192.168.0.220 -p 10050 -k "system.uptime"
55653       #有数据显示就代表监控正常

六,Zabbix的web操作入门

6.1 Zabbix Web 操作概述

6.1.1 Zabbix首页仪表提示面板

技术分享图片

  • 常用的图形:可以根据自己喜好,添加按主机按监控项添加快捷的查看链接
  • 常用的聚合图形:可以将多个监控图形的曲线合并显示
  • 常用的拓扑图:集群的架构图
  • 主机状态:被监控的主机的实时状态
  • Web检测:发一个http请求,看看web是否能正常访问
  • 系统状态:监控端zabbix server服务器的状态
  • 最近20个问题:最后发生的20个告警信息
  • Zabbix状态:zabbix server监控的详细汇总信息

6.1.2 自定义首页面板

技术分享图片

调整后,如下所示:

技术分享图片

6.1.3 追加常用的监控图形

技术分享图片

技术分享图片

技术分享图片

6.1.4 修改账户密码

技术分享图片

技术分享图片

技术分享图片

6.1.5 设置报警提示声音

技术分享图片

技术分享图片

技术分享图片

6.1.6 获取最新的zabbix共享模版

技术分享图片

技术分享图片

6.2 自定义被监控的服务器

6.2.1 自定义一个主机组

技术分享图片

技术分享图片

技术分享图片

特别提示
在生产环境时,主机组的名字一定要用英文,不然,当zabbix进行二次开发的时候,中文名称都是乱码。那感觉很让人想死...

6.2.2 自定义一个主机

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

特别提示
在生产环境中主机的名字一定要是英文,并且务必和真实主机的主机名一致,且必须归类加入到主机组中。不然zabbix在进行二次开发的时候会非常麻烦(需要建立类似索引形式的东西去关联真实服务器)

6.3 自定义一个监控项

6.3.1 进行监控项的后台定义

现在假如我们要定义一个获取nginx连接数的监控项,那么我们先得去尝试能够获取这个值。在之前的nginx配置文件里我们已经加入了status模块的获取

技术分享图片

(1)我们登录网页获取这个信息

技术分享图片

(2)我们尝试通过命令获取这个信息

[root@localhost zabbix_agentd.d]# curl -s "http://192.168.0.220:80/nginx-status" 
Active connections: 6 
server accepts handled requests
 301 301 8833 
Reading: 0 Writing: 1 Waiting: 5 
[root@localhost zabbix_agentd.d]# curl -s "http://192.168.0.220:80/nginx-status" | grep "Active"
Active connections: 6 
[root@localhost zabbix_agentd.d]# curl -s "http://192.168.0.220:80/nginx-status" | grep "Active" | awk ‘print $NF‘
6

(3)在zabbix agent配置文件里定义这个监控项

[[email protected] ~]# cd /etc/zabbix/     #进入zabbix agent目录
[[email protected] zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[[email protected] zabbix]# vim zabbix_agentd.conf 
[[email protected] zabbix]# sed -n ‘257,270p‘ zabbix_agentd.conf   
### Option: Include
#   You may include individual files or all files in a directory in the configuration file.
#   Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=

Include=/etc/zabbix/zabbix_agentd.d/        #我们发现zabbix_agentd.d目录已经默认被include进入了主配置文件。

# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# Include=/usr/local/etc/zabbix_agentd.conf.d/
# Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

由于zabbix_agentd.conf配置文件默认导入了所有zabbix_agentd.d目录下的内容,因此我们可以将监控项定义到zabbix_agentd.d目录下。

技术分享图片

(4)参考模版,自己定义监控项的获取命令

[[email protected] zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[[email protected] zabbix_agentd.d]# vim nginx.conf
[[email protected] zabbix_agentd.d]# cat nginx.conf 
[[email protected] zabbix_agentd.d]# cat nginx.conf 
UserParameter=nginx.active,/usr/bin/curl -s "http://192.168.0.220:80/nginx-status" | grep "Active" | awk ‘print $NF‘

(5)自定义监控项,等于改变了配置文件,自然需要重启zabbix_agentd

[[email protected] ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]

(6)在zabbix server端测试获取自定义的监控项信息

[[email protected] ~]# zabbix_get -s 192.168.0.220 -p 10050 -k "nginx.active"
6

至此zabbix自定义监控项的后台定义全部完成

6.3.2 进行监控项的前台定义

(1)点选一个被监控的主机

技术分享图片

(2)进入监控项创建模版

技术分享图片

(3)创建监控项

技术分享图片

技术分享图片

(4)创建完成的监控项

技术分享图片

监控项创建完成以后,在zabbix server这个主机里就出现这个新定义的监控项了。

6.4 自定义一个监控项的图形

(1)点选一个被监控的主机

技术分享图片

(2)进入图形创建模版

技术分享图片

技术分享图片

(3)查看图形绘图

技术分享图片

(4)关于图形的各种显示效果

技术分享图片

正常图形:

技术分享图片

层积图形

技术分享图片

Pie图形

技术分享图片

爆发的图形

技术分享图片

6.5 自定义一个聚合图形

(1)创建一个聚合图形

技术分享图片

技术分享图片

(2)编辑聚合图形

技术分享图片

技术分享图片

技术分享图片

(3)选择展示图形

技术分享图片

技术分享图片

技术分享图片

技术分享图片

(4)将聚合图形添加到zabbix web首页面板

技术分享图片

技术分享图片

技术分享图片

6.6 自定义一个拓扑图形

(1)进入拓扑图编辑界面

技术分享图片

技术分享图片

(2)添加一个新的拓扑图形

技术分享图片

技术分享图片

(3)拓扑图链接拓扑图

技术分享图片

技术分享图片

技术分享图片

技术分享图片

(4)拓扑图显示时时的连接带宽

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

上图中的标签内容如下:
linux-node1.yunjisuan.com:net.if.out[eth0].last(0)
linux-node1.yunjisuan.com为定义的主机名
net.if.out[eth0]为监控项的表达式
last(0)为取监控项的最后一个值

技术分享图片

 











zabbix最佳实践二:快速入门(代码片段)

一.登录与配置用户1.1登陆这是Zabbix的“欢迎”界面。输入用户名Admin以及密码zabbix以作为Zabbix超级用户登陆。登陆后,你将会在页面右下角看到“以管理员连接(ConnectedasAdmin)”。同时会获得访问配置(Configuration)和管理(Admi... 查看详情

zabbix搭建-服务监控报警与自动恢复(代码片段)

#zabbix部署参考https://www.cnblogs.com/itbox/p/12142066.html#关闭防火墙systemctldisablefirewalld.service#关闭Selinuxvim/etc/selinux/configSELINUX=diabled#安装apacheyum-yinstallhttpd#启动并设置为自启动systemctlenablehttpdsy 查看详情

zabbix搭建记录-1(代码片段)

1、首先找到zabbix官网https://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=7&db=MySQL我选择centsos7与mysql版2、按照官网的提示,依次执行以下命令rpm-ihttp://repo.zabbix.com/zabbix/3.4/rhel/7/x86_6 查看详情

搭建zabbix监控系统(代码片段)

搭建自动化服务平台---zabbix监控平台准备环境准备一台Linux主机(CentOS7举例)已经安装好LAMP平台关闭防火墙及SELinux设置IP地址设置好yum源linux指令中的个别符号会与博客的文本编辑语言产生冲突,我会用空格隔开方便阅读具体的... 查看详情

elasticsearch搭建与zabbix对接(代码片段)

一.搭建elasticsearch上传jdk-8u181-linux-x64.tar.gz和elasticsearch-6.1.4.tar.gz文件到系统任意目录,安装java解压jdk-8u181-linux-x64.tar.gz文件tar-zxvfjdk-8u181-linux-x64.tar.gz编辑profile文件,添加jdk环境变量vim/etc/profile在最后添加#JDK环境变 查看详情

zabbix服务器搭建(代码片段)

文章目录zabbix1.环境准备2.zabbix服务器安装3.监控本机4.通过zabbix-agent监控远程机器5.zabbix用户与用户群组6.监控项与应用集7.为监控项创建图形8.自定义监控项9.为自定义监控项创建图形10.触发器zabbixzabbix官网1.环境准备主机ipzabbix_s... 查看详情

zabbix监控的搭建(代码片段)

zabbix监控的搭建zabbix的组件介绍zabbixagent:部署在被监控的主机上,负责被监控的主机数据并发送给zabbixserverzabbixserver:负责接收agent发来的数据并保存至zabbixdatabasezabbixdatabase:用来存储所有zabbix的配置信息、监控数据的数据库z... 查看详情

zabbix监控搭建(代码片段)

Zabbix概述????zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案(基于GPLV2)zabbix由2部分构成,zabbixserver与可选组件zabbixagent进程构成zabbix安装完成后会产生5个程序:zabbix_agentd、zabbix_get、zabbix_... 查看详情

zabbix监控搭建(代码片段)

目录一、zabbix概述二、zabbix功能数据采集灵活的阈值定义高度可配置化的告警实时图形Web监控功能三、zabbix搭建1、安装nginx2、部署mariadb3、部署PHP4、测试连接数据库5、部署zabbixserver6、配置代理端zabbix(192.168.110.20)7、... 查看详情

zabbix监控搭建(代码片段)

目录一、zabbix概述二、zabbix功能数据采集灵活的阈值定义高度可配置化的告警实时图形Web监控功能三、zabbix搭建1、安装nginx2、部署mariadb3、部署PHP4、测试连接数据库5、部署zabbixserver6、配置代理端zabbix(192.168.110.20)7、... 查看详情

zabbix监控环境搭建实现7x24监控服务(代码片段)

Zabbix是一个高度集成的企业级开源网络监控解决方案,与Cacti、nagios类似,提供分布式监控以及集中的web管理界面。zabbix具备常见商业监控软件所具备的功能,例如主机性能监控,网络设备性能监控,数据库性能监控,ftp等通用... 查看详情

code-zabbix:zabbix-3.4-快速入门(代码片段)

ylbtech-Code-zabbix:zabbix-3.4-快速入门 1.返回顶部1、1登陆和配置用户登陆Zabbix,以及在Zabbix内建立一个系统用户。用户名:Admin或者admin密码:zabbix增加用户可以在管理(Administration)→用户(Users)下查看用户信息。点击创建用... 查看详情

zabbix搭建(代码片段)

Zabbix主要特点安装与配置简单,学习成本低支持多语言(包括中文)免费开源自动发现服务器与网络设备分布式监视以及WEB集中管理功能可以无agent监视用户安全认证和柔软的授权方式通过WEB界面设置或查看监视结果email等通知... 查看详情

idea环境搭建与spring入门(代码片段)

1.环境搭建1.1安装JDK8JDK8是Oracle基于JavaSE8的标准发布的开发工具包,在2019年1月就针对8这个版本停止了免费更新,往后更新的版本都要付费。但我们的目的是个人学习,直接进入Oracle的JDK8下载页面下载最新版就行了。... 查看详情

zabbix监控系统,最细搭建详解(代码片段)

文章目录Zabbix监控系统Zabbix监控架构Zabbix的优点Zabbix监控系统监控对象Zabbix的监控方式Zabbix程序组件Zabbix5.0安装部署Zabbix监控系统Zabbix监控架构为了防止Zabbix单点故障,做了Zabbix的高可用,如果公司集群不是很大,单... 查看详情

kubernetes集群搭建zabbix监控平台(代码片段)

kubernetes集群搭建Zabbix监控平台一、zabbix介绍1.zabbix简介2.zabbix特点3.zabbix的主要功能4.zabbix架构图二、检查本地k8s环境1.检查系统pod运行状态2.检查node节点状态三、配置nfs共享存储1.安装nfs2.创建共享目录3.配置共享目录4..启动相关... 查看详情

不得不学的zabbix监控系统,最细搭建详解(代码片段)

Zabbix监控系统一、Zabbix监控介绍1.1Zabbix监控架构1.2Zabbix的优点1.3Zabbix的缺点1.4Zabbix监控系统监控对象1.5Zabbix的监控方式1.主动模式2.被动模式1.6Zabbix程序组件二、Zabbix5.0安装部署一、Zabbix监控介绍1.1Zabbix监控架构为了防止Zabbix单... 查看详情

zabbix服务器搭建(代码片段)

文章目录zabbix1.环境准备2.zabbix服务器安装3.监控本机4.通过zabbix-agent监控远程机器5.zabbix用户与用户群组6.监控项与应用集7.为监控项创建图形8.自定义监控项9.为自定义监控项创建图形10.触发器zabbixzabbix官网1.环境准备主机ipzabbix_s... 查看详情