目录

一、监控远程主机

1.安装zabbix_agent

2.安装依赖

3.创建用户

4.解压zabbix

5.预编译zabbix_agent

6.安装

7.启动agent

8.配置zabbix_agent开机自启

1)生成启动脚本

​编辑 2)修改安装目录

3)添加开机自启

4)修改zabbix_agent配置文件

5)启动服务

2.Server端测试通讯

3.常见进程

4.zabbix监控环境中基本概念

5.添加Host主机

1)添加host主机

2)选择模块

3) 在弹出的模块选择自己需要的模块

二、配置zabbix 监控 nginx服务

1.监控nginx

2.确定监控内容

3.监控脚本编写

4.修改 zabbix-agentd.conf

5.定义监控脚本key

6.zabbix服务端使用 zabbix_get 测试获取数据

7.WEB界面配置

1)创建模板

2)给模板依次添加相应 Item、Trigger、Graphs,如下图所示

3) 创建应用集

4)创建监控项

5)创建图像

6)关联模板


一、监控远程主机

1.安装zabbix_agent

既然监控,就要添加主机监控,监控主机选择agent,安装agent比较简单

192.168.30.12(server02)作为zabbix的被监控端,提供LNMP应用

2.安装依赖

 yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI

3.创建用户

[root@zabbix_server02 ~]# useradd -M -s /sbin/nologin zabbix

4.解压zabbix

我这里把11主机的zabbix源码包cp过来解压

scp zabbix-4.2.6.tar.gz root@192.168.30.12:~

解压zabbix:

tar zxf zabbix-4.2.6.tar.gz
cd zabbix-4.2.6

5.预编译zabbix_agent

[root@zabbix_server02 zabbix-4.2.6]# ./configure --prefix=/usr/local/zabbix --enable-agent

被监控端只需要部署 agnet

6.安装

make install

7.启动agent

/usr/local/zabbix/sbin/zabbix_agentd
netstat -anptl | grep zabbix_agent

8.配置zabbix_agent开机自启

1)生成启动脚本

zabbix自带启动脚本

cp /root/zabbix-4.2.6/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

 2)修改安装目录

修改zabbix开机启动脚本中的zabbix安装目录

vim /etc/init.d/zabbix_agentd   #编辑客户端配置文件
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"  #找到此行,并修改

3)添加开机自启

chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on

拓展:core 和 core5 里面的文件都可以实现 zabbix 代理启动,core 里面是测试版本,core5 是稳定版本

4)修改zabbix_agent配置文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf
 Server=192.168.30.11ListenPort=10050ServerActive=192.168.30.11Hostname=server02Timeout=15Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/UnsafeUserParameters=1

注:

Server=192.168.30.11           #zabbix server 地址,可以多个,用“ , ”隔开
 ServerActive=192.168.30.11    #主动检查的意思,主动检查,主机的数据发送给 Zabbix Server
 其中 Server 和 ServerActive 都指定 Zabbix server 的 IP 地址,不同的是,前者是被动,后者是主动。也就是说前者允许192.168.30.11这个ip来我这取数据。而serverActive的192.168.30.11的意思是,客户端主动提交数据给它。
 Hostname=server01,这个定义的名字必须和web页面里面host的名字一样。
 UnsafeUserParameters=1  #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本

5)启动服务

把前面启动的zabbix_agentd杀掉

 pkill zabbix_agentd
systemctl daemon-reload
systemctl start zabbix_agentd

2.Server端测试通讯

/usr/local/zabbix/bin/zabbix_get -s 192.168.30.12 -p10050 -k system.uname

可以获取多方系统版本则证明没有问题

3.常见进程

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

1)zabbix_agentd:

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

2)zabbix_get

zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令

通常用户排错,如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

3)zabbix_sender

zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。

很多检查非常耗时,导致zabbix超时,于是在脚本执行完后,使用sender主动提交数据

4)zabbix_server

zabbix 服务端守护进程 。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server

备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。

5)zabbix_proxy

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

6) zabbix_java_gateway

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

4.zabbix监控环境中基本概念

1. 主机(host): 要监控的网络设备或主机,可由IP或DNS名称指定

2. 主机群组 (host group):主机的逻辑容器(分类),可以包含主机和模板,对不同主机做的分类

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

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

5.事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等

6.动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作

7.报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等

8.媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等

9:通知(notification):通过选定的媒介向用户发送的有关某事件的信息

10:远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行

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

12:应用(application):一组item的集合

13:web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求

14:前端(frontend):Zabbix的web接口

5.添加Host主机

1)添加host主机

注: 主机名称要和zabbix_agentd.conf 配置文件里 Hostname字段里的名称一致

2)选择模块

3) 在弹出的模块选择自己需要的模块

我们是选择 liunx系统,选择liunx监控模板,模板就是相关应用的集合

点击添加,在更新模板

 3)查看主机状态(绿色为连通)

ZBX是用agent采集被监控端的数据

二、配置zabbix 监控 nginx服务

如没有安装ngixn,需安装一个nginx

1.监控nginx

zabbix默认自带了很多有用的监控模板,通常对主机运行状态使用默认的模板就可以了,有时候我们需要根据实际情况自定义一些监控信息,zabbix没有提nginx监控模板需我们自己配置。

zabbix监控nginx服务的配置过程。整个配置过程大致如下:

1,确定监控内容
 2,编写agent端的监控脚本
 3,配置zabbix_agentd.conf文件,定义监控脚本key
 4,zabbix服务端使用zabbix_get 测试获取数据
 5,登录zabbix web配置台;

2.确定监控内容

nginx内置了一个status状态的功能,通过配置可以看到nginx的运行情况,status显示的内容包括当前连接数,处于活动状态的连接数,已经处理的请求数等等。

在nginx的配置文件中,添加status配置

 vim /usr/local/nginx/conf/nginx.conf
 location /status {stub_status on;access_log off;allow 127.0.0.1;allow 192.168.30.11;deny all;}

在虚拟主机 server {} 中加入上面配置,也可以单独定义一个专门用于监控的虚拟主机

deny all , 拒绝除 allow 中的主机之外所有主机访问此URL ,实现过程中如果遇到403 ,有可能是你把自己测试的机器拒绝了

重载nginx;

nginx -s reload

在zabbix_server上测试访问:

curl http://192.168.30.12/status

nginx status 详细说明;

字段

含义

Active connections 当前活跃连接数,包含处于等待在状态的连接
accepts

接收到的客户端发来的连接数

handled 已经处理完成的来连接数,一般和accepts值相同,如果不同说明nginx性能出现瓶颈
requests 客户端请求总数
Reading 正在读取请求头信息的连接数
 Writing 正在发送响应报文的连接数
Waiting 处于闲置状态正等待客户端发送请求的连接数

在访问效率很高,请求很快被处理完毕情况下,waiting数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中

3.监控脚本编写

编写脚本放于/usr/local/zabbix/scripts目录下

通过脚本获取status页面信息的关键值,zabbix server通过这些关键值才能生成数据图形,

mkdir /usr/local/zabbix/scripts
 vim /usr/local/zabbix/scripts/ngx_status.sh
#! /bin/bash
# Description:zabbix监控nginx状态
# Note:此脚本需要配置在被监控端
HOST="127.0.0.1"
PORT="80"
# 检测nginx进程是否存在
function ping {/sbin/pidof nginx | wc -l     #查看进程号,统计检查数
}
# 检测nginx性能
function active {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
$1

脚本写完先在本地测试一下:

 sh /usr/local/zabbix/scripts/ngx_status.sh ping
sh /usr/local/zabbix/scripts/ngx_status.sh accepts

赋予执行权限:

chmod +x /usr/local/zabbix/scripts/ngx_status.sh

4.修改 zabbix-agentd.conf

使用脚本监控需要将zabbix-agentd.conf文件中的UnsafeUserParameters=1 开启

 vim /usr/local/zabbix/etc/zabbix_agentd.conf
 UnsafeUserParameters=1Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/#启用引用此目录文件

5.定义监控脚本key

添加zabbix配置文件,放于/usr/local/zabbix/etc/zabbix_agentd.conf.d/目录下

(agent的配置文件/usr/local/zabbix/etc/zabbix_agentd.conf中定义了其他key的包含目录)创建配置文件nginx_status.conf

vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_status.conf

UserParameter=nginx.status[*],/usr/local/zabbix/scripts/ngx_status.sh $1

在脚本文件里$1,在执行脚本是后跟的值就是【*】

重启zabbix-agent

systemctl restart zabbix_agentd

6.zabbix服务端使用 zabbix_get 测试获取数据

使用zabbix_get收集想要获取的数据

[root@zabbix_server ~]# zabbix_get -s 192.168.30.12 -p 10050 -k nginx.status[ping]
zabbix_get -s 192.168.30.12 -p 10050 -k nginx.status[active]
zabbix_get -s 192.168.30.12 -p 10050 -k nginx.status[accepts]

7.WEB界面配置

服务端测试正常后就可以在web界面配置监控了,zabbix配置都是通过界面配置。

zabbix的配置流程大致如下:

创建主机组 -》添加主机 -》 创建监控模板 -》 创建应用集 -》创建监控项 -》 创建图像—》创建触发器 -》 创建事件 -》创建处理动作 -》 创建用户组与用户 -》创建告警方式

本章节只做 创建监控模板 -》 创建应用集 -》创建监控项 -》 创建图像 这三项的步奏。

1)创建模板

创建模板:Configuration(配置)-->Templates(模板)-->Greate template,创建模板名称:Template App NGINX,单击Add即可

2)给模板依次添加相应 Item、Trigger、Graphs,如下图所示

返回模板页已经看到创建的模板已经生成,这时创建的模板是空模板,要在这个模板中创建应用集,监控项等

点击我们创建的模板名创建应用集

3) 创建应用集

应用集可以理解为是给整个模板中的一部分监控项分类,一个模板中可以创建不同类别的监控项,创建应用集只是起一个名字

4)创建监控项

从应用集进入后就可以在应用集中创建监控项了

创建监控项 要注意命名方式,最关键的是键值 ,这里的键值一定要和agent端的配置文件中定义的键值一致

在监控脚本中,一共定义了8个监控项,所以这里的监控项页要创建8个,重复上面的步奏,创建脚本中相应的监控项

5)创建图像

监控项创建好后创建图像

创建图像在选择要显示图像的监控项时,可以选择多个监控项,这样就可以在一个图像中显示多个数据的线图

把添加的监控项加入图像

6)关联模板

把模板关联对先创建的模板做监控

查看图形查看效果:

zabbix————配置监控远程主机相关推荐

  1. 监控系统zabbix——配置监控远程主机

    修改语言 显示简体中文界面 在安装数据库时已经将zabbix库设置了utf-8字符 首先确定zabbix开启了中文支持功能: 登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/u ...

  2. zabbix mysql监控告警_Zabbix监控mysql配置及故障告警配置

    同时介绍了触发器的创建及zabbix通过邮件方式告警配置. 一.配置自带模板监控mysql 1.提供配置文件模板 文件位置在源码包/usr/local/src/zabbix-3.0.4/conf/za ...

  3. Zabbix配置模板监控指定服务器主机

    一.Zabbix监控指定服务器 第一里程:在指定服务器上安装zabbix客户端,即zabbix-agent 访问清华镜像站,找到zabbix-agent镜像 第一步 第二步 第三步 第四步 第五步 第 ...

  4. Zabbix分布式监控(zabbix-proxy)的配置关键点

    Zabbix Proxy简介 Zabbix Proxy是实现Zabbix分布式监控的重要组成部分,是连接Zabbix Agent和Zabbix Server的"中间人"." ...

  5. Zabbix添加监控项及配置邮件报警

    Zabbix邮件报警的大致流程如下: 监控主机---->监控项---->触发器---->告警动作---->告警方式---->告警用户 首先添加监控项 1.选择要添加监控项 ...

  6. (30)zabbix Trapper 监控项配置

    概述 zabbix获取数据有超时时间,如果一些数据需要执行比较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbix, ...

  7. zabbix Trapper 监控项配置(39)

    一,概述 zabbix获取数据有超时时间,如果一些数据需要执行比较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbi ...

  8. zabbix Trapper 监控项配置

    概述 zabbix获取数据有超时时间,如果一些数据需要执行比较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbix, ...

  9. tomcat8.5服务开启zabbix远程监控配置修改

    tomcat8.5服务开启zabbix远程监控配置修改 1.修改文件vim /app/tomcat8.5/bin/catalina.sh 2.添加如下内容 找到# OS specific suppor ...

最新文章

  1. 先使用皮尔逊相似性特征选择来训练随机森林
  2. Linux系统工程师的必备素质
  3. jQuery 参考手册 - 事件
  4. 双线服务器和CDN的区别
  5. 基于经验的SOA成功原则
  6. 便携式不锈钢管道焊接机器人_核电站双相不锈钢管道的焊接工艺及焊接接头性能探讨...
  7. 学习Python的几个必要条件,你具备吗?
  8. LeetCode 63. 不同路径 II(DP)
  9. python 替换文本 通配符_使用通配符搜索和替换文本文件中的字符串
  10. 解决logstash启动过慢的问题
  11. 【JAVA程序设计】从HelloWorld开始
  12. 严重性 代码 说明 项目 文件 行 警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 opencv-05 d:\opencv\o
  13. 帆软报表学习笔记②——行转列
  14. SpringBoot 核心源码解读
  15. Java观察者模式(Observer)
  16. 2019年(本命年)个人总结
  17. 于的繁体字有几种写法_于字的意思、于的繁体字、于的笔顺笔画、于字部首和繁体字于的意思...
  18. 读书笔记:机器学习实战(2)——章3的决策树代码和个人理解与注释
  19. 这可能是京东考前焦虑最重的一次618
  20. 使用uploadify进行上传

热门文章

  1. 《数字图像处理》学习总结及感悟:第二章数字图像基础(2)电磁波、传感器及辐射成像原理
  2. 谷歌云的「神奇女侠」
  3. springcloud随笔
  4. 有计算机本科跨专业考法律硕士,我几年大三,本科学的是计算机,考研想跨专业,考..._考研_帮考网...
  5. 如何与他人说话? 说到点子上 第7期
  6. 使用pip 安装jupyter notebook
  7. Python隐形马尔科夫实战_隐马尔科夫模型的Python3实现代码
  8. rk809-code喇叭耳机调试分享
  9. 封装 x-spreadsheet 带样式导入导出
  10. 国密SM3——golang的实现