项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操做

无监控,不运维。好了,废话很少说,下面都是干货。php

警告:流量党勿入,图片太多!!!html

  项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.htmljava

 

实验前准备:node

① ntpdate 192.168.30.1 同步时间mysql

② 关闭防火墙、selinuxlinux

③ vim /etc/hosts 每一个机器都设置hosts,以解析主机名;DNS也行ios

192.168.30.107    server.along.com
192.168.30.7      node1.along.com
192.168.30.2      node2.along.com
192.168.30.3      node3.along.com zbproxy.along.com

实战一:zabbix的搭建与部署

一、下载安装

(1)下载web

① 去官网,下载本身须要的版本https://www.zabbix.com/downloadredis

② 包的介绍sql

zabbix-agent-3.4.4-2.el7.x86_64.rpm    监控(安装在被监控者,固然监控本身也须要监控)

zabbix-get-3.4.4-2.el7.x86_64.rpm    在server端,手工链接agent 获取数据的,作测试的

zabbix-java-gateway-3.4.4-2.el7.x86_64.rpm     基于JAM监控时使用的

proxy 是和代理相关的包:

zabbix-proxy-mysql-3.4.4-2.el7.x86_64.rpm

zabbix-proxy-pgsql-3.4.4-2.el7.x86_64.rpm

zabbix-proxy-sqlite3-3.4.4-2.el7.x86_64.rpm

zabbix-sender-3.4.4-2.el7.x86_64.rpm    安装在agent端,主动监控模式下,向server端发送测试数据使用的

server 取决本身的存储系统选mysql 或 pgsql:

zabbix-server-mysql-3.4.4-2.el7.x86_64.rpm

zabbix-server-pgsql-3.4.4-2.el7.x86_64.rpm

zabbix-web-3.4.4-2.el7.noarch.rpm    web部位,核心包

zabbix-web-japanese-3.4.4-2.el7.noarch.rpm    专用日语的web部位

web要链接mysql 或 pgsql时,须要安装的包:

zabbix-web-mysql-3.4.4-2.el7.noarch.rpm

zabbix-web-pgsql-3.4.4-2.el7.noarch.rpm

zabbix-release-3.4-2.el7.noarch.rpm    zabbix下载的源

  

(2)安装

① 安装官方的源

zabbix-release-3.4-2.el7.noarch.rpm    直接下载源

rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm

yum repolist    能够查看本身的仓库有zabbix源了

声明:我用的是3.2版本的,如下的示范也是3.2版本

② 安装

yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql

二、初始化数据库

(1)vim /etc/my.cnf.d/server.cnf 子配置文件

[server]
skip_name_resolve = on
innodb_file_per_table = on
innodb_buffer_pool_size = 256M   #buffer缓存大小
max_connections = 2000   #最大链接数
log-bin = master-log    #二进制日志

(2)建数据库,受权,刷新权限

MariaDB [(none)]> create database zbxdb character set 'utf8';
MariaDB [(none)]> grant all on zbxdb.* to zbxuser@'192.168.30.%' identified by 'zbxpass';
MariaDB [(none)]> flush privileges;

(3)导入数据

rpm -ql zabbix-server-mysql 下包的时候,带有数据库文件的解压包

cp /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz ./ 考到root下,解压

gzip -d create.sql.gz

mysql -uroot -p zbxdb < create.sql 导入数据

 

(4)能够去数据库查看,数据已经生成

 

三、配置,开启zabbix-server

(1)配置前准备

cd /etc/zabbix/

cp zabbix_server.conf{,.bak} 先备份,养成好习惯

grep -i "^####" zabbix_server.conf 查看有几个配置段

  GENERAL PARAMETERS 通常性配置

  ADVANCED PARAMETERS 高级配置

  LOADABLE MODULES 可加载模块

  TLS-RELATED PARAMETERS 配置加密的东西,如私钥证书等

grep -i "^###" zabbix_server.conf 能够查看一下须要配置的选项

 

(2)配置

vim zabbix_server.conf 修改配置文件

ListenPort=10051    默认端口10051 
SourceIP=      发采用数据请求的端口,能够加多个地址,须要的话本身设置

② 日志的配置

② 数据库的配置
DBHost=192.168.30.107   数据库对外的地址
DBName=zbxdb   数据库中库的名字
DBUser=zbxuser   数据库受权的用户
DBPassword=zbxpass   密码
DBPort=3306   数据库服务端口

(3)开启服务

systemctl start zabbix-server.service

 

四、设置zabbix的web 服务

(1)zabbix 须要开启与web 相连的服务

cd /etc/httpd/conf.d/

vim zabbix.conf 额外为php5 设置了一些参数

# php_value date.timezone Europe/Riga php的时区必须设置,不过有两处能够设置,在php的配置文件中设置,或在这里设置;在这里设置,只对zabbix有效

vim /etc/php.ini 在php的配置文件中设置,表明对全部使用php的都生效,我就在这里设置了

date.timezone = Asia/Shanghai

 

(2)开启

systemctl start httpd

 

五、在web 页面初始化设置

(1)初始化配置

① web登陆 http://192.168.30.107/zabbix

② 检查所依赖的配置,若是有fail,需手动修改

③ 设置数据库的链接

④ 可能有多个zabbix服务器,加标识;非必须,能够不填

⑤ 没有问题,就开始安装了

⑥ 完成!!!

 

(2)登陆,第一次登陆默认帐号密码

帐号:admin

密码:zabbix

(3)登陆进去的仪表盘

 

(4)status of zabbix 仪表盘分析

Zabbix server is running

Yes

192.168.30.107:10051

① Number of hosts (enabled/disabled/templates)

39

0 / 1 / 38

② Number of items (enabled/disabled/not supported)

0

0 / 0 / 0

③ Number of triggers (enabled/disabled [problem/ok])

0

0 / 0 [0 / 0]

④ Number of users (online)

2

2

⑤ Required server performance, new values per second

0

 

① 监控主机:已经启用被监控的主机数量,已经配置好缺被禁止主机数,自带模板数

② 监控项:启用多少指标,禁用多少指标,不支持的指标

③ 触发器数量:启用,禁用,处于有问题的

④ 当前zabbix有几个用户:如今是一个是来宾,一个是管理员

⑤ 重点关注的nvps 每秒的新值(根据咱们定义的监控项,每秒采集过来多少新数据,平均值):

 

(5)用户管理设置,有你们最喜欢的汉语

(1)若是英语很差,能够切换为中文,但推荐使用英文,为了更好的讲解,博主使用中文示范

(2)修改密码

 

六、被监控node zabbix的安装配置

(1)在node 机器上安装

yum -y install zabbix-agent zabbix-sender 只需安装这两个包就行

 

(2)配置,和以前同样,先查看一下配置段

① grep -i "^####" zabbix_agentd.conf 先查看一下配置段

GENERAL PARAMETERS 通常配置,有两个子配置段

  Passive checks related   被动接口

  Active checks related   主动接口

ADVANCED PARAMETERS 高级配置

  USER-DEFINED MONITORED PARAMETERS 用户自定义的监控参数(必要,高级的特性)

  LOADABLE MODULES

  TLS-RELATED PARAMETERS

② grep -i "^###" zabbix_agentd.conf 查看选项

 

(3)配置

vim zabbix_agentd.conf

① EnableRemoteCommands=0 是否容许执行远程命令,默认是不容许的,有安全风险

② 指定服务器主机,能够指定多个
Server=192.168.30.107  
③ 本身的今天IP和端口
ListenPort=10050   本身的监听端口
ListenIP=0.0.0.0     容许监听在本机的地址,0.0.0.0 是监听全部
④ agent个数,被监控项有不少时,能够多写几个
StartAgents=3  默认3个,优化时使用
⑤ 主动监控的机器地址是谁
StartAgents=192.168.30.107
⑥ 能被server段解析的主机名,写IP也行
Hostname=node1.along.com
下边都是默认值就好

(4)开启服务

systemctl start zabbix-agent.service

 

七、node1加入到监控中

(1)先添加一个主机群组host groups

添加一个mysrvs 的host groups

(2)建立主机

建立一个属于mysrvs 主机组的node1.along.com 主机,若接口写主机,要开启DNS解析

关于主机加密,在内网中最好不要加密,急耗资源

 

八、对node1主机设置

(1)监控类别 applications应用集

建立3个 CPU Utils 、Memory Stats、Network Interface Stats 的应用集

3个已经生成

 

(2)建立监控项 items

设置名为 rate of interrupt 的监控项 items

备注:

① key键值:內建key 、自定义key;对应的是命令;服务器自动执行key,就至关于采集数据

每个key 都对应,能在客户端/agent端,执行的命令;该命令能帮咱们取回关系型数据

例:system.cpu.intr cpu中断数的key

在命令行 zabbix_get -s 192.168.30.7 -p 10050 -k "system.cpu.intr"

 

② 数据更新间隔:

对于非关键型指标,不要太频繁,使服务器压力很大;推荐5分钟,或以上

为了实验,选择5s;关键型指标,30s(默认的)也很频繁了

 

(3)查看本身设置的监控

查看图形,能够选择不一样时间做为坐标轴

 

实战二:zabbix 基础操做

声明:我下边已切换为3.4版本了

一、设置items监控项,采集信息

(1)对node1 添加名为rate of packets(in) 入站包的个数 的items监控项

① key 值选的是: net.if.in[if,<mode>]网络接口上传流量统计;能够加参数

② 点击进程,能够选择更多选项;比3.2不同的地方

 

③ 查看图形

 

(2)克隆items 监控项

① 设置rate of packets(out) 出站包的个数,由于和in 很类似,能够克隆再设置

② 修改成out,其余都无需修改

 

(3)为了后边的实验,多定义2个items 监控项

① rate of bytes(out) 出站字节数

② rate of bytes(in) 入站字节数

 

二、设置trigger 触发器

(1)介绍

① 界定某特定的item采集到的数据的非合理区间或非合理状态:逻辑表达式

② 逻辑表达式,阈值:一般用于定义数据的不合理区间;

  OK:正常 状态 --> 不知足阈值(不合理区间)为OK

  PROBLEM:非正常状态 --> 知足阈值

③ 触发器存在可调用的函数:(对数据进行评估)

  nodata()没有数据

  last()最近几回的平均值

  date()

  time()

  now()

  dayofmonth()

  ...

注意:经常使用nodata()、last();能用数值采集的结果保存,就不要用字符串;计算机处理数值要快的多

 

(2)建立trigger 触发器

① 建立

② 设置

表达式能够本身手写;也能够按选择生成

次数count / 时间time 选项:二选一

time 时间

④ 下边的选择根据本身的需求选择,我没有设置

 

(3)查看图形,会发现多了一根警告线

 

三、设置触发器的依赖关系

(1)介绍

① 在一个网络中,主机的可用性之间可能存在依赖关系

  例如,当某网关主机不可用时,其背后的全部主机都将没法正常访问

  若是全部主机都配置了触发器并定义了相关的通知功能,相关人员将会接收到许多告警信息,这既不利于快速定位问题,也会浪费资源

  正肯定义的触发器依赖关系能够避免相似状况的发生,它将使用通知机制仅发送最根本问题相关的告警

② 注意:目前zabbix 不可以直接定义主机间的依赖关系,其依赖关系仅能经过触发器来定义

(2)依赖的解释:

被依赖者会报警;依赖者不会报警

分析:监控到交换机故障,网卡和主机上的服务不用报警;

监控到主机上的服务,网卡和交换机不用报警

(3)设置依赖

 

四、设置Media 媒介

(1)Media 的介绍

Media:媒介,告警信息的传递通道;任何用户收到报警信息,都须要有媒介的端口

  类型:下面3个中国都没实现,中国能够实现微信,须要特殊插件

    Email:邮件

    Script:自定义脚本,每个script都是一个媒介

    SMS:短信,只适用于北美地区

    Jabber:

    Ez Texting:

  接收信息的目标为zabbix用户:

    须要用户上定义对应各类媒介通道的接收方式;

每一类媒介,也能分不少种类型,以下图

系统自带的3中媒介

 

(2)定义一个media ,能够在email 模板上直接修改

在选项中能够设置并发会话

 

(3)用户使用media媒介

① 选择用户中的admin用户

② 添加media 报警媒介,一个用户能够添加多个

为了实验展现,我选择全部等级

 

(4)实现给公司用户发短信的媒介

① 建立一个名为 duanxin 的媒介

设置,关于发短信的脚本,网上有不少,本身找一个使用

② 设置个用户,使用duanxin的媒介

 

(5)互联网中有发微信作媒介的

需先发个公众号,且公众号中全部人都能收到

 

五、设置Actions 动做

(1)设置action 动做的准备

① 准备一个被监控的服务redis

yum -y install redis 下载一个redis 服务作实验

vim /etc/redis.conf 修改配置文件

bind 0.0.0.0 监听本机全部端口

systemctl start redis 开启服务

 

② 由于要执行动做时需远程操做,给admin 用户设置sudo权限

a) visudo 修改sudo的配置

zabbix ALL=(ALL) NOPASSWD: ALL 容许zabbix用户能在全部主机,以全部人的身份执行全部命令

Defaults !visiblepw 默认全部命令要依靠tty执行,先注释掉

 

b) vim zabbix_agentd.conf 设置agent容许执行远程命令

EnableRemoteCommands=1 容许执行远程命令

LogRemoteCommands=1 把远程执行的命令记录在日志中

systemctl restart zabbix-agent.service 重启zabbix-agent服务

 

(2)设置redis 的监控项items

① 监控端口的key

net.tcp.listen[port] 监听本地listen:检查 TCP端口是否处于侦听状态,返回 0 - 未侦听;1 - 正在侦听

net.tcp.port[<ip>,port]:server远程扫描redis服务:检查是否能创建 TCP 链接到指定端口,返回 0 - 不能链接;1 - 能够链接

net.tcp.service[service,<ip>,<port>] 直接指定服务:检查服务是否运行并接受 TCP 链接,返回 0 - 服务关闭;1 - 服务运行

 

(3)设置triggers 触发器

① 设置表达式

 

(4)设置action 动做

a) 建立一个action

 

b) 设置action

① 设置action 的动做

② 设置action 的操做

③ 设置要操做的步骤1:重启redis服务

④ 设置要操做的步骤2:给admin发邮件

⑤ 设置完的action 的操做:共两步

 

c) 设置action 的恢复操做

d) 设置action 成功

 

六、测试动做

(1)手动停掉redis 服务,模拟服务故障

systemctl stop redis

 

(2)能够看到problem 问题已产生

① 问题生成

② 执行动做,10s,第一个action 1 执行成功,problem问题解决

由于第一个action1 执行成功,因此action 2没有执行

③ 恢复操做执行了,zabbix server 收到了mail "Resolved"

 

 

(3)模拟故障,且没法恢复

systemctl stop redis && rpm -e redis 中止服务,且删除redis

① 问题产生

② action 1 没法完成

③ action 2 执行:给admin 发邮件

 

实战3、展现接口的实现

一、Graphs 图形的设置

(1)建立一个图形

设置一个名为interface traffic packets 的图形

图形类别展现:

① normal 正常的

注释:

  工做时间:白色

  非工做时间:黑色

② Stacked 层积的

③ Pie

④ Exploded 爆发式图形

设置完后:加入两个监控项

rate of packets(in)

rate of packets(out)

 

(2)仿照上边的,再建立2个图形

① interface traffic bytes 加入2个监控项

rate of bytes(in)

rate of bytes(out)

redis status 加入一个监控项

redis status

 

二、定义Screens 聚合图形

(1)建立screen 屏幕

 

(2)设置screens

 

三、把graphs 图形加入到screens 屏幕中

(1)编辑上边设置的screens

 

(2)点击更改,把3个graphs 加入进来

① graph加入screen

② 设置

③ 添加成功,在浏览器上能够按F11 ,全屏查看

 

四、多个screens能够作成幻灯片

(1)再设置一个screens

 

(2)设置Slide shows 幻灯片

① 建立一个幻灯片

② 把两个screens 加入到幻灯片设置中

② 播放幻灯片,5s 会切换一次

 

 

五、Maps 拓扑图

Local network 自带的maps 拓扑图;用处不是想象中那么大,就不讲了

 

实战4、Templates 模板和macro 宏

一、Templates 模板

(1)模板介绍:

  主机配置模板:用于连接至目标主机实现快速监控管理;

          link, unlink, unlink and clear

   模板可继承;

   主机link多个模板必须注意,模板们不能含有相同的item key。trigger和graphs中使用的items不能是来自多个模板。

(2)建立template 模板

① 建立

② 设置template 模板

③ complete 模板,应用集application、监控项items、触发器triggers、图形graphs、屏幕screens、自动发现discover rules、web检测web scenarios。

  模板complete 的一系列添加设置,和主机host 几乎如出一辙,可是不会直接生效、采集数据;只有连接至主机才能生效、采集数据

  区别:主机接口;complete 没有;host 有

host 有主机接口

complete 没有主机接口

 

④ 导入模板

能够在网上找到不少不错的别人定义的模板,能够直接导入

 

 

⑤ 也可导出本身的模板给其余人使用

 

(3)在hosts 中导入模板complete

① 导入

② 导入成功

 

(4)不想在host主机中使用模板,能够取消连接 或 取消并清除

 

(5)组group 使用模板

若是有不少属于同一组内的主机host,想快速基于某模板监控,组group添加模板

 

(6)模板也能够连接到其余模板

 

二、宏:macro,预设的文本替换模式

(1)介绍

级别:

  全局:Administration --> General --> Macros ,对全部主机、全部模板都有效,优先级很低

  模板:编辑模板 --> Macros ,对全部连接至此模板的主机都有效

  主机:编辑主机 --> Macros ,仅对单个主机有效

类型:

  内建宏:调用 {MACRO_NAME}

  自定义:{$MACRO_NAME} ;命名方式:大写字母、数字和下划线

查询宏的官方文档:

https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location

 

(2)设置使用宏

① 还以redis 为例

yum -y install redis

vim /etc/redis.conf

bind 0.0.0.0 #监听本地全部端口

systemctl start redis 开启服务

 

② 定义全局宏

③ 在items 监控项中调用

④ 调用成功

⑤ 设置模板宏

⑥ 定义主机宏

注意:宏的优先级:host 主机宏 > complete 模板宏 > 全局宏

 

下篇zabbix 操做进阶更精彩~~~

相关文章
相关标签/搜索