Zabbix监控

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix监控相关的知识,希望对你有一定的参考价值。

一、监控概述

·初级:

·1.识别监控对象 (分级)

·2.理解监控对象  (理论基础)

·3.细分监控对象的指标 

·4.确定告警的基准线

 

·预中级:

1.工具化和监控分离

2.监控对象的分类:

2.1 硬件监控 (方法:机房巡检、IPMISNMP简单网络管理协议、)

2.2 系统监控  (对象:cpu、内存、IO【磁盘、网络】)

2.3 服务监控  (对象:分类服务)

2.4 日志监控   (方法:Elastic Stack

2.5 网络监控   (方法: 第三方、Smokeping

2.6  APM应用性能管理   (工具:pinpoint APM

2.7 流量监控(工具:Piwikxx统计、xx分析)

2.8 其他监控 (APP监控、安全监控、业务监控、舆论监控、xx监控等)

3.掌握一个监控工具。例如:zabbix

 

·中级:

0.标准化监控(标准化的脚本、模板、....

1.分布式监控(主动、被动、分布式)

2.自动化监控(自动发现、主动注册【Agent主动注册、Server主动添加(API)】)

3.性能优化(数据采集、数据存储、数据查询)

4.二次开发(定制报表、API调用、)


·进阶:(精通到放弃)

1.告警阈值动态化

2.智能告警:【1.告警去重 2.依赖】

3.故障自愈(事件驱动、主动控制)

4.大规模告警  

 

硬件监控:

1.机房巡检

2.通过网络来巡检

 

例如:DELL  通过iDRAC口监控

  HP    通过ILO

  IBM   通过IMM

  

由于每个厂商不一样可以通过IPMI协议来统一管理。

IPMI简介:

技术分享

技术分享

Ipmitool是一种可用在linux系统下的命令行方式的ipmi平台管理工具,它支持ipmi 1.5规范(最新的规范为ipmi2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。

Ipmitool有两种使用方式:

技术分享

技术分享

安装IPMI

技术分享

Zabbix自带IPMI


安装ipmitool管理工具:

技术分享

详细安装配置请参考网站:

https://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html

建议通过以上IPMI网址安装配置。

 

通过SNMP来管理:

基于SNMP监控

安装略

使用方法

查看cpu负载

snmpget -v2c -c admin 192.168.56.11 .1.3.6.1.4.1.2021.10.1.3.1

UCD-SNMP-MIB::laLoad.1 = STRING: 0.00

snmpwalk -v2c -c admin 192.168.56.11 .1.3.6.1.4.1.2021.10.1.3

UCD-SNMP-MIB::laLoad.1 = STRING: 0.00

UCD-SNMP-MIB::laLoad.2 = STRING: 0.01

UCD-SNMP-MIB::laLoad.3 = STRING: 0.05

 

监控宝 SNMP安装:(环境CentOS 7

1.  CentOS  SNMP安装:

安装net-snmp

yum install net-snmp net-snmp-devel net-snmp-utils

技术分享

说明:net-snmp-devel是为了使用net-snmp-config, net-snmp-utils是为了使用snmpwalk

配置 Net-SNMP

CentOS下的net-snmp无法在selinux环境下正常使用v3。 如果您想使用snmp v3,请先禁用selinux

net-snmp-config --create-snmpv3-user -ro -A [email protected] -a MD5 jiankongbao

 

以上命令,创建一个snmpv3用户,只读,使用MD5,用户名为jiankongbao,密码为[email protected]

注意:运行之前请先停用net-snmp服务。

停止snmpd服务

 service snmpd stop

技术分享

运行Net-SNMP

运行 Net-SNMP 服务的方法比较简单,不过Net-SNMP服务的名字是snmpd

service snmpd start

技术分享

加入开机自启动运行服务列表:

chkconfig snmpd on

技术分享

检测 Net-SNMP

可以使用 snmpwalk 来检测snmp服务是否正常开启。

snmpwalk -v 3 -u jiankongbao -a MD5 -A "[email protected]" -l authNoPriv 127.0.0.1 sysDescr

如果一切正常,就会返回正常结果。

配置 防火墙

Net-SNMP 使用 udp 协议,161端口。

可以实现对mysql监控、Apache监控、Lighttpd监控、nginx监控等等。

例如:

mysql监控:

先创建mysql的权限,需要在被监控的mysql服务器上为监控宝创建一个专用的mysql用户,这样做的好处是:

与您的其它MySQL用户进行有效隔离,独立管理。

对该用户进行受限管理,不需要给予任何MySQL权限。

指定监控宝的访问IP地址,阻止其它非法访问。

操作非常简单,在MySQL中操作如下:

CREATE USER ‘jiankongbao‘@‘60.195.252.106‘ IDENTIFIED BY  ‘your_password‘;

CREATE USER ‘jiankongbao‘@‘60.195.252.108‘ IDENTIFIED BY  ‘your_password‘;

# CREATE USER ‘jiankongbao‘@‘60.195.249.83‘  IDENTIFIED BY  ‘your_password‘;

注意:防火墙安全。在MySQL或者防火墙中指定授权IP地址的时候,请只开放我们指定的IP地址,而不要直接开放整个C类网段,比如60.195.252.0/24,因为该网段中其它服务器不在我们的可控范围内。

 

Apache 监控:

需要开启status模块,修改httpd.conf文件。

添加如下:

ExtendedStatus On

<Location /server-status>

  SetHandler server-status

  Order deny,allow

  Deny from all

  Allow from 60.195.252.106 60.195.252.108

  # Allow from 60.195.249.83

</Location>

 

也可以设置受限访问设置:在配置文件中,修改<location  /server-status>一行。

 

Lighttpd 监控

Lighttpd的状态监控依赖于mod_status模块,幸运的是,Lighttpd缺省已经内置了mod_status模块,我们要做的就是打开配置文件lighttpd.conf,开启这个模块,也就是删除模块前边的“#”注释符,比如:

server.modules              = (

#                               "mod_rewrite",

#                               "mod_redirect",

#                               "mod_alias",

                                "mod_access",

#                               "mod_trigger_b4_dl",

#                               "mod_auth",

                               "mod_status",

                               "mod_fastcgi",

                                "mod_accesslog" )

然后,在lighttpd.conf中找到以下部分:

 

#### status module

status.status-url          = "/server-status"

默认情况下以上语句是被注释的,同样,删掉注释符,保存配置文件,重启lighttpd

 

Nginx监控:

默认情况下不包含状态stub_status,所以编译时添加参数,然后再nginx.conf中开启状态页面。

 

Windows SNMP安装:

http://blog.jiankongbao.com/?p=185

 

详细请参考

技术分享http://wiki.jiankongbao.com/doku.php/%E6%96%87%E6%A1%A3:%E5%AE%89%E5%85%A8%E6%8C%87%E5%BC%95

 

系统监控:

CPU

进程:每一个进程,至少有一个线程。

      每个进程可以有多个线程。

(单CPU单核),进程的内存空间是共享的,每个线程可以使用这些共享。提供协调机制,防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。

 

linux系统中用top命令查看到用户态和内核态,为什么会有用户态和内核态?

0为内核态

3为用户态

 

CPU监控指标:中断/使用率/cpu负载/上下文切换/僵死进程的监控、最大进程的运行数量、

Top uptime vmstat mpstat  lscpu

CPU负载:单位时间内运行队列中就绪等待的进程数平均值。

内存:

虚拟内存linux管理的是虚拟内存swap、物理内存,linux管理虚拟内存

内存是分页的,内存页默认每页是4K

Free –m查看内存时,剩余内存需要查看available

         total        used        free      shared  buff/cache   available

Mem:        977         102         514           6         360         714

Swap:          2047           0        2047

 

优化内存

echo  "0" > /proc/sys/vm/swappiness

cat /sys/block/sda/queue/scheduler

IO

Iftop  -n 不解析域名  -i  指定网卡名 –P 显示端口名

i ftop -i eth0 -F 技术分享192.168.56.0/24

 

Nethogs

Iotop  

 

负载均衡器一定要监控tcp状态

 

 

以下是链接以及工具

http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

http://os.51cto.com/art/201012/240476.htm

http://www.cnblogs.com/cutepig/p/3403711.html 

http://elf8848.iteye.com/blog/2089055

yum  -y  install nethogs

yum y install iotop

yum –y install iftop

yum –y install sysstat

网络监控:

检测工具:

技术分享http://ping.chinaz.com/ 

开源工具:SmokePing支持分布式

 

zabbix部署

 

1.什么是zabbix

Zabbix是一个分布式开源的监控系统,支持多种采集方法,使它几乎可以采集和处理所有类型的监控数据;灵活的报警机制,可以实现各种的自定义报警策略,强大的拓展性,可以自定义监控项、图形、模板,还支持自动注册和自动发现,使它可以快速构建一套大型的监控系统,还有丰富的API接口。

其他监控系统cactinagiosMangeEngine_ApplicationsManager,lepussmokepingpiwiki等选zabbix的理由:简单、高效、灵活

安装zabbix前需准备环境:

时间同步:

yum -y install ntpdate

技术分享

设置计划任务:crontab -e

echo ‘* * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null‘ >>/var/spool/cron/root

查看计划任务:

crontab  -l

1.设置主机名解析
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.105 zabbix-server

2.安装 EPEL 仓库和常用命令
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum install -y net-tools vim lrzsz tree screen lsof tcpdump

 

注意:如果epel源不能使用,请自行切换其他yum源,本次安装zabbix-server不需要网络,但是,由于选择的是基础环境安装,需要安装的工具包。
5.更新系统并重启
yum update -y && reboot

 

安装部署zabbix 3.0 LTS

Zabbix 3.0的安装

软件版本要求:

http 1.3.12

Php 5.4.0(不支持php7.0

Mysql 5.0.3

Zabbix 3.0版本不支持php v7版本。入选用php v7 选择使用zabbix 3.2

安装YUM源。

rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

/etc/yum.repo下形成一个zabbix.repo文件

技术分享

打开zabbix.repo文件yum源是指向国外的官网的,为了访问方便,建议把yum源地址改为阿里云的源

修改yum源指向阿里源:

baseurl=http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/$basearch/

baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/

查看zabbix安装包:

yum list | grep zabbix

技术分享

安装zabbix包

yum -y install zabbix-server-mysql zabbix-web-mysql

安装数据库:

yum -y install mariadb mariadb-server

启动mariadb服务并设置开机自启动。

systemctl enable mariadb.service

systemctl start mariadb.service 

技术分享

要想使用补全命令可以安装epel源的包。

yum install bash-comp* -y

初始化数据库:

mysql_secure_installation

设置数据库密码:

mysqladmin -u root password

进入数据库:

mysql -uroot -p

创建数据库,并设置字符集为Utf-8

create database zabbix character set utf8 collate utf8_bin;

授权数据库:

grant all privileges on zabbix.* to [email protected]‘localhost‘ identified by ‘123.Com‘;

打开导入数据库并验证zabbix数据库:

zcat /usr/share/doc/zabbix-server-mysql-3.0.8/create.sql.gz|mysql -uzabbix -p123.Com zabbix

注意zcat是一个查看命令。

设置web界面:

vim /etc/httpd/conf/httpd.conf

技术分享

更改ServerName

启动web服务:

systemctl  restart  httpd.service

systemctl  enable  httpd.service

技术分享

配置zabbix-server,设置配置文件中添加密码:

vim /etc/zabbix/zabbix_server.conf

启动zabbix-server服务:

systemctl start zabbix-server.service

注意:

Zabbix端口号10051

Zabbix的web配置文件默认安装再/etc/httpd/conf.d/

连接php的配置文件默认安装再/etc/httpd/conf.d/

技术分享

关闭NetworkManager和防火墙:
systemctl disable firewalld
systemctl disable NetworkManager

4.关闭并确认 SELinux 处于关闭状态
vim /etc/sysconfig/selinux
SELINUX=disabled #修改为 disable

setenforce 0

getenforce 

技术分享

注意:不注意防火墙或者NetworkManagerselinux会导致zabbix启动了却web界面里还是显示zabbix 未启动。

进入web界面安装zabbix

输入http://zabbix服务器地址/zabbix/setup.php进入,根据向导安装。更改时区

修改/etc/httpd/conf.d/zabbix.conf中的一行:

 php_value date.timezone Asia/Shanghai把这一行的注释去掉地点改为上海。

Asia/Shanghai

技术分享

更改完毕后,重启httpd.service服务。

技术分享

这是安装zabbix的向导安装的第一步:

技术分享

这是安装zabbix的向导安装的第二步

可以看到时间地点已经更改成功了!

技术分享

下一步设置连接数据库的用户密码等:

技术分享

下一步设置命名:

技术分享

下一步:

技术分享

安装zabbix

技术分享

输入用户密码,进入zabbix界面。

默认的用户:Admin   密码:zabbix技术分享

进入了zabbix的界面:

技术分享

由于只安装了zabbix,并没有配置zabbix配置

修改zabbix配置文件:

vim /etc/zabbix/zabbix_server.conf 

技术分享

修改配置文件中的DBPassword=这一行并把注释去掉!

技术分享

重启zabbix-server服务并设置开机自启动

技术分享

下面再看一下zabbix界面NO变成了YES.

技术分享

显示zabbix已经正常启动!

如果zabbix到达瓶颈可以进行拆分。

/etc/zabbix/web/zabbix.conf.ph在这个文件中配置拆分。

要想让zabbix监控自己,需要安装一个zabbix-agent 可以监控自己本身。依赖openssl

修改zabbix-agent配置文件

vim  /etc/zabbix/zabbix_agentd.conf

可以配置主动和被动

启动zabbix-agent服务:

systemctl start zabbix-agent

技术分享

可以看到如下zabbix server主机hosts

技术分享

可以看到如下zabbix server主机hosts

技术分享

看到已启动!

Zabbix主动模式和被动模式:

理论:

 

被动模式流程,被动模式一定要记得设置Server ServerIP

被动模式工作流程:

Server 打开一个TCP连接

Server发送一个key agent.ping

Agent接受这个请求,然后响应< HEADER >< DATALEN >

Server对接受到的数据进行处理

TCP连接关闭

 

主动模式流程:主动模式一定要记得设置ServerActive=ServerIP

AgentServer建立一个TCP连接

Agent请求需要检测的数据列表

Server响应Agent,发送一个Items列表

Agent允许响应

TCP连接完成本次会话关闭

Agent开始周期性地收集数据

 

安装第二台agent

安装agent服务:

rpm -ivh zabbix-agent-3.0.5-1.el7.x86_64.rpm

技术分享

启动并设置开机自启

systemctl start zabbix-agent.service

systemctl enable zabbix-agent.service 

技术分享

Zabbix添加监控主机:

configuration中选择hosts

技术分享

如果Groups没有可以NEW一个,然后ip地址填写agentip,添加完毕后不要add

还需要添加Templates模板之后再按add(在这里选择Template OS Linux模板)

截图如下:

技术分享

可以看见host主机添加成功:

技术分享

发现添加的主机ZBX为红色,报错如下:

Received empty response from Zabbix Agent at [192.168.0.106]. Assuming that agent dropped connection because of access permissions.

技术分享

解决办法:修改agent的配置文件:

vim /etc/zabbix/zabbix_agentd.conf

技术分享

修改为Server=zabbix serverip地址)

Server=192.168.0.105

技术分享

重启zabbix-agent服务:

systemctl restart zabbix-agent.service

技术分享

可以看到如下图红色变为了绿色,问题解决了!

技术分享

使用zabbix-get

安装zabbix-get服务:

yum install -y zabbix-get

测试方法:

例如:

zabbix_get -s linux-node2.example.com -k agent.ping

只能取zabbix  agent类型

查看本机有多少内置key

zabbix_agentd -p

技术分享

zabbix简单的安装配置及其理论!希望可以帮到大家!后期会为大家更新zabbix监控各种服务!

本文出自 “卢春宁” 博客,谢绝转载!

以上是关于Zabbix监控的主要内容,如果未能解决你的问题,请参考以下文章

zabbix怎么监控hpunix

zabbix怎么添加监控交换机

Security基础:部署Zabbix监控平台配置及使用Zabbix监控系统自定义Zabbix监控项目实现Zabbix报警功能

运维监控 zabbix可以做哪些监控

zabbix如何调用脚本进行远程监控

运维监控 zabbix可以做哪些监控