zabbix全网监控

一、为什么要监控

运维的职责:

1.保障企业数据的安全可靠。

2.为客户提供7*24小时服务。

3.不断提升用户的体验。

监控就是在关键时刻,提前提醒我们服务器要出问题了,当出问题之后,可以便于找到问题的根源。

二、常用的监控命令

CPU监控命令:top,vmstat,cat /pro/cpuinfo

内存监控命令:top,free,iotop

磁盘IO:iotop,iostat(软件包名称sysstat)

查看raid信息:megacli

查看硬件信息:ipmitools

带宽监控命令:iftop,nethogs

常见端口监控命令:telnet,ss,netstat,lsof,nc,nmap

三、监控什么

1. 利用OSI/IOS7层协议

应用层:监控协议http/https/ssh 如nginx mysql rsync tomcat(进程,URL地址、服务是否正常使用)

表示层:表示层

会话层:会话层

传输层:监控TCP/UDP端口

网络层:IP地址,一般监控带宽的延迟

数据链路层:MAC地址,一般监控交换机,路由器等,一般都是基于SNMP协议进行监控的

物理层:监控设备中的CPU温度、内存、硬盘容量、磁盘IO、RAID、负载等

2. 监控用户访问网站的流程:

DNS解析流程:查看世界各地访问网站的的情况,可以说通过http://ping.chinaz.com 进行测试

TCP/IP三次握手:监控服务器的连接状态

HTTP请求:会话层

HTTP响应:TCP/UDP端口,主要用来分析日志

TCP/IP四次挥手:监控服务器的连接状态

3.监控的数据一般分为以下四类:

1)系统本地资源:负载(uptime)、CPU(top,sar)、磁盘(df -hi)、内存(free)、I/O(iostat)、Raid内磁盘故障、CPU温度、passwd文件的变化、本地所有文件的改动

2)网络服务:端口、Web(URL)、DB、ping包、进程、IDC带宽网络流量

3)其他设备:路由器、交换机(端口、光衰、日志)、打印机、Windows等

4)业务数据:用户登录失败次数、用户登录网站次数、输入验证码失败次数、某个API接口流量并发、网络连接数、IP、PV数、电商网站订单、支付交易的数量等。

四、监控工具

mrtg 流量监控出图

nagios 监控平台

cacti 流量监控出图

zabbix 监控+出图,所有监控范畴,都可以整合到Zabbix中。

          硬件监控:Zabbix IPMI Interface

         系统监控:Zabbix Agent Interface

         Java监控:Zabbix JMX Interface

         网络设备监控:Zabbix SNMP Interface

         应用服务监控:Zabbix Agent UserParameter

         MySQL数据库监控:percona-monitoring-plulgins

         URL监控:Zabbix Web 监控

五、zabbix介绍

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

zabbix(音同 zæbix)是一个基于WEB界面的,提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

六、zabbix部署

第一个里程:安装服务端软件包

安装zabbix的官方源

[root@m01 ~]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

Retrieving https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

warning: /var/tmp/rpm-tmp.QbkcYz: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY

Preparing... ################################# [100%]

package zabbix-release-4.0-1.el7.noarch is already installed

更改一下yum内的地址

将:/etc/yum.repo.s/zabbix.repo内的 http://repo.zabbix.com/ 替换为: https://mirrors.aliyun.com/zabbix/

sed -i 's#http://repo.zabbix.com/#https://mirrors.aliyun.com/zabbix/#g' /etc/yum.repos.d/zabbix.repo

清除yum缓存

[root@m01 ~]# yum clean all

Loaded plugins: fastestmirror

Cleaning repos: base epel extras updates zabbix zabbix-non-supported

Cleaning up list of fastest mirrors

重新生成缓存

[root@m01 ~]# yum repolist

安装zabbix,httpd,php

[root@m01 ~]# yum install zabbix-server-mysql zabbix-web-mysql httpd php -y

第二个里程:安装数据库

# 安装mariadb

[root@m01 ~]# yum -y install mariadb-server

[root@m01 ~]# rpm -qa |grep mariadb*

mariadb-libs-5.5.65-1.el7.x86_64

mariadb-5.5.65-1.el7.x86_64

mariadb-server-5.5.65-1.el7.x86_64

[root@m01 ~]# systemctl start mariadb.service

# 创建数据库,权限

mysql

create database zabbix character set utf8 collate utf8_bin;

grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

quit

# 导入数据库sql文件
[root@m01 ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.21/create.sql.gz |mysql -uzabbix -pzabbix zabbix

查看导入的数据

mysql

show databases;

use zabbix;

show tables;

第三个里程:配置zabbix server

#修改配置文件,将DBPassword=修改成DBPassword=zabbix

[root@m01 ~]# vim /etc/zabbix/zabbix_server.conf

[root@m01 ~]# grep -n "DBPassword=" /etc/zabbix/zabbix_server.conf

124:DBPassword=zabbix

#修改apache-php配置文件,在配置文件中添加php_value date.timezone  Asia/Shanghai'

[root@m01 ~]# sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

第四个里程:启动zabbix服务

[root@m01 ~]# systemctl start zabbix-server

[root@m01 ~]# systemctl start httpd

第五个里程:访问网页进行配置

http://10.0.0.61/zabbix

第六个里程:配置中文显示

 

第七个里程:部署客户端(以m01、web01和web02为客户端)

安装官方源:rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

[root@web01 ~]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

修改源地址

将:/etc/yum.repo.s/zabbix.repo内的 http://repo.zabbix.com/ 替换为: https://mirrors.aliyun.com/zabbix/

sed -i 's#http://repo.zabbix.com/#https://mirrors.aliyun.com/zabbix/#g' /etc/yum.repos.d/zabbix.repo

[root@web01 ~]# sed -i 's#http://repo.zabbix.com/#https://mirrors.aliyun.com/zabbix/#g' /etc/yum.repos.d/zabbix.repo
[root@web01 ~]# cat /etc/yum.repos.d/zabbix.repo

[zabbix]

name=Zabbix Official Repository - $basearch

baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-non-supported]

name=Zabbix Official Repository non-supported - $basearch

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

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

gpgcheck=1

#安装客户端

yum install zabbix-agent -y

#修改配置文件

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

#启动服务

[root@web01 ~]# systemctl start zabbix-agent.service

同理在m01和web02上执行上述操作

第八个里程:测试客户端是否可用

#只能在服务端使用,安装zabbix-get

[root@m01 ~]# yum -y install zabbix-get

#使用命令进行测试

[root@m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k "agent.ping"

1
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "agent.ping"

1

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

0.000000

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

0.000000

其中:

-s:指定客户端IP

-p:指定端口

-k:指定键值(执行命令)

第九个里程:使用web页面进行监控

第十个里程:解决中文乱码问题在服务端安装

[root@m01 ~]# yum -y install wqy-microhei-fonts

[root@m01 ~]# rpm -ql wqy-microhei-fonts

[root@m01 ~]# ll /usr/share/fonts/dejavu/DejaVuSans.ttf

-rw-r--r-- 1 root root 720012 Feb 27 2011 /usr/share/fonts/dejavu/DejaVuSans.ttf

[root@m01 ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

cp: overwrite ‘/usr/share/fonts/dejavu/DejaVuSans.ttf’? y

刷新web页面

七、zabbix监控其他主机

第一个里程:添加web01和web02,在服务端先检查客户端主机是否可以ping通

#使用命令进行测试

[root@m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k "agent.ping"

1
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "agent.ping"

1

第二个里程:在web页面上创建主机

第三个里程:查看监控页面

八、自定义监控(制作模板)

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

     需求:服务器登录人数不超过3人,超过3人报警

     需要自定义监控模板(自定义key能被server和agent认可)

第一步:在agent注册key

语法:key名字要唯一,多个key以行为分割

UserParameter=<key>,<shell command>

UserParameter=login-user,who|wc -l

UserParameter=login-user,/bin/sh /server/scripts/login.sh

修改模板配置文件

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

[root@web01 ~]# tail -1 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

UserParameter=login-user,who|wc -l

#重启客户端服务

# systemctl restart zabbix-agent.service

# 在服务端server上检测

[root@m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k "login-user"
2
[root@m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k "login-user"
1

第二步:在server注册(web页面上操作)

1.创建模板

2.创建应用集:给监控项分类

3.创建监控项:监控的内容

4.创建触发器:当监控项获取到的值 达到一定条件时 就触发报警

5.创建图形

6.主机关联模板

第三步:使用第三方平台处理报警信息,并测试

多于3个用户连接web01,监控平台查看结果

登陆网站:http://www.onealert.com/index.html

1.新建应用

2.在server端中安装应用

监控脚本的位置:

[root@m01 ~]# grep -i alertscript /etc/zabbix/zabbix_server.conf

### Option: AlertScriptsPath

# AlertScriptsPath=${datadir}/zabbix/alertscripts

AlertScriptsPath=/usr/lib/zabbix/alertscripts

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

[root@m01 ~]# cd /usr/lib/zabbix/alertscripts/

获取Cloud Alert Agent包

[root@m01 alertscripts]# wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-2.1.0.tar.gz

解压、安装

[root@m01 alertscripts]# tar -xzf ca_zabbix_release-2.1.0.tar.gz

[root@m01 alertscripts]# cd cloudalert/bin

[root@m01 bin]# bash install.sh 241d60c4-0b79-4099-aba2-d346240d01bd

3.在通知策略中新建策略

4.进行测试

 

九、监控可视化

最新数据--图形

1. 图形

2. 聚合图形

3. 幻灯片

4. 模板共享:https://share.zabbix.com

5. web检测

添加web场景

测试(在浏览器上输入:http://10.0.0.7/test.html),查看监控数据

十、自动发现与自动注册

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

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

被动模式:默认,都是站在agent的立场上说话,agent被server抓取数据

主动模式:都是站在agent的立场上说话,agent主动的将数据发送给Server

两种模式都是在agent上的配置文件配置的

1. 自动发现部署

第一步:安装zabbix服务端(略)

第二步:安装zabbix客户端

#安装官方源

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

#安装客户端

yum install zabbix-agent

#修改配置文件

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

启动客户端:

[root@db ~]# systemctl start zabbix-agent.service

第三步:网页上配置自动发现规则

 2. 自动注册部署(主动模式)

前提关闭自动发现规则和动作

第一步:安装zabbix服务端(略)

第二步:安装zabbix客户端(略)

#修改配置文件

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=172.16.1.61

ServerActive=172.16.1.61

Hostname=web01(主机的名称)

#HostnameItem=system.hostname

[root@web01 ~]# egrep -i '^serverac|^hostname|^hostmetadata' /etc/zabbix/zabbix_agentd.conf

ServerActive=172.16.1.61

Hostname=web01

HostMetadataItem=system.uname

#重启服务

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

#查看服务是否运行

[root@web01 ~]# netstat -tunlp|grep zabbix

tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 11324/zabbix_agentd

tcp6 0 0 :::10050 :::* LISTEN 11324/zabbix_agentd

在server端上进行hosts解析

echo "172.16.1.7 web01" >> /etc/hosts ֲ

第三步:在网页上配置自动注册,注册完后成进行等待即可

删除页面上的web01监控,没有web01

配置——> 动作,添加自动注册

添加完成后,等一段时间,查看配置主机信息,发现web01

posted @ 2020-06-07 22:01  出水芙蓉·薇薇  阅读(618)  评论(0编辑  收藏  举报