zabbix3.0监控详解
第1章 前言
1.1 我们的职责
1. 保障企业数据的安全可靠。
2. 为客户提供7*24小时服务。
3. 不断提升用户的体验。
http://blog.csdn.net/pan_tian/article/details/23270119
网站可用性
所谓网站可用性(availability)也即网站正常运行时间的百分比,业界用 N 个9 来量化可用性, 最常说的就是类似 “4个9(也就是99.99%)” 的可用性。
描述 通俗叫法 可用性级别 年度停机时间
基本可用性 2个9 99% 87.6小时
较高可用性 3个9 99.9% 8.8小时
具有故障自动恢复能力的可用性 4个9 99.99% 53分钟
极高可用性 5个9 99.999% 5分钟
1.2 通过命令监控服务器
如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM
查看硬件的温度/风扇转速,电脑有撸大师,服务器就有ipmitool。使用ipmitool实现对服务器的命令行远程管理
查看硬件的温度/风扇转速,电脑有撸大师,服务器就有ipmitool。使用ipmitool实现对服务器的命令行远程管理
yum -y install OpenIPMI ipmitool #->IPMI在物理机可以成功,虚拟机不行[root@KVM ~]# ipmitool sdr type TemperatureTemp | 01h | ns | 3.1 | DisabledTemp | 02h | ns | 3.2 | DisabledTemp | 05h | ns | 10.1 | DisabledTemp | 06h | ns | 10.2 | DisabledAmbient Temp | 0Eh | ok | 7.1 | 22 degrees CPlanar Temp | 0Fh | ns | 7.1 | DisabledIOH THERMTRIP | 5Dh | ns | 7.1 | DisabledCPU Temp Interf | 76h | ns | 7.1 | DisabledTemp | 0Ah | ns | 8.1 | DisabledTemp | 0Bh | ns | 8.1 | DisabledTemp | 0Ch | ns | 8.1 | Disabled
1.2.1 查看cpu的信息
[root@m01 tools]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 2 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 78 Model name: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz Stepping: 3 CPU MHz: 2400.001 BogoMIPS: 4800.00 Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0,1 [root@m01 tools]#
1.2.2 查看系统负载
[root@m01 tools]# uptime03:17:33 up 1:03, 2 users, load average: 0.18, 0.05, 0.01 当前系统时间up 运行时间 2users登录的用户数 平均负载 1,5,15minutes
最佳负载:过去一分钟的平均负载等于CPU的核数(或者两倍)
怎么判断服务器的负载过高:就是看你的过去1分钟的平均负载是否超过CPU的核数(或者2倍)
1.2.3 top实时动态
top - 03:27:14 up 1:13, 2 users, load average: 0.00, 0.02, 0.00 #第一行和uptime一样 Tasks: 90 total, 1 running, 89 sleeping, 0 stopped, 0 zombie #第二行 显示当前进程统计信息 Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, #第三行 CPU的统计信息 0.0%us,用户使用的cpu百分比 0.2%sy,系统使用CPU百分比 %id空闲的CPU百分比 Mem: 1004112k total, 395132k used, 608980k free, 26712k buffer #第四行:内存的统计信息 Swap: 786428k total, 0k used, 786428k free, 256904k cached #第五行:swap统计信息 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19352 1528 1228 S 0.0 0.2 0:01.70 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.87 migration/4 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/06 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/07 root RT 0 0 0 0 S 0.0 0.0 0:00.53 migration/8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/ 快捷键 z 加颜色 x高亮显示 > 向右<向左
1.2.4 显示内存信息(free、vmstat)
[root@m01 tools]# free -htotal used free shared buffers cached Mem: 980M 480M 500M 228K 26M 341M -/+ buffers/cache: 112M 868M Swap: 767M 0B 767M 说明:centos6.5以前没有-h参数,只有-m
vmstat用法
l 参数
l -a:显示活跃和非活跃内存
l -f:显示从系统启动至今的fork数量 。-m:显示slabinfo
l -n:只在开始时显示一次各字段名称。
l -s:显示内存相关统计信息及多种系统活动数量。
u delay:刷新时间间隔。如果不指定,只显示一条结果。
u count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
l -d:显示磁盘相关统计信息。
l -p:显示指定磁盘分区统计信息
l -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
l -V:显示vmstat版本信息。
[root@m01 ~]# vmstat 2 #每二秒显示一次系统内存的统计信息 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st0 0 5748 7808 24796 168440 0 1 88 243 74 143 1 1 95 4 0 0 0 5748 7644 24828 168444 0 0 2 42 68 123 3 1 93 4 0 0 0 5748 7644 24828 168444 0 0 0 0 28 56 0 0 100 0 0 0 0 5748 7620 24852 168444 0 0 0 138 41 126 0 0 99 0 0 ^C 说明: 类别 项目 含义 说明 Procs r 等待执行的任务数 展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了b 处在非中断睡眠状态的进程数 Memory swpd 正在使用的swap大小单位K free 空闲的内存空间 buff 已使用的buff大小,对块设备的读写进行缓冲 cache 已使用的cache大小,文件系统的cache inact 非活跃内存大小 active 活跃的内存大小 Swap si 交换内存使用,由磁盘调入内存 so 交换内存使用,由内存调入磁盘 IO bi 从块设备读入的数据总量(读磁盘) (KB/s), bo 写入到块设备的数据总理(写磁盘) (KB/s) System in 每秒产生的中断次数 cs 每秒产生的上下文切换次数 上面这2个值越大,会看到由内核消耗的CPU时间会越多CPU us 用户进程消耗的CPU时间百分比 us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了sy 内核进程消耗的CPU时间百分比 sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。id 空闲 wa IO等待消耗的CPU时间百分比 wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。 [root@m01 ~]# vmstat 2 5 #每二秒显示一次系统内存的统计信息,总共5次 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st0 0 5748 8108 25668 168456 0 1 86 239 73 142 1 1 95 3 0 0 0 5748 8108 25724 168472 0 0 0 180 48 108 0 0 99 1 0 0 0 5748 8108 25740 168456 0 0 0 16 33 76 0 1 100 0 0 0 0 5748 8108 25788 168480 0 0 2 68 77 143 3 0 96 1 0 0 0 5748 8108 25788 168476 0 0 0 0 26 57 0 1 100 0 0 [root@m01 ~]#
1.2.5 htop
安装 echo "192.168.12.200 mirrors.aliyun.com" >> /etc/hosts wget -O /etc/yum.repos.d/CentOS-Base.repo http://192.168.12.200/repo/Centos-6.repo wget -O /etc/yum.repos.d/epel.repo http://192.168.12.200/repo/epel-6.repo yum clean all yum -y install htop
1.2.6 显示磁盘信息
[root@m01 tools]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 8.8G 1.1G 7.4G 13% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 35M 146M 19% /boot [root@m01 tools]# [root@m01 tools]# dd if=/dev/zero of=tese.data bs=1M count=10 10+0 records in 10+0 records out 10485760 bytes (10 MB) copied, 0.0389443 s, 269 MB/s [root@m01 tools]# if input file输入文件 /dev/zero 这是系统的特殊设备,能够源源不断的产生0字符流 of output file 输出设备 bs block size 块大小 count block 快的数量 总结:产生的test.data文件大小 bs * count 经验:最佳测试磁盘写的速度的测试文件
1.2.7 iotop实时查看系统io(输入输出)负载
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/sTID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND< 1308 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % -bash2488 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % -bash50 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [aio/0]51 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [aio/1]22 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [async/mgr]33 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ata_aux]34 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ata_sff/0]35 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ata_sff/1]25 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bdi-~fault]773 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bluetooth]19 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [cgroup]52 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto/0]53 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto/1]66 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [deferwq]
1.2.8 网络太卡找iftop nethogs
yum -y install iftop nethogs iftop:查看网卡流量(默认监控网卡eth0) [root@m01 tools]# iftop interface: eth0 IP address is: 10.0.0.61 MAC address is: 00:0c:29:ab:6f:3412.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb └─────────────┴──────────────┴─────────────┴──────────────┴────────────── 10.0.0.61 => 10.0.0.253 992b 1.17Kb 1.50Kb<= 160b 160b 187b 10.0.0.255 => 10.0.0.253 0b 0b 0b<= 0b 187b 78b 10.0.0.61 => public1.alidns.com 0b 55b 91b<= 0b 117b 179b───────────────────────────────────────────────────────────────────────── TX: cum: 4.77KB peak: 4rates: 992b 1.22Kb 1.59Kb RX: 1.30KB 1.84Kb 160b 464b 444b TOTAL: 6.07KB 6.33Kb 1.12Kb 1.68Kb 2.02Kb 监控eth1网卡 [root@m01 tools]# iftop -i eth1 interface: eth1 IP address is: 172.16.1.61 MAC address is: 00:0c:29:ab:6f:3e12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb └─────────────┴──────────────┴─────────────┴──────────────┴─────────────────────────────────────────────────────────────────────────────────────── TX: cum: 0B peak: rates: 0b 0b 0b RX: 0B 0b 0b 0b 0b TOTAL: 0B 0b 0b 0b 0b nethogs:查看每个进程流量 [root@m01 tools]# nethogs Waiting for first packet to arrive (see sourceforge.net bug 1019381) NetHogs version 0.8.5PID USER PROGRAM DEV SENT RECEIVED 2486 root sshd: root@pts/2 eth0 0.142 0.047 KB/sec? root unknown TCP 0.000 0.000 KB/secTOTAL 0.142 0.047 KB/sec
1.2.9 实时监控cpu
mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况。
语法
mpstat [-P {|ALL}] [internal [count]]
参数
-P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值
internal 相邻的两次采样的间隔时间、
count 采样的次数,count只能和delay一起使用
当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。
实例1-1 #查看多核CPU核心的当前运行状况信息, 每2秒更新一次
[root@m01 ~]# mpstat -P ALL 2 Linux 2.6.32-696.el6.x86_64 (m01) 10/10/2017 _x86_64_ (1 CPU)04:25:04 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 04:25:06 PM all 3.02 0.00 0.00 2.51 0.00 0.00 0.00 0.00 94.47 04:25:06 PM 0 3.02 0.00 0.00 2.51 0.00 0.00 0.00 0.00 94.4704:25:06 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 04:25:08 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 04:25:08 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.0004:25:08 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 04:25:10 PM all 0.00 0.00 0.00 1.50 0.00 0.00 0.00 0.00 98.50 04:25:10 PM 0 0.00 0.00 0.00 1.50 0.00 0.00 0.00 0.00 98.5004:25:10 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 04:25:12 PM all 0.00 0.00 0.50 7.00 0.00 0.00 0.00 0.00 92.50 04:25:12 PM 0 0.00 0.00 0.50 7.00 0.00 0.00 0.00 0.00 92.50 说明: %user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100 %nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100 %sys 在internal时间段里,内核时间(%) (system/total)*100 %iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100 %irq 在internal时间段里,硬中断时间(%) (irq/total)*100 %soft 在internal时间段里,软中断时间(%) (softirq/total)*100 %idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100
1.3 需要监控什么
l 内存
l 磁盘
l 网络
l cpu负载
l 硬件、温度、风扇
l 软件服务
第2章 zabbix介绍
2.1 zabbix简介
一个软件能够实现99%监控
Zabbix是一个企业级的、开源的、分布式的监控套件
Zabbix可以监控网络和服务的监控状况. Zabbix利用灵活的告警机制,允许用户对事件发送基于Email的告警. 这样可以保证快速的对问题作出相应. Zabbix可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划.
Zabbix支持polling和trapping两种方式. 所有的Zabbix报告都可以通过配置参数在WEB前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix可以通过尽可能的配置来扮演监控你的IT基础框架的角色,而不管你是来自于小型组织还是大规模的公司.
Zabbix是零成本的. 因为Zabbix编写和发布基于GPL V2协议. 意味着源代码是免费发布的.
2.2 常见的监控软件:nagios+cacti、zabbix
1. nagios+cacti
Nagios是插件式的结构,它本身没有任何监控功能,所有的监控都是通过插件进行的,因此其是高度模块化和富于弹性的。Nagios监控的对象可分为两类:主机和服务。主机通常指的是物理主机,如服务器、路由器、工作站和打印机等,这里的主机也可以是虚拟设备,如xen虚拟出的Linux系统;而服务通常指某个特定的功能,如提供http服务的httpd进程等。而为了管理上的方便,主机和服务还可以分别被规划为主机组和服务组等。
Nagios不监控任何具体数值指标(如操作系统上的进程个数),它仅用四种抽象属性对被监控对象的状态进行描述:OK、WARNING, CRITICAL和UNKNOWN。于是,管理员只需要对某种被监控对象的WARNING和CRITICAL状态的阈值进行关注和定义即可。Nagios通过将WARTING和CRTICAL的阈值传递给插件,并由插件负责某具体对象的监控及结果分析,其输出信息为状态信息(OK,WARNING,CRITICAL或UNKOWN)以及一些附加的详细说明信息。
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
第3章 zabbix部署
3.1 zabbix服务端
1.环境准备
[root@m01 tools]# hostname -I 10.0.0.61 172.16.1.61 [root@m01 tools]# /etc/init.d/iptables status iptables: Firewall is not running. [root@m01 tools]# ll -d /tmp/ drwxrwxrwt. 3 root root 4096 Sep 23 02:20 /tmp/ [root@m01 tools]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@m01 tools]# 安装环境选择 选择LAMP还是LNMPLAMP 作为测试软件快速平台 开源软件基于LAMP架构这是全新的物理机:yum安装 LAMP+zabbix编译安装nginx,php,二进制mysqlapache==》cp -R /usr/share/zabbix/ /var/www/html/nginx ==》 cp -R /usr/share/zabbix/ /application/nginx/htmlapache的配置文件是有zabbix安装包代为修改但是nginx的配置文件就需要自己改了php :和LAMP一样的操作,执行sed命令修改配置文件..需要注意php单独启动服务和编译参数的模块是否齐全sed -i.ori 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /application/php/lib/php.iniMySQL:创建数据库,授权,导入数据这是乱七八糟物理机能否重装系统只能编译安装,yum安装虽然能够解决软件依赖问题,但是解决不了依赖冲突的问题编译安装LNMP编译安装zabbix server 2.下载zabbix包 wget http://192.168.12.200/zabbix/zabbix3.0.9_yum.tar.gz
3.安装zabbix
离线安装 第一步下载 wget http://192.168.12.200/zabbix/zabbix3.0.9_yum.tar.gz 第二步解压包 [root@m01 tools]# tar xfP zabbix3.0.9_yum.tar.gz 第三步一键安装 [root@m01 tools]# yum -y --nogpgcheck -C install httpd mysql-server php55w php55w-mysql php55w-common php55w-gd php55w-mbstring php55w-mcrypt php55w-devel php55w-xml php55w-bcmath yum -y --nogpgcheck -C install zabbix-web zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-java-gateway wqy-microhei-fonts net-snmp net-snmp-utils(1)安装LAMP:yum安装Apache、mysql、PHP5.5安装http:yum -y install httpd安装mysql:yum -y install mysql-server安装php5.5:rpm -ivh http://repo.webtatic.com/yum/el6/x86_64/webtatic-release-6-9.noarch.rpmyum -y install php55w php55w-mysql php55w-common php55w-gd php55w-mbstring php55w-mcrypt php55w-devel php55w-xml php55w-bcmath(2)安装Zabbix Serverrpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpmyum -y install zabbix-web zabbix-server-mysql zabbix-web-mysql安装配置Zabbix Agentyum -y localinstall http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm(3)配置相关服务MySQL配置\cp /usr/share/mysql/my-medium.cnf /etc/my.cnf启动MySQL/etc/init.d/mysqld start创建用户并授权mysqlcreate database zabbix character set utf8 collate utf8_bin;grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';flush privileges;exit导入数据文件cd /usr/share/doc/zabbix-server-mysql-3.0.9zcat create.sql.gz |mysql -uzabbix -pzabbix zabbix相关数据修改# 修改php配置文件egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone" /etc/php.inised -i 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /etc/php.ini# 修改zabbix_server配置文件sed -i '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf# 网页文件cp -R /usr/share/zabbix/ /var/www/html/# 文件授权chmod -R 755 /etc/zabbix/webchown -R apache.apache /etc/zabbix/web# 启动apache && zabbixecho "ServerName 127.0.0.1:80">>/etc/httpd/conf/httpd.conf/etc/init.d/httpd start/etc/init.d/zabbix-server start服务开机启动顺序:必须先启动mysql,然后启动zabbix server[root@m01 ~]# tail -4 /etc/rc.local/etc/init.d/mysqld start/etc/init.d/zabbix-server start/etc/init.d/httpd start/etc/init.d/zabbix-agent start[root@web01 ~]# tail -1 /etc/rc.local/etc/init.d/zabbix-agent start
3.2 zabbix客户端
客户端服务端都需要安装agent程序rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm 客户端配置修改配置文件sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf启动agent/etc/init.d/zabbix-agent start在服务端执行检查命令[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.8 -p 10050 -k "system.cpu.load[all,avg1]"0.000000 总结图示
3.3 网页进行安装
第一步: http://10.0.0.61/zabbix/setup.php
第二步:点击下一步
第三步:点击下一步
第四步:点击下一步
第五步
第六步:点击完成
第七步:点击完成后安装结束
设置中文显示中文界面
最后界面就是中文的界面了。
3.4 添加监控主机
主机名称:zabbix程序识别用的名字
可见的名称:给人看,显示在网页上的
群组:同学(主机)与小组(群组)方便管理
agent代理程序的接口
agent代理程序的接口:指定客户端IP地址
检查客户端是否被监控的命令
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]" 0.090000 [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "system.cpu.load[all,avg1]" 0.000000 [root@m01 ~]#
3.5 添加监控主机模板
3.6 查看最新数据
监控出现图形了,但是可能会出现乱码
解决中文乱码wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repoyum -y install wqy-microhei-fonts\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
第4章 zabbix自定义监控
4.1 被监控主机修改配置文件
web01客户端执行 [root@web01 ~]# sed -i '293a UserParameter=login-user,who|wc -l' /etc/zabbix/zabbix_agentd.conf [root@web01 ~]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] [root@web01 ~]#
服务端操作 [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "login-user" 1 [root@m01 ~]#
4.2 网页上添加自定义监控
4.2.1 添加模板
模板的功能:一处创建,处处使用
4.2.2 添加应用集:一个目录,统一存放具有相关性的监控项
4.2.3 添加监控项
告诉服务端server你该去哪里获取什么方面数据
4.2.4 添加触发器
需要报警的监控项设置触发器
严重性:
² 警告级别的报警发给初级运维
² 一般严重级别的报警发给初级运维,中级运维
² 严重级别的报警发给初级运维,中级运维,高级运维
² 灾难级别的报警发给初级运维,中级运维,高级运维,总监
4.2.5 添加图形
4.2.6 使用模板
第5章 报警
5.1 报警种类
邮件报警:存在收不到的风险
微信报警:通知及时
短信报警:不依赖网络
电话报警:有信号就可以报警
APP报警
5.2 安装报警客户端
2安装 Agent 1.切换到zabbix脚本目录(如何查看zabbix脚本目录): vi /etc/zabbix/zabbix_server.conf 查看AlertScriptsPath cd /usr/lib/zabbix/alertscripts/ 2.获取OneITSM agent包: wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.0.tar.gz tar -zxf oneitsm_zabbix_release-1.0.0.tar.gz cd oneitsm/bin bash install.sh 7145112f-7f7a-8cfb-cd26-810036d6d479 start to create config file... Zabbix管理地址: 10.0.0.61/zabbix Zabbix管理员账号: Admin Zabbix管理员密码: start to auth by zabbix admin user and password...% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed0 70 0 70 0 125 847 1514 --:--:-- --:--:-- --:--:-- 0 auth success! start to create mediatype...% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 397 130 130 130 0 267 2706 5559 --:--:-- --:--:-- --:--:-- 0 media type resonse:{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid params.","data":"Media type \"oneitsm media\" already exists."},"id":1} create media type failed! error message:{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid params.","data":"Media type \"oneitsm media\" already exists."},"id":1} [root@m01 bin]#
第6章 监控可视化
6.1 聚合图形
聚合图形:将同一类型的监控放在一起看,容易对比分析
6.2 幻灯片演示
幻灯片:轮流播放聚合图形. 模板的共享https://github.com/zhangyao8/zabbix-community-reposhttps://share.zabbix.com/
第7章 应用服务监控
7.1 监控rsync服务端口
1. 创建一个监控认识有哪些服务端口的模板
2. 添加一个应用集
3. 新建一个监控项
4. 添加触发器
7.2 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常
怎么监控进程?
proc.num[<name>,<user>,<state>,<cmdline>] 进程数。返回整数zabbix_get -s 172.16.1.8 -p 10050 -k 'proc.num[nginx]' [root@m01 bin]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[nfsd]" 8 [root@m01 bin]#
怎么监控端口?
net.tcp.listen[port] 检查 TCP 端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听net.tcp.port[<ip>,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接 [root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[,80]'1[root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[,873]'1[root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[873]'ZBX_NOTSUPPORTED: Invalid second parameter.
7.3 监控3台web服务器
网页创建模板进行监控80端口 三个web服务器中进行web检测 写脚本 [root@web01 conf]# cat /server/scripts/nginx_check.sh char=`curl -s http://10.0.0.8/test.html` [ "$char" == "oldboy" ] && echo 1 ||echo 0 [root@web01 conf]# 写模板文件 [root@web01 conf]# cat /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf UserParameter=nginx_check,/bin/sh /server/scripts/nginx_check.sh [root@web01 conf]# 重启客户端 [root@web01 conf]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] 监控机进行测试 [root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_check" 1 [root@m01 bin]# zabbix_get -s 172.16.1.7 -p 10050 -k "nginx_check" 1 [root@m01 bin]# zabbix_get -s 172.16.1.9 -p 10050 -k "nginx_check" 1 [root@m01 bin]# [root@m01 bin]# zabbix_get -s 172.16.1.7 -p 10050 -k "nginx_check" 0 #0是不正常1是正常 [root@m01 bin]#
7.4 监控mysql
如何排查自定义监控报错:
UserParameter=key,shell command 1. 现在命令行测试你的shell command的结果和你的期望是否一致 [root@web01 ~]# mysqladmin -uroot -poldboy123 ping 2>/dev/null|grep -c alive 1 2. 将符合预期的shell command写入到我们的自定义监控文件中 UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive 改为 UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin -uroot -poldboy123 ping 2>/dev/null|grep -c alive3. 改完配置文件记住重启生效 4. 在服务端用zabbix_get命令[root@db01 zabbix_agentd.d]# tail -2 userparameter_mysql.conf UserParameter=mysql.ping,/application/mysql/bin/mysqladmin -uroot -p123456 ping 2>/dev/null | grep -c alive UserParameter=mysql.version,mysql -V 重启[root@db01 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] 服务端测试 [root@m01 zabbix_agentd.d]# zabbix_get -s 172.16.1.51 -p 10050 -k 'mysql.ping' 0#发现mysql命令找不到 在客户端模板配置文件里面命令使用绝对路径 [root@m01 zabbix_agentd.d]# zabbix_get -s 172.16.1.51 -p 10050 -k 'mysql.ping' 1 [root@m01 zabbix_agentd.d]#
7.5 监控URL地址来更精确的监控我们的网站运行正常
最后在监测中查看web监测
7.6 监控Nginx的7种连接状态
修改配置加入server标签 [root@web03 ~]# cat /application/nginx/conf/nginx.conf worker_processes 1; events {worker_connections 1024; } http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65; ######status#########server {listen 127.0.0.1:80;stub_status on;access_log off;} server {listen 10.0.0.9;location / {root html;index index.html index.htm;}} include extra/www.conf; include extra/bbs.conf; include extra/blog.conf;} 重启服务 检查状态 [root@web03 ~]# curl 127.0.0.1/nginx_status Active connections: 1 server accepts handled requests8 8 8 Reading: 0 Writing: 1 Waiting: 0 [root@web03 ~]# [root@web03 ~]# cat >> /etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<END > UserParameter=nginx_active,curl -s 127.0.0.1/nginx_status|awk '/Active/ {print $NF}' > UserParameter=nginx_accepts,curl -s 127.0.0.1/nginx_status|awk 'NR==3 {print $1}' > UserParameter=nginx_handled,curl -s 127.0.0.1/nginx_status|awk 'NR==3 {print $2}' > UserParameter=nginx_requests,curl -s 127.0.0.1/nginx_status|awk 'NR==3 {print $3}' > UserParameter=nginx_reading,curl -s 127.0.0.1/nginx_status|awk 'NR==4 {print $2}' > UserParameter=nginx_writing,curl -s 127.0.0.1/nginx_status|awk 'NR==4 {print $4}' > UserParameter=nginx_waiting,curl -s 127.0.0.1/nginx_status|awk 'NR==4 {print $6}' > END [root@web03 ~]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] [root@web03 ~]# 服务端测试 [root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_waiting" Reading: 0 Writing: 1 Waiting: 0 [root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_accepts"58 58 58 [root@m01 bin]# 网页进行自定义监控
第8章 自动发现和自动注册
8.1 自动发现:服务端发现客户端
服务端自动发现局域网中所有的客户端agent(主动模式)
优点:方便找到所有的客户端,不会遗漏
缺点:一旦agent过多,server压力很大,每隔一段时间server会扫描一次局域网中的所有机器
8.2 自动注册:客户端主动到服务端登记信息
所有的客户端agent主动去服务端server登记注册(小弟上门求收留)被动模式
优点:对服务端的压力最低。
缺点:配置过程稍微复杂
应用场景:当自动发现时,server端压力过大时,用自动注册
修改配置文件 [root@web03 zabbix_agentd.d]# sed -i 's#Hostname=Zabbix server#Hostname=web03#' /etc/zabbix/zabbix_agentd.conf [root@web03 zabbix_agentd.d]# sed -i 's#ServerActive=127.0.0.1#ServerActive=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf [root@web03 zabbix_agentd.d]# sed -i '176a HostMetadataItem=system.uname' /etc/zabbix/zabbix_agentd.conf 重启 [root@web03 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] [root@web03 zabbix_agentd.d]#
第9章 分布式监控
默认只能监控同一个局域网的机器
一台sever的监控主机数量是有限的
功能:
能够减轻服务端的压力
zabbix server 只能在同一个局域网中监控
9.1 常规安装部署
9.1.1 在客户端进行下载安装
[root@web01 tools]# wget http://192.168.12.200/zabbix/zabbix-proxy-mysql-3.0.9-1.el6.x86_64.rpm echo "192.168.12.200 mirrors.aliyun.com" >> /etc/hosts wget -O /etc/yum.repos.d/CentOS-Base.repo http://192.168.12.200/repo/Centos-6.repo wget -O /etc/yum.repos.d/epel.repo http://192.168.12.200/repo/epel-6.repoyum clean all
yum -y localinstall zabbix-proxy-mysql-3.0.9-1.el6.x86_64.rpm
9.1.2 安装配置数据库
zabbix proxy需要数据库存储相关配置,但不存储监控数据 生产环境:在proxy1 mysql> create database zabbix_proxy character set utf8 collate utf8_bin; Query OK, 1 row affected (0.06 sec)mysql> grant all privileges on zabbix_proxy.* to zabbix@'172.16.1.%' identified by 'zabbix'; Query OK, 0 rows affected (0.15 sec)mysql>
9.1.3 导入sql文件
web客户端传文件到服务端 scp /usr/share/doc/zabbix-proxy-mysql-3.0.9/schema.sql.gz 10.0.0.61:/server/ m01导入文件 zcat /server/schema.sql.gz |mysql -uroot zabbix_proxy
9.1.4 配置文件修改
vim /etc/zabbix/zabbix_proxy.conf Server=10.0.0.61 Hostname=web01 DBName=zabbix_proxy DBUser=zabbix DBPassword=zabbix DBHost=172.16.1.61
9.1.5 启动并检查日志
[root@web01 tools]# /etc/init.d/zabbix-proxy start Starting Zabbix proxy: [ OK ] [root@web01 tools]# tailf /var/log/zabbix/zabbix_proxy.log39637:20171013:113558.590 cannot send heartbeat message to server at "172.16.1.61": proxy "web01" not found39651:20171013:113558.608 proxy #16 started [housekeeper #1]39652:20171013:113558.618 proxy #17 started [http poller #1]39654:20171013:113558.619 proxy #19 started [history syncer #1]39650:20171013:113558.621 proxy #15 started [icmp pinger #1]39653:20171013:113558.621 proxy #18 started [discoverer #1]39655:20171013:113558.626 proxy #20 started [history syncer #2]39658:20171013:113558.639 proxy #23 started [self-monitoring #1]39657:20171013:113558.642 proxy #22 started [history syncer #4]39656:20171013:113558.648 proxy #21 started [history syncer #3]
9.1.6 配置zabbix agent
[root@web01 ~]# sed -i 's#172.16.1.61#172.16.1.8#g' /etc/zabbix/zabbix_agentd.conf [root@web01 ~]# /etc/init.d/zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] [root@web01 ~]#
9.2 开始网页操作部署
将代理节点注册到zabbix server中
第10章 snmp监控(交换机监控)
能用zabbix agent:系统能够安装zabbix软件的时候用,交换机打印机等智能设备不能使用zabbix程序。
SNMP是专用来设备监控
优点:软件小巧,所以设备都可以安装使用
缺点:支持功能少
生产环境建议:先安装使用agent,若不能安装则使用SNMP。
10.1 在Linux系统安装启动服务
[root@m01 server]# rpm -qa |grep snmp net-snmp-5.5-60.el6.x86_64 net-snmp-utils-5.5-60.el6.x86_64 net-snmp-libs-5.5-60.el6.x86_64 [root@m01 server]# 没有就安装yum -y install net-snmp net-snmp-utils 配置snmp [root@m01 ~]# sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf [root@m01 ~]# [root@m01 ~]# /etc/init.d/snmpd start Starting snmpd: [ OK ] [root@m01 ~]# 使用 [root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname SNMPv2-MIB::sysName.0 = STRING: m01 [root@m01 ~]# [root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysContact SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf) [root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 SysService SNMPv2-MIB::sysServices = No Such Instance currently exists at this OID [root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 hrSWRunName HOST-RESOURCES-MIB::hrSWRunName.1 = STRING: "init" HOST-RESOURCES-MIB::hrSWRunName.2 = STRING: "kthreadd" HOST-RESOURCES-MIB::hrSWRunName.3 = STRING: "migration/0" HOST-RESOURCES-MIB::hrSWRunName.4 = STRING: "ksoftirqd/0" HOST-RESOURCES-MIB::hrSWRunName.5 = STRING: "stopper/0" 说明: http://www.ttlsa.com/monitor/snmp-oid/
10.2 在网页上配置使用
转载于:https://blog.51cto.com/shengge520/2054879
zabbix3.0监控详解相关推荐
- linux rpm安装zabbix,CentOS 7上安装Zabbix Server 3.0 图文详解
CentOS 7上安装Zabbix Server 3.0 图文详解 1.查看系统信息. cat /etc/RedHat-release CentOS Linux release 7.0.1406 (C ...
- zabbix 5系列之snmp监控详解
更多精彩Zabbix文章.技术交流.免费技术培训加微号NateIT,免费获取zabbix安装.配置.优化技术培训视频 官网:http://ywzs.hanyunintel.com 首先,谢谢原作者: ...
- vue-cli3.0配置详解
这次给大家带来vue-cli3.0配置详解,使用vue-cli3.0配置的注意事项有哪些,下面就是实战案例,一起来看一下. 新建项目 1 2 3 4 5 6 7 8 # 安装 npm install ...
- [转载]AxureRP 7.0部件详解(一)
转载]AxureRP 7.0部件详解(一) 本文为Axure RT7.0教程,本章主要介绍menu菜单.table表格.Tree Widget 树部件三个部件,后续将持续更新...... Menu 菜 ...
- Android消息传递之EventBus 3.0使用详解
前言: 前面两篇不仅学习了子线程与UI主线程之间的通信方式,也学习了如何实现组件之间通信,基于前面的知识我们今天来分析一下EventBus是如何管理事件总线的,EventBus到底是不是最佳方案?学习 ...
- Less(v3.9.0)使用详解—变量
该系列: Less(v3.9.0)使用详解--基本使用 Less(v3.9.0)使用详解--变量 Less(v3.9.0)使用详解--嵌套和父选择器& Less(v3.9.0)使用详解--ex ...
- Hadoop3.2.0使用详解
Hadoop3.2.0使用详解 1.概述 Hadoop3已经发布很久了,迭代集成的一些新特性也是很有用的.截止本篇博客书写为止,Hadoop发布了3.2.0.接下来,笔者就为大家分享一下在使用Hado ...
- mvc jquery ajax分页实例,jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解,mvcpagerajax分页...
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解,mvcpagerajax分页 简单的两个步骤即可实现分页功能 //回调里面进行业务处理 function lo ...
- 华为p4支持鸿蒙功能吗_华为鸿蒙2.0系统支持的手机型号 华为鸿蒙2.0系统详解[多图]...
华为鸿蒙2.0系统目前已经网上公开招募,还有很多玩家都在问什么手机可以使用,同时大家需要在哪里下载呢,下面一起来看看具体的攻略内容. 华为鸿蒙2.0系统详解 HarmonyOS 2.0手机开发者Bet ...
- 支持华为鸿蒙2.0的手机型号是,华为鸿蒙2.0系统支持的手机型号 华为鸿蒙2.0系统详解...
华为鸿蒙2.0系统目前已经网上公开招募,还有很多玩家都在问什么手机可以使用,同时大家需要在哪里下载呢,下面一起来看看具体的攻略内容. 华为鸿蒙2.0系统详解 HarmonyOS 2.0手机开发者Bet ...
最新文章
- Streaming K-Means、Fuzzy C-means、Canopy
- 让机器听懂人话的自然语言处理技术究竟神奇在哪里?
- 异常处理汇总-后端系列
- Python 第2周 - Python基础-模块\数据运算
- 基于数据库的事务消息解决分布式事务方案
- 飞信for linux,开源飞信 Openfetion for Linux
- html里面怎么引入swiper,JavaScript库——使用swiper.js创建嵌套的swiper
- PHP把列表数据的子级内容合并到父级
- 企业微信之发送图片消息(源码下载)
- 2-常见机器学习模型总结
- npm init @vitejs/app的背后,仅是npm CLI的冰山一角
- java小游戏超级玛丽:07.第三关的设计
- BIOMOD2模型、MaxEnt模型物种分布模拟,生物多样性生境模拟,论文写作
- rails strip
- Altium Designer:从零开始的电路板制作攻略
- Manifest基本
- 分享下天酬汇怎么做才好上手
- poi导入excel数据思路
- AI大事件 | WaveNet推出了谷歌助手,苹果发布CoreML转换器
- 修改图片拓展名,转换图片格式
热门文章
- 现金支票打印模板excel_Excel的正确使用技巧-Excel的提速大法
- norton服务器 位置,逐步配置企业版Symantec Norton防病毒服务器
- 联想i微型计算机怎么拆,联想t410i如何拆机?联想t410i拆机方法【图文】
- RubyOnRails开发知识链接汇总
- 手机型号JSON数据
- 入行GIS圈N年,看看资深GISer如何进行场景绘制?
- sql语句中表格缩写命名_数据库表、字段命名规范
- php代码给用户安装浏览器,PHP判断用户浏览器是否安装alexa工具条程序
- smartq ten3 android4,智器TEN3(T15)拆机
- mysql用身份证号判断男女_如何根据身份证号码辨别性别呢