再有谁说不熟悉 Zabbix 监控系统,就把这个给他扔过去!

关注公众号,回复“1024”获取2TB学习资源!

监控概述

为什么要监控

网站可用性

在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。

1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天
2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天
3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒

监控什么东西

监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控

监控范畴

0d7d1289b3cf98f5e4d7c51a82007605.png

怎么来监控

远程管理服务器

如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM。

监控硬件

查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。

使用ipmitool实现对服务器的命令行远程管理

yum -y install OpenIPMI ipmitool  #->IPMI在物理机可以成功,虚拟机不行

[root@KVM ~]# ipmitool sdr type Temperature
Temp             | 01h | ns  |  3.1 | Disabled
Temp             | 02h | ns  |  3.2 | Disabled
Temp             | 05h | ns  | 10.1 | Disabled
Temp             | 06h | ns  | 10.2 | Disabled
Ambient Temp     | 0Eh | ok  |  7.1 | 22 degrees C
Planar Temp      | 0Fh | ns  |  7.1 | Disabled
IOH THERMTRIP    | 5Dh | ns  |  7.1 | Disabled
CPU Temp Interf  | 76h | ns  |  7.1 | Disabled
Temp             | 0Ah | ns  |  8.1 | Disabled
Temp             | 0Bh | ns  |  8.1 | Disabled
Temp             | 0Ch | ns  |  8.1 | Disabled

查看cpu相关

lscpu、uptimetop、htop vmstat mpstat

其中htop需要安装,安装依赖与epel源。

[znix@clsn ~]$lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
Stepping:              4
CPU MHz:               2494.150
BogoMIPS:              4988.30
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              33792K
NUMA node0 CPU(s):     0

内存够不够可以用

[znix@clsn ~]$free -h
             total       used       free     shared    buffers     cached
Mem:          996M       867M       128M       712K       145M       450M
-/+ buffers/cache:       271M       725M
Swap:         1.0G         0B       1.0G

磁盘剩多少写的?快不快?可以用df、dd、iotop

[znix@clsn ~]$df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   24G   15G  62% /
tmpfs           499M   20K  499M   1% /dev/shm
/dev/vdb1        20G  4.4G   15G  24% /data

监控网络 iftop nethogs

  • iftop   监控主机间流量  -i 指定监控网卡

  • nethogs 监控进程流量

监控工具总览

  • mrtg 流量监控出图

  • nagios 监控

  • cacti  流量监控出图

  • zabbix 监控+出图

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

zabbix介绍

Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。

使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做死活监视。

在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。

另外,Zabbix 包含 XMPP 等各种 Item 警示功能。

zabbix的组成

41f43522e4cf792dc8f156db20723556.png

zabbix官网: https://www.zabbix.com

zabbix 主要由2部分构成 zabbix serverzabbix agent

zabbix proxy是用来管理其他的agent,作为代理

zabbix监控范畴

  • 硬件监控 :Zabbix IPMI Interface

  • 系统监控 :Zabbix Agent Interface

  • Java 监控:ZabbixJMX Interface

  • 网络设备监抟:Zabbix SNMP Interface

  • 应用服务监控:Zabbix Agent UserParameter

  • MySQL 数据库监控:percona-monitoring-pldlgins

  • URL监控:Zabbix Web监控

安装zabbix

环境检查

[root@m01 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

[root@m01 ~]# uname -r
3.10.0-693.el7.x86_64

[root@m01 ~]# getenforce
Disabled

[root@m01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

安装zabbix过程

安装方式选择

  • 编译安装 (服务较多,环境复杂)

  • yum安装(干净环境)

服务端快速安装脚本

#!/bin/bash
#clsn

#设置解析 注意:网络条件较好时,可以不用自建yum源
# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts

#安装zabbix源、aliyun YUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

#安装zabbix 
yum install -y zabbix-server-mysql zabbix-web-mysql

#安装启动 mariadb数据库
yum install -y  mariadb-server
systemctl start mariadb.service

#创建数据库
mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'

#导入数据
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix

#配置zabbixserver连接mysql
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf

#添加时区
sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

#解决中文乱码
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

#启动服务
systemctl start zabbix-server
systemctl start httpd

#写入开机自启动
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start mariadb.service
systemctl start httpd
systemctl start zabbix-server
EOF

#输出信息
echo "浏览器访问 http://`hostname -I|awk '{print $1}'`/zabbix"

客户端快速部署脚本

#!/bin/bash
#clsn

#设置解析
echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts

#安装zabbix源、aliyu nYUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

#安装zabbix客户端
yum install zabbix-agent -y
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
systemctl start  zabbix-agent.service

#写入开机自启动
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start  zabbix-agent.service
EOF

检测连通性

服务端安装zabbix-get检测工具

yum install zabbix-get

在服务端进行测试

注意:只能在服务端进行测试

zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

测试结果

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

web界面操作

zabbix的web安装

使用浏览器访问 http://10.0.0.61/zabbix/setup.php5277beb1a8380188acff0415bd88add4.png

在检测信息时,可查看具体的报错信息进行不同的解决f219c72955a640e68c91952e8d39f255.png

选择mysql数据库,输入密码即可861fe3baa084aa2e31aeab2ec499be5f.png

host与port不需要修改,name自定义8ae61c79cdcf9f38d922d677b5648ce6.png

确认信息,正确点击下一步7b5a53c7973824198ac726073411f82a.png

安装完成、点击finshff6d533056b32c1c962d1d01bd578bc8.png

进入登陆界面  账号Admin密码zabbix   注意A大写fd2bb78903dd279c6bfee4a33f763259.png

添加监控信息

修改监控管理机 zabbix server 配置 >> 主机8a7bba5387bb37e8647716a454ac9836.png

  • 主机名称:要与主机名相同,这是zabbix server程序用的

  • 可见名称:显示在zabbix网页上的,给我们看的

08c08b2897adf501cb57a48d77acc6fd.png

修改后,要将下面的已启用要勾上c09a3380355745aec2a6da46159bb0c1.png

添加完成就有了管理机的监控主机9be685822c981fe17d025234d79452b6.png

添加新的主机

配置 >> 主机 >> 创建主机50001177a5e731886a21ee0ff4b365f1.png

注意勾选以启用6b13549ccc473ea2882e18f4108e31bb.png

然后添加模板,选择linux OS ,先点小添加,再点大添加。c3c2c1a55131bd8d3e8febebf119f7e4.png

添加完成,将会又两条监控主机信息66fa8050eb6404bdd0950538a7ab6ddd.png

查看监控内容

检测中  >> 最新数据,在最新数据中需要筛选,4e544f7ce438de92fd142967af7183a0.png

输入ip或者名字都能够搜索出来0d806f299ec062a79926d9b265002155.png

在下面就会列出所有的监控项9680dd7b2f90aa62bba8327565124a04.png

查看图像

检测中 >> 图形,选择正确的主机。选择要查看的图形即可出图b7b57fba4ed748e24c7efa01ec3e7717.png

自定义监控与监控报警

自定义监控

zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。

需求:服务器登陆人数不能超过三人,超过三人报警

预备知识

自定义key能被server和agent认可

# 正确的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname"
Linux cache01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 
# 没有登记的,自定义的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
ZBX_NOTSUPPORTED: Unsupported item key. 
# 写错的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname1"
ZBX_NOTSUPPORTED: Unsupported item key.

实现自定义监控

自定义语法

UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh

agent注册

[root@cache01 ~]# cd /etc/zabbix/zabbix_agentd.d/

[root@cache01 zabbix_agentd.d]# vim userparameter_login.conf
UserParameter=login-user,who|wc -l
UserParameter=login-user2,who|wc -l
UserParameter=login-user3,who|wc -l

注意:key名字要唯一,多个key以行为分割

# 修改完成后重启服务

[root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service

在server端进行get测试

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user2"
3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user3"
3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user4"
ZBX_NOTSUPPORTED: Unsupported item key.

在server端注册(web操作)

①创建模板

配置 >> 模板 >> 创建模板13c0a3b6465585cb4da5e4af8ffc2cd7.png

点击添加,即可创建出来模板64a96bba78de3cc00dd3ffe2da55e645.png查看创建出来的模板。↑

②创建应用集

应用集类似(目录/文件夹),其作用是给监控项分类。

点击 应用集 >> 创建应用集7e414b0efe2a0f77fdd2d2ba54e1a45b.png自定义应用集的名称,然后点击添加

③   创建监控项

监控项 >> 创建监控项60c28d944ec77dc2a382b6cca741b4c8.png键值 -- key,即前面出创建的login-user。3ae4b9872366de80b8f90b2e16eef146.png注意:创建监控项的时候,注意选择上应用集,即之前创建的安全。1e0ea547a8af35407539b1e7acbd19e0.png

④创建触发器

触发器的作用:当监控项获取到的值达到一定条件时就触发报警(根据需求创建)

触发器 >> 创建触发器

创建触发器,自定义名称,该名称是报警时显示的名称。表达式,点击右边的添加,选择表达式。严重性自定义。ea8b29693fc008fe8a666ad48f4330ff.png表达式的定义 ↓ ,选择之前创建的监控项,最新的T值为当前获取到的值。df287b888c8f955cac0380ec087103b3.png添加完成,能够在触发器中看到添加的情况3e6165f2127f2a4fab1bdec1b62c6d7c.png

⑤创建图形

以图形的方式展示出来监控信息,图形 >> 创建图形,名称自定义,关联上监控项。15bad943c9566132636fd64d9504015c.png

⑥主机关联模板

配置 >> 主机,一个主机可以关联多个模板eb59c2ea55afe6ec0ffb4c2709c8ab31.png

查看监控的图形

c2ac0aa4121c72d7c42d64bba54025a2.png

监控报警

第三方报警平台

http://www.onealert.com,通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,您可以在最合适的时间,将最重要的信息推送给最合适的人员。

onealert配置

添加应用,注意添加的是zabbixb1f183755c1b44d6109954009493059c.png实现微信报警需要关注微信公众号即可。5e16e1ae4d283623f24352a71875e804.png

安装 onealert Agent

1.切换到zabbix脚本目录(如何查看zabbix脚本目录):

cd /usr/local/zabbix-server/share/zabbix/alertscripts

#查看zabbix脚本目录
vi /etc/zabbix/zabbix_server.conf
查看AlertScriptsPath

2.获取OneITSM agent包:

wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz

3.解压、安装。

tar -zxf oneitsm_zabbix_release-1.0.1.tar.gz
cd oneitsm/bin
bash install.sh --#个人生成的key

注:在安装过程中根据安装提示,输入zabbix管理地址、管理员用户名、密码。

  • Zabbix管理地址: http://10.0.0.61/zabbix/

  • Zabbix管理员账号: Admin

  • Zabbix管理员密码:

4.当提示"安装成功"时表示安装成功!

验证告警集成:产生新的zabbix告警(problem),动作状态为“已送达”表示集成成功。

如何删除onealert Agent

① 删除报警媒介类型中的脚本3fac4e29ec13f5a446c4b3678f2b2da9.png

② 删除创建的用户64db6361a909aabd4e74be7841cff98b.png

③ 删除用户群组de4f11373a03ad58fb5d914121947d58.png

④ 删除创建的动作7557b64df7f6edafc877496d67ae1694.png

触发器响应,发送报警信息

6a7ac6e7b63d44c50d384fce0e678937.png在微信和邮件中,均能收到报警信息。26255a77dd5a108a5a20eaa4e106d6eb.png注意:当状态改变的时候才会发邮件,好-->坏|坏-->好。

监控可视化

聚合图形

最新数据 >> 图形833486f6e0523daad6b0ba8e38043b36.png

自定义名称8ef5723404df8fcfa627242ab11be814.png

点击聚合图形的名称,进行更改,添加要显示的图形即可。cfe0ff427f0df4a49f88645bb2d714a4.png

幻灯片

添加幻灯片:监测中 >> 复合图形 >> 幻灯片演示6e5f1a8e62bb7b361add208fbb5c281d.png

创建幻灯片,名称自定,选择要显示的c3f683b2fab3767a27143ac7c9b8368f.png幻灯片根据设定的时间自动播放

模板的共享

主机共享

在主机页打开,全选后点击导出1511df66014f3ef357cd865257da56b3.png

导入0a04345368f5efe854121fd9cc66a23b.png

模板共享

https://github.com/zhangyao8/zabbix-community-repos32bee8db4d3731c4f6b47b3842a6c2d6.png

监控全网服务器

需求说明

实际需求:公司已经有了100台服务器,现在需要使用zabbix全部监控起来。

规划方案

常规监控:cpu,内存,磁盘,网卡  问题:怎样快速添加100台机器

  • 方法1:使用克隆的方式

  • 方法2:自动注册和自动发现

  • 方法3:调用zabbix api接口  curl 、python

    • 开发自己的运维平台兼容zabbix的通道

    • 服务监控,url监控等特殊监控:自定义监控

api接口使用(curl)

curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php"

curl -i -X POST -H 'Content-Type:application/json' -d'
    {
        "jsonrpc": "2.0",
        "method": "host.get",
        "params": {
            "output": [
                "hostid",
                "host"
            ],
            "selectInterfaces": [
                "interfaceid",
                "ip"
            ]
        },
        "id": 2,
        "auth": "6a450a8fc3dce71fd310cfe338746578"
    }' "http://10.0.0.61/zabbix/api_jsonrpc.php"

具体实施规划

硬件、系统、网络监控

所有集群节点(所有虚拟机)都监控上,交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡),snmp监控。

应用服务监控

1.监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;

  • 方法1:监控873端口net.tcp.port[,873]

  • 方法2:模拟推送拉取文件

2.监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;

  • 方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]

  • 方法2:showmount -e ip|wc -l

3.监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;

  • 方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]

  • 方法2:mysql远程登录

  • 方法3:使用zabbix agent自带的模板及key

4.监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;

  • 方法1:端口(通过80的web端口) net.tcp.port[,80]

  • 方法2:看网页状态码、返回内容==zabbix 自带WEB检测

5.监控URL地址来更精确的监控我们的网站运行正常;

  • 使用zabbix自带的监控Web监测 进行监控

6.监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。

  • nginx,pptp

  • ntp 端口udp 123

7.监控Nginx的7种连接状态。

  • 自定义监控

监控服务通用方法

  1. 监控端口 netstat ss lsof ==》 wc -l

  1. 监控进程 ps -ef|grep 进程|wc -l  试运行一下

  • web  ==》 curl

  • mysql ==》 select insert

  • memcache ==》 set再get

  1. 模拟客户端的使用方式监控服务端

实施全网监控

安装客户端脚本,for centos6

#!/bin/bash

#设置解析
# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts

#安装zabbix源、aliyu nYUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

yum clean all
yum clean all
#安装zabbix客户端
yum install zabbix-agent -y
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
/etc/init.d/zabbix-agent start

#写入开机自启动
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
/etc/init.d/zabbix-agent start
EOF

使用自动发现规则

添加自动发现规则afbb9cc273f53d7ad95fe7c752e9a265.png

创建发现动作978c07ed533ee3ec1c321ae3ede3fa8d.png

查看自动发现的机器。f82202b7307af738060142e46d745025.png

监控备份服务器

利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板682a7ed1ac7fba1c664370102f2a8f7a.png

在服务端进行测试

[root@m01 ~]# zabbix_get -s 172.16.1.41 -p 10050 -k "net.tcp.listen[873]"
1

# 1为端口在监听 0为端口未监听

将模板添加到主机8e5e8f09e9c55dd54a6e7d83d841b389.png

监控NFS服务器

创建nfs监控模板,使用 proc.num[<name>,<user>,<state>,<cmdline>]  键值,检测nfs进程的数量4fe078c369f2eac3f865013ceb4659e0.png

在服务端进行测试

[root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[,,,rpc]"
5

[root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[nfsd,,,]
8

将模板绑定到主机73b16419011491f32f1bd58263e7b39b.png

监控MySQL服务器

将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。8e19246ccf1c21b374e58617e8c99726.png

使用系统自带模板 net.tcp.port[<ip>,port]利用自带的监控端口键值进行监控e271837282ab632be0b47b5666907159.png

添加新的mysql监控项端口6041755c4fb65a2786a95303ca3f6ac1.png

[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "net.tcp.port[,3306]"
1

#检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

将模板关联到主机1908c98c5f48f8dd97040985b5092a1e.png

监控web服务器

创建监控模板 监控 nginx服务与 80 端口

proc.num[<name>,<user>,<state>,<cmdline>]   进程数。返回整数
net.tcp.port[<ip>,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接
51bc3a0bed58ffbe5db567dcfe2b79f3.png
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "proc.num[,,,nginx]"
2

[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]"
1

将模板关联到主机403e776d1e30dfa22dffa8196836daa6.png

监控URL地址

创建监测页面

echo ok >> /application/nginx/html/www/check.html

测试监控面页

[root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;done
ok
ok
ok

创建web监测模板

创建应用集a9c009aeac999ca811102c6f4dd81d2f.png

创建Web场景ca157ad3abf400f503a47b1c70b8ad18.png

创建图形653669ae67592bb208f9312c02864c98.png

将模板关联到主机c0f65f843c52135e28ef1e21de902297.png

监测结果104c7432978d60e24543338fee894f9f.png

监控反向代理服务器

创建自定义key

[root@lb01 ~]# cat  /etc/zabbix/zabbix_agentd.d/userparameter_nk.conf
UserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l

在服务端测试

[root@m01 ~]# zabbix_get -s 172.16.1.5  -p 10050 -k "keep-ip"
1

[root@m01 ~]# zabbix_get -s 172.16.1.6  -p 10050 -k "keep-ip"
0

在web界面添加模板57b5c13743a845c97473740dbf2ad82b.png

将模板关联到主机889cb3cf38745d7d7457024c67b4fd5c.png

监控Nginx的7种连接状态

nginx服务器显示status
……
    location /status {
           stub_status on;
           access_log off;
    }
……
[root@web01 ~]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;done
Active connections: 1
server accepts handled requests
 73 73 69
Reading: 0 Writing: 1 Waiting: 0

Active connections: 1
server accepts handled requests
 134 134 127
Reading: 0 Writing: 1 Waiting: 0

Active connections: 1
server accepts handled requests
 7 7 7
Reading: 0 Writing: 1 Waiting: 0

在nginx服务器上添加key

cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF'
UserParameter=nginx_active,curl -s  127.0.0.1/status|awk '/Active/ {print $NF}'
UserParameter=nginx_accepts,curl -s  127.0.0.1/status|awk 'NR==3 {print $1}'
UserParameter=nginx_handled,curl -s  127.0.0.1/status|awk 'NR==3 {print $2}'
UserParameter=nginx_requests,curl -s  127.0.0.1/status|awk 'NR==3 {print $3}'
UserParameter=nginx_reading,curl -s  127.0.0.1/status|awk 'NR==4 {print $2}'
UserParameter=nginx_writing,curl -s  127.0.0.1/status|awk 'NR==4 {print $4}'
UserParameter=nginx_waiting,curl -s  127.0.0.1/status|awk 'NR==4 {print $6}'
EOF

服务端测试

[root@m01 ~]# zabbix_get -s 172.16.1.7  -p 10050 -k "nginx_waiting"
0

[root@m01 ~]# zabbix_get -s 172.16.1.8  -p 10050 -k "nginx_waiting"
0

[root@m01 ~]# zabbix_get -s 172.16.1.9  -p 10050 -k "nginx_waiting"
0

在zabbix-web上添加d7081c02df2dca6dbe26363b822473b1.png

监控项d22c00e673c4916f230ace2ee58a363b.png

添加图形adbd9b5ece244a048e9ab15e86990303.png

将模板关联到主机9c030147f9932a78b3e70336662eae47.png

查看添加的图形2b8717d44a1ac5906cc6965a578ec1d7.png1b680c82c7c2588edf06724e366f37b2.png

自动发现与自动注册

自动注册与自动注册简介

自动发现:zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。自动注册:

zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)

两种模式

  • 被动模式:默认  agent被server抓取数据 (都是在agent的立场上说)

  • 主动模式:agent主动将数据发到server端 (都是在agent的立场上说)

注意:两种模式都是在agent上进行配置

zabbix 的使用要在hosts文件中预先做好主机名的解析

自动发现--被动模式

  • 第一个里程碑:完成之前的安装

    • zabbix Server安装完毕

  • 第二个里程碑:配置agent客户端

    • zabbix agent安装完毕,注意配置Server=172.16.1.61

  • 第三个里程碑:在web界面上进行配置

    • web界面:配置 >> 自动发现 >> Local network

使用自带的自动发现规则(进行修改)即可

aeff91e74fbbee5d70d8a1bcccc9611a.png

在ip范围内输入ip,注意格式;

延迟在实际的生产环境中要大一些,实验环境可以小一些f133759cc6b42a46ae0fd6cc47568ff6.png

创建发现动作:配置 >> 动作 >> Auto discovery. Linux servers.bffb9ae494ee33fa968c4c3fda5f9d69.png

① 配置动作373874c5d79d00292b73d916eb1b9666.png

② 在条件中添加条件,让添加更准确7ac08b5cbb18ee8deaaa449a92463577.png

③  在操作中添加

a) 添加主机与启用主机f62cbc69bd1dbe3eb70512eb49a41f52.png然后等待者客户端自动上门就好😏

自动注册--主动模式

  • 第一个里程碑:zabbix Server安装完毕 (完成)

  • 第二个里程碑:zabbix agent安装完毕,需要额外增加的配置

vim /etc/zabbix/zabbix_agentd.conf
ServerActive=172.16.1.61
# Hostname=Zabbix server
HostnameItem=system.hostname
 
systemctl restart zabbix-agent.service
netstat -tunlp|grep zabbix

源文件与修改后对比1123167e9d610d0f14b9a66fb28eb0ba.png7dfaacf5bf2b41d4bea847e851c68412.png

  • 第三个里程碑:在web见面上进行配置

配置 >> 动作 >> 事件源(自动注册) >> 创建动作1d02fd39714b5859ad68364fb1df4e1c.png创建动作,添加名称即可6cb94d0e743f022b4427a4ebdd1ab9cd.png条件中也无需修改58697ccf0c03dac748c20e4829727e61.png在动作中添加动作(添加主机、添加到主机群组、链接到模板)14ce17a089e19a8eedf9641f99bb260a.png添加完动作后,等待就行了

注意:重启客户端可以加速发现。但是在生产环境中勿用。29b8cce308e21c6e5a3ac8e8f99b10b6.png

分布式监控与SNMP监控

分布式监控

作用:分担压力,减轻负载,多机房监控

zabbix Server  ===》  zabbix agent (只能同一个局域网监控)

分担压力,降低负载

zabbix Server ===》zabbix proxy ===》zabbix agent1 agent2 agent3 。。。

172.16.1.61           172.16.1.21        172.16.1.0/24
===》  zabbix proxy  ===》zabbix agent4 agent5 agent6 。。。

多机房监控

zabbix Server(北京) ==》 zabbix proxy(每个机房搭建) ==》 zabbix agent
122.71.240.233/172.16.1.61   122.71.241.11/172.16.2.21   172.16.2.0/24

环境说明

  • zabbix server m01

  • zabbix proxy cache01

  • zabbix agent  cache01

配置zabbix proxy

第一个里程碑:配置zabbix yum源,并安装proxy

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-proxy-mysql -y

第二个里程碑:安装数据库

zabbix  proxy也需要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息

#安装数据库

yum -y install mariadb-server
systemctl start mariadb.service

#建立数据库

mysql
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
exit

#导入数据文件

zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

#配置zabbix proxy 连接数据库

sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Hostname=Zabbix proxy#Hostname=cache01#' /etc/zabbix/zabbix_proxy.conf

# Hostname 作为后面添加的代理程序名称,要保持一致
#启动

systemctl restart zabbix-proxy.service
#检查端口

[root@cache01 ~]# netstat -lntup |grep zabbix
tcp        0      0 0.0.0.0:10050     0.0.0.0:*       LISTEN      105762/zabbix_agent
tcp        0      0 0.0.0.0:10051   0.0.0.0:*         LISTEN      85273/zabbix_proxy 
tcp6       0      0 :::10050       :::*      LISTEN      105762/zabbix_agent
tcp6       0      0 :::10051  :::*           LISTEN      85273/zabbix_proxy

第三个里程碑:修改agent配置指向 proxy

[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.61
ServerActive=172.16.1.61

[root@cache01 ~]# sed -i 's#172.16.1.61#172.16.1.21#g' /etc/zabbix/zabbix_agentd.conf

[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.21
ServerActive=172.16.1.21

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

第四个里程碑:web界面添加代理

管理 >> agent代理程序 >> 创建代理83bc2b1efcb6d9d794101eeb77e46b10.png

代理程序名称要填写主机名952a506deb42b453a43768153b43e429.png

稍等片刻就能在程序中出现代理8af76acc5c7c7e157ca0774623c6d1d5.png

在主机中能发现主机代理a08c1d4618711197d92dbb4be778879b.png

SNMP监控

使用范围

无法安装agent  很多前辈的监控软件都可以监控各种设备  都是通过snmp监控snmp simple network manager protocol 简单网络管理协议

简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

安装snmp程序

yum -y install net-snmp net-snmp-utils

配置snmp程序

sed -i.ori '57a view systemview   included  .1' /etc/snmp/snmpd.conf
systemctl start snmpd.service

测试snmp

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: m01

说明:

# snmpwalk 类似 zabbix_get
# -v 2c  指定使用snmp协议的版本 snmp分为v1 v2 v3
# -c public  指定暗号
# sysname  类似zabbix的key

在web界面进行配置

添加新的主机,注意使用snmp接口dce0b3ca20a98c629592b262fae36d1d.png

选择模板,注意使用SNMP的模板5618f4584448815a3372f252e6f391dc.png

添加完成就能够在主机中看到snmp监控对的主机01c907dc2904c5efc2d7f433f6c9cdd4.png

附录

#SNMP OID列表 监控需要用到的OID
http://www.ttlsa.com/monitor/snmp-oid/
cmdb 资源管理系统

来源:惨绿少年 

链接:cnblogs.com/clsn/p/7885990.html

推荐阅读 点击标题可跳转

Linux、数据库、Redis等统一管理平台,有点牛逼!

使用 Docker 搭建本地开发环境!真心强啊

微软出手了!拯救“四分五裂”的 Markdown

卧槽!外包员工上班戴耳机被开除。。。

构建你的第一个仪表盘!Grafana 中文入门教程

认罪了!承认跳槽前窃密,或面临 10 年监禁

最简明的 Systemd 入门指南,重点都划好了~

转发 关注

点亮下方“在看”图标

更多人看到

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值