Linux Zabbix——企业监控系统搭建、配置详解

1、准备
  centos7 系统服务器3台、 一台监控服务器, 两台台被监控节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信。

  • 1)所有机器关闭防火墙和selinux
setenforing 0 (修改配置文件关闭)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
systemctl stop firewalld.service
  • 2)根据架构图,实验基本设置如下:

Linux Zabbix——企业监控系统搭建、配置详解_第1张图片

2、Zabbix的安装,安装server端

  • 1)更新yum仓库

官网下载一个包zabbix-release-3.4-2.el7.noarch.rpm,本地安装至机器,这样,本地就有了新的yum源,可以直接安装zabbix服务:

[root@zabbix-server ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
或者
[root@zabbix-server ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

#而后更新的yum仓库:
[root@zabbix-server ~]# yum repolist

安装:

[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-web-mysql  zabbix-agent -y
[root@zabbix-server ~]# yum install -y zabbix-get-3.4.0-1.el7.x86_64

zabbix-server-mysql数据库是用来存放采集到的数据,而zabbix-web-mysql的作用是Zabbix的web端会通过这些数据,来展示绘图。

  • 2)安装设置数据库:
  • 安装 mariadb.repo
[root@zabbix-server ~]# yum install -y mariadb mariadb-server
  • 重启数据库服务

[

root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# systemctl enable mariadb
[root@zabbix-server ~]# mysqladmin -u root password 'zabbix'    #设置root密码
  • 创建数据库并授权账号
[root@zabbix-server ~]# mysql -uroot -p'zabbix'
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;  # 创建zabbix数据库
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';										# 注意授权网段
MariaDB [(none)]> flush privileges;           # 刷新授权
MariaDB [(none)]> \q   #退出
Bye
  • 导入表
    直接把表导入至我们的数据库即可:

[

root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:                   #输入密码‘zabbix’
或者:
[root@zabbix-server zabbix-server-mysql-3.4.15]# cd /usr/share/doc/zabbix-server-mysql-3.4.15
[root@zabbix-server zabbix-server-mysql-3.4.15]# gunzip create.sql.gz
[root@zabbix-server zabbix-server-mysql-3.4.15]# mysql -u zabbix -p zabbix < create.sql
  导入以后,我们进去数据库查看一下:
[root@zabbix-server zabbix-server-mysql-3.4.15]# mysql -uzabbix -p
Enter password: 
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| zabbix             |
+--------------------+
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
.....
| proxy_dhistory             |
| proxy_history              |
| regexps                    |
| rights                     |
| screen_user                |
+----------------------------+
140 rows in set (0.001 sec)

可以看出来,数据已经导入。

3、配置 server 端

数据库准备好后,修改server端的配置文件。

[root@zabbix-server ~]# cd /etc/zabbix/
[root@zabbix-server zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
#为了方便我们以后恢复,我们把配置文件备份一下
[root@zabbix-server zabbix]# cp zabbix_server.conf zabbix_server.conf.bak
[root@zabbix-server zabbix]# vim zabbix_server.conf
DBHost=localhost      #数据库对外的主机
DBName=zabbix               #数据库名称
DBUser=zabbix              #数据库用户
DBPassword=zabbix             #数据库密码
 #这里的配置文件打开后:如果有的就不用添加了。如果是注释了的也不用取消注释。直接把内容复制粘贴过去就可以 了。

以上,基本配置已经完成,可以开启服务:

[root@zabbix-server zabbix]# systemctl start zabbix-server
[root@zabbix-server zabbix]# systemctl enable zabbix-server

开启服务以后,一定要去确认一下端口有没有开启:

[root@zabbix-server zabbix]# netstat -lntp | grep 10051

如果查到的端口没有开启,检查一下配置文件是否有问题。
  
4、配置 web GUI
  有一个/etc/httpd/conf.d/zabbix.conf文件,这个配置文件就是做映射的文件

[root@zabbix-server zabbix]# vim /etc/httpd/conf.d/zabbix.conf   #设置时区
#里面基本不用动。只需要添加一行时区即可
php_value date.timezone Asia/Shanghai       ---添加如下

Linux Zabbix——企业监控系统搭建、配置详解_第2张图片

接下来,启动httpd服务了:

[root@zabbix-server zabbix]# systemctl start httpd
[root@zabbix-server zabbix]# systemctl enable httpd

服务已经开启,接着可以用浏览器来访问了(访问失败请查看80端口netstat -anpt )

5、浏览器访问并进行初始化设置
  使用浏览器访问192.168.246.228/zabbix,第一次访问时需要进行一些初始化的设置,按照提示操作即可:

登陆后持续点击下一步

Linux Zabbix——企业监控系统搭建、配置详解_第3张图片

此页面查看是否全部ok,高版本的zabbix对PHP版本数据库版本都有要求,具体参加官方文档。
Linux Zabbix——企业监控系统搭建、配置详解_第4张图片
Linux Zabbix——企业监控系统搭建、配置详解_第5张图片
Linux Zabbix——企业监控系统搭建、配置详解_第6张图片

点击Finish以后,我们就会跳转到登录页面,使用我们的账号密码登录即可:
默认用户名为:Admin ,密码为:zabbix 。

登陆进来就可以看到仪表盘了。

6、配置 agent 端
  把监控端配置启动以后,需要来设置一下被监控端,在被监控的主机安装好agent,设置好server,并把它添加到server端,就能将其纳入部署的监控系统中去。

  • 1)安装 zabbix

先安装zabbix。两台机器都操作

[root@zabbix-agent-none1 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@zabbix-agent-none1 ~]# yum install zabbix-agent zabbix-sender -y
  • 2)修改配置文件

对配置文件做一个备份,然后去修改配置文件:

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/
[root@zabbix-agent-none1 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@zabbix-agent-none1 zabbix]# cp zabbix_agentd.conf{,.bak}
[root@zabbix-agent-none1 zabbix]# ls                
zabbix_agentd.conf  zabbix_agentd.conf.bak  zabbix_agentd.d
[root@zabbix-agent-none1 zabbix]# vim zabbix_agentd.conf   ----修改如下
Server=192.168.246.228 zabbix服务端的地址 
ServerActive=192.168.246.228 主动模式 zabbix-server-ip
Hostname=zabbix-agent-none1 
UnsafeUserParameters=1 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符
EnableRemoteCommands=1 是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.

修改完成之后保存退出,启动服务:

[root@zabbix-agent-none1 zabbix]# systemctl start zabbix-agent
[root@zabbix-agent-none1 zabbix]# systemctl enable zabbix-agent

查看端口是否已开启

[root@zabbix-agent-none1 zabbix]# netstat -lntp | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      9369/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      9369/zabbix_agentd

开启成功,去server端添加了。
none2也进行同样的操作,唯一不同的就是配置文件中的Hostname要设为zabbix-agent-none2。

7、监控过程详解

  • 1)修改密码及中文版

作为一只英语不好的Linux大佬,这里悄悄改成了中文版,中文版比较适合初学者更快的学习。
Linux Zabbix——企业监控系统搭建、配置详解_第7张图片

修改完刷新页面即可。

为了安全起见,请修改密码:管理-用户-Admin-修改密码更新。

  • 2)创建主机及主机群组

先来定义一个主机群组:
Linux Zabbix——企业监控系统搭建、配置详解_第8张图片

然后去添加主机
Linux Zabbix——企业监控系统搭建、配置详解_第9张图片

设置完成后,点击添加。我们就可以看到,我们添加的这个主机已经出现在列表中了:
Linux Zabbix——企业监控系统搭建、配置详解_第10张图片

  • 3)监控项(items)

① 介绍
  选中none1的监控项,即可创建监控项,首先创建三个应用集:

配置-主机-创建应用集

Linux Zabbix——企业监控系统搭建、配置详解_第11张图片

然后定义监控项:
配置-主机-监控项-创建监控项

任何一个被监控项,如果想要能够被监控,一定要在zabbix-server端定义了能够连接至zabbix-agent端,并且能够获取命令。或者在agent端定义了能够让server端获取命令。一般都是内建的命令,都对应的有其名字,被我们称之为key。

下面监控的是cpu的每秒中断次数
in 每秒CPU的中断次数,包括时间中断
Linux Zabbix——企业监控系统搭建、配置详解_第12张图片

关于key值,可以直接在网页上设置(服务器自动执行),也可以使用命令行命令(手动执行)来获取:

[root@zabbix-server zabbix]# zabbix_get -s 192.168.246.226 -p 10050 -k "system.cpu.intr"

在agent端,也可以使用命令来查看intr的速率变化:

查看监控项:
Linux Zabbix——企业监控系统搭建、配置详解_第13张图片

zabbix会收集历史数据,还会收集每小时的平均数据作为趋势数据,每小时才收集一次,所以trends(趋势)暂用的资源很小。

删除监控项
  如果有一个监控项,用不上了,就可以删除掉。但是如果直接删除的话,默认数据是会留下的,所以要先清除数据,然后再删除。
在这里插入图片描述

  • 4)触发器(trigger)

① 简介
  当采集的值定义完了以后,就可以来定义触发器了。
  
  触发器的定义是:界定某特定的item采集到的数据的非合理区间或非合理状态。通常为逻辑表达式。
  
一般,评定采样数值是否为合理区间的比较稳妥的方法是——根据最后N次的平均值来判定结果;这个最后N次通常有两种定义方式:

  1. 最近N分钟所得结果的平均值
  2. 最近N次所得结果的平均值
      注:能用数值保存的就不要使用字符串
    ② 触发器表达式
      基本的触发器表达式格式如下所示
{
     <server>:<key>.<function>(<parameter>)}<operator><constant>

server:主机名称;
key:主机上关系的相应监控项的key;
function:评估采集到的数据是否在合理范围内时所使用的函数,目前触发器所支持的函数有avg(平均)、count(计数)、change(变化)、date(日期)、dayofweek(星期)、delta(增量)、diff、iregexp、last()、max(最大值)、min(最小值)、nodata(无数据)、now(现在)、sum(总和)等
parameter:函数参数;大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用“#”做为前缀,则表示为最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;

③ 定义一个触发器
  进入:配置 —> 主机 —> none1 —> 触发器 —> 创建触发器
表达式:可以自定义添加,需要本地文件先进行配置。
  
  生成完毕后,击页面下方的添加,即成功定义了一个触发器,同时页面自动跳转

然后去 配置–主机–触发器可以看到触发器的具体情况

5)定义动作(action)
① 简介
  我们需要去基于一个对应的事件为条件来指明动作,一般就是执行远程命令或者发警报。
第一要先定义一个媒介,第二,还要定义这个媒介上用户接收消息的端点(媒介)。
 
–定义一个媒介(media)
  以Email为例,简单的定义一个媒介:
Linux Zabbix——企业监控系统搭建、配置详解_第14张图片

定义后更新一下即可。
  媒介定义好了,设置让Admin接收邮件
  进入 管理 —> 用户 —> Admin —> 报警媒介
  我们来添加一条local_Email。
  
  添加后更新即可。(一个用户可以添加多个接收的媒介类型。)
  
-定义一个动作(action)
  动作是在某些特定条件下触发的,如某个触发器被触发了,就会触发动作。
  
  现在基于redis来定义一个动作。
  首先,在agent端使用yum安装一下redis:

[root@zabbix-agent-none1 ~]# yum -y install epel-release
[root@zabbix-agent-none1 ~]# yum install -y redis

修改一下配置文件:

[root@zabbix-agent-none1 ~]# vim /etc/redis.conf 
bind 0.0.0.0        #不做任何认证操作

修改完成以后,我们启动服务,并检查端口:

[root@zabbix-agent-none1 ~]# systemctl start redis
[root@zabbix-agent-none1 ~]# netstat -lntp | grep redis 
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      1353/redis-server 0

web GUI定义

先创建一个应用集:
配置-----主机—none1—应用集—创建应用集:

1.定义监控项
  进入 配置 —> 主机 —> node1 —> 监控项(items)—> 创建监控项
Linux Zabbix——企业监控系统搭建、配置详解_第15张图片

填写完毕以后添加。

检测中 —> 最新数据(查看下监控项的值)

2.定义触发器
  定义好了监控项以后,我们亦可来定义一个触发器,当服务有问题的时候,我们才能及时知道:
  
  进入 配置 —> 主机 —> none1 —> 触发器(trigger)—> 创建触发器
Linux Zabbix——企业监控系统搭建、配置详解_第16张图片

填写完毕以后添加。

监测中 —> 最新数据(查看值、监控图)

手动关闭redis服务检测:

[root@zabbix-agent-none1 ~]# systemctl stop redis

进入 监测中 —> 问题
Linux Zabbix——企业监控系统搭建、配置详解_第17张图片

可以看到报警问题,当服务被打开,会转为已解决状态:

[root@zabbix-agent-none1 ~]# systemctl start redis
  • 3.定义动作(action)

定义action了。
  进入 配置 —> 动作 —> 创建动作(注意选择事件源为触发器)
Linux Zabbix——企业监控系统搭建、配置详解_第18张图片

进行操作添加:
Linux Zabbix——企业监控系统搭建、配置详解_第19张图片

下一步修改sudo配置文件使zabbix用户能够临时拥有管理员权限;第二步修改zabbix配置文件使其允许接收远程命令

[root@zabbix-agent-none1 ~]# visudo          #相当于“vim /etc/sudoers”
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)   ALL
    zabbix    ALL=(ALL)   NOPASSWD:ALL     #添加的一行,表示不需要输入密码

[root@zabbix-agent-none1 ~]# vim /etc/zabbix/zabbix_agentd.conf
    EnableRemoteCommands=1          #允许接收远程命令
    LogRemoteCommands=1             #把接收的远程命令记入日志

[root@zabbix-agent-none1 ~]# systemctl restart zabbix-agent.service

添加了第一步重启服务,预防重启不成功,添加第二步:
Linux Zabbix——企业监控系统搭建、配置详解_第20张图片

添加完成以后:

操作添加完成,若服务恢复,可以发送消息来提示。
Linux Zabbix——企业监控系统搭建、配置详解_第21张图片

手动停止服务来进行测试是否成功重新启动redis:

[root@zabbix-agent-none1 ~]# systemctl stop redis.service

也可去agent端查看端口是否开启:

[root@zabbix-agent-none1 ~]# systemctl stop redis 
[root@zabbix-agent-none1 ~]# netstat -lntp | grep redis 
[root@zabbix-agent-none1 ~]# netstat -lntp | grep redis 
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      1957/redis-server 0


查看邮箱是否成功

[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 unread
>U  1 [email protected]  Thu Oct 10 00:51  21/865   "Resolved: redis service down"

邮箱也已经成功
  
端口正常开启,动作触发已经完成。
补充:也可以使用脚本来发送警报,脚本存放路径在配置文件中可以找到,定义为:AlterScriptsPath=/usr/lib/zabbix/alertscripts


END

你可能感兴趣的:(云计算初阶-Linux运维实战,云计算初阶-Linux入门,Linux,中阶——企业应用实战,zabbix,监控类,linux,运维,安全)