01.Zabbix监控快速入门
1.监控知识基本概述
- 1.为什么要使用监控
- 1.对系统不间断实时监控
- 2.实时反馈系统当前状态
- 3.保证服务可靠性安全性
- 4.保证业务持续稳定运行
- 2.如何进行监控,比如我们需要监控磁盘的使用率
- 1.如何查看磁盘使用率
df -h - 2.监控磁盘的那些指标
block、inode - 3.如何获取具体的信息
df -h|awk '/\/$/{print $(NF-1)}' - 4.获取的数值到达多少报警 80%
- 1.如何查看磁盘使用率
- 3.流行的监控工具
- 1.cacti、Nagios、Zabbix、
- 2.Lepus(天兔)数据库监控系统
- 3.Open-Falcon 小米
- 4.Prometheus(普罗米修斯,Docker、K8s)
- 4.如果去到一家新公司,如何入手监控
- 1.硬件监控 路由器、交换机、防火墙
- 2.系统监控 CPU、内存、磁盘、网络、进程、TCP
- 3.服务监控 nginx、php、tomcat、redis、memcache、mysql
- 4.WEB监控 请求时间、响应时间、加载时间、
- 5.日志监控 ELk(收集、存储、分析、展示) 日志易
- 6.安全监控 Firewalld、WAF(Nginx+lua)、安全宝、牛盾云、安全狗
- 7.网络监控 smokeping 多机房
- 8.业务监控 活动引入多少流量、产生多少注册量、带来多大价值
2.单机时代如何监控
1.CPU监控命令: w、top、htop、glances
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us 用户态: 跟用户的操作有关 35%
sy 系统态: 跟内核的处理有关 60%
id CPU空闲:
2.内存监控命令: free
[root@ZabbixServer ~]# free -m
total used free shared buff/cache available
Mem: 974 440 194 4 340 328
Swap: 2047 11 2036
3.磁盘监控命令: df、iotop、iostat、dstat
[root@ZabbixServer ~]# iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
4.网络监控命令: ifconfig、route、glances、iftop、nethogs
[root@ZabbixServer ~]# iftop
bgx.com:https => 101.200.101.219:57456 0b 9.53Kb 6.11Kb
<=
bgx.com:https => 101.200.101.207:65254 0b 3.37Kb 1.12Kb
#中间的<= =>这两个左右箭头,表示的是流量的方向。
TX: cum: 170KB #发送流量
RX: 37.1KB #接收流量
TOTAL: 208KB #总的流量
#如果单位为Mbps,换算为MB需要除以8,比如:100Mbps = 12MB
5.TCP11状态监控netstat
[root@ZabbixServer ~]# netstat -an|grep ESTABLISHED
[root@ZabbixServer ~]# netstat -lntup
6.那单机时代,如何使用shell脚本来实现服务器的监控,比如: 每隔1分钟监控一次内存,当你的可用内存低于100m,发邮件报警,要求显示剩余内存,具体实现思路如下:
1.怎么获取内存可用的值free -m|awk '/^Mem/{print $NF}'
2.获取到内存可用的值如何和设定的阈值进行比较
3.比较如果大于100m则不处理,如果小于100则报警
4.如何每隔1分钟执行一次
[root@ZabbixServer ~]# cat free.sh
#!/usr/bin/bash
HostName=$(hostname)_$(hostname -i)
Date=$(date +%F)
while true;do
Free=$(free -m|awk '/^Mem/{print $NF}')
if [ $Free -le 100 ];then
echo "$Date: $HostName Mem Is < ${Free}MB"
fi
sleep 5
done
7.随着时间的推移,用户不断的增多,服务消耗的内存越来越多,当系统内存不足的时候可能会导致系统产生oom(out of memory)
1.当系统内存不足的时候就会大量使用swap
2.当系统大量使用swap的时候,系统会特别卡
注意: 有时可能内存还有剩余300Mb-500Mb,但会发现swap依然被使用
[root@ZabbixServer ~]# dd if=/dev/zero of=/dev/null bs=800M
#故障日志
[root@ZabbixServer ~]# tail -f /var/log/messages
Out of memory: Kill process 2227 (dd) score 778 or sacrifice child
Killed process 2227 (dd) total-vm:906724kB, anon-rss:798820kB, file-rss:0kB
3.zabbix监控快速安装
1.配置Zabbix官方仓库(也可以是国内第三方)
[root@zabbix-server ~]# https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
2.安装Zabbix-Server、Mariadb-Server、Zabbix-agent
[root@zabbix-server ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server
3.创建Zabbix库,并且授权zabbix用户能访问该数据库(创建库必须指定字符集)
[root@zabbix-server ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
4.初始化zabbix数据库,导入数据库表信息
[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/
[root@linux-node1 zabbix-server-mysql-3.4.15]# zcat create.sql.gz |mysql -uroot zabbix
5.编辑/etc/zabbix/zabbix_server.conf文件,修改zabbix-server连接数据库配置信息
[root@zabbix-server ~]# grep ^[a-Z] /etc/zabbix/zabbix_server.conf
....
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
....
6.启动zabbix-server服务进程,并加入开机自启
[root@zabbix-server ~]# systemctl start zabbix-server
[root@zabbix-server ~]# systemctl enable zabbix-server
7.编辑Apache的配置文件/etc/httpd/conf.d/zabbix.conf,修改时区。
[root@zabbix-server ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
#取消注释,设置中国时区
php_value date.timezone Asia/Shanghai
8.启动Apache Web服务,并将该服务加入开机自启
[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl enable httpd
使用浏览器访问zabbix-server服务器地址,进入zabbix向导欢迎界面, 直接下一步即可
检查依赖项是否存在任何异常
配置zabbix-Web连接数据库信息
配置ZabbixServer服务器的主机名或主机IP地址和端口号, 以及安装的名称(可选)
安装前摘要,检查配置参数。如果一切都正确,请按"下一步"按钮或"后退"按钮来更改配置参数。
提示已成功地安装了Zabbix前端。配置文件/etc/zabbix/web/zabbix.conf.php被创建。
默认登陆ZabbixWeb页面的用户名Admin,密码zabbix
调整ZabbixWeb前端为中文字符集
至此Zabbix已经安装完毕
4.zabbix快速监控主机
| 角色 | 外网IP(NAT) | 内网IP(LAN) |
|---|---|---|
| Zabbix-Server | eth0:10.0.0.71 | eth1:172.16.1.71 |
| web01 | eth0:10.0.0.7 | eth1:172.16.1.7 |
1.安装Zabbix-Agent被监控端
[root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm
2.配置Zabbix-Agent指向Zabbix-Server的IP地址
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.71
3.启动Zabbix-Agent,并加入开机自启。Zabbix-Agent默认监听10050端口
[root@web01 ~]# systemctl start zabbix-agent
[root@web01 ~]# systemctl enable zabbix-agent
[root@web01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1103/zabbix_agentd
4.配置ZabbixWeb页面,点击配置->点击主机->创建主机->填写被监控端主机信息
5.点击模板->选择连接指示器->选择->搜索Linux->点击小按钮添加->最后添加
5.Zabbix监控基础架构
zabbix-agent(数据采集)-->zabbix-server(数据分析|报警)--> 数据库(数据存储)<--zabbix web(数据展示)

Zabbix单台服务: LNMP+Zabbix
Zabbix数据拆分: LAP+MySQL(修改如下两个文件中连接数据库的配置信息)
[root@ZabbixServer ~]# ll /etc/zabbix/zabbix_server.conf
[root@ZabbixServer ~]# ll /etc/zabbix/web/zabbix.conf.php
Zabbix拆分数据库实践
| 角色 | 外网IP(NAT) | 内网IP(LAN) |
|---|---|---|
| Zabbix-Server | eth0:10.0.0.71 | eth1:172.16.1.71 |
| MySQL | eth0:10.0.0.51 | eth1:172.16.1.51 |
1.在172.16.1.51的数据库上创建zabbix库
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
2.在172.16.1.71旧的zabbix服务器上备份数据库文件
[root@ZabbixServer ~]# mysqldump -uroot \
--databases zabbix \
--single-transaction > `date +%F%H`-zabbix.sql
3.在172.16.1.71上备份zabbix数据库,并通过远程的方式导入172.16.1.51新的数据库中
[root@ZabbixServer ~]# cat 2018-08-2017-zabbix.sql |mysql -h 172.16.1.51 -uzabbix -pBgx123.com zabbix
4.修改/etc/zabbix/zabbix_server.conf配置文件中数据库连接信息
[root@ZabbixServer ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=172.16.1.51
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
#重载zabbix-server服务
[root@ZabbixServer ~]# systemctl restart zabbix-server
5.修改/etc/zabbix/web/zabbix.conf.php配置文件中数据库连接信息
[root@ZabbixServer ~]# vim /etc/zabbix/web/zabbix.conf.php
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '172.16.1.51';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'Bgx123.com';
[root@ZabbixServer ~]# systemctl restart httpd
# 如出现如下错误:请检查数据库是否允许远程连接,对应的账户和密码是否配置错误
[root@ZabbixServer ~]# tail -f /var/log/zabbix/zabbix_server.log
2189:20180820:173636.941 [Z3001] connection to database 'zabbix' failed: [2003] Can't connect to MySQL server on '172.16.1.51' (111)
01.Zabbix监控快速入门的更多相关文章
- 01、Mybatis快速入门
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...
- 大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)
第1章 Flume概述1.1 Flume定义1.2 Flume组成架构1.2.1 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event1.3 Flum ...
- AngularJS快速入门指南01:导言
AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 ...
- Zabbix概念、安装以及快速入门
Zabbix is an enterprise-class open source distributed monitoring solution.[1] Zabbix是一个企业级的.开源的.分布式的 ...
- MyBatis 学习总结 01 快速入门
本文测试源码下载地址: http://onl5wa4sd.bkt.clouddn.com/MyBatis0918.rar 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级 ...
- zabbix 监控系统概述及部署
zabbix 监控系统概述及部署 1.Zabbix是什么: zabbix是一个个基于web界而的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系 ...
- Zabbix监控系统深度实践
Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置.设计.案例和内部原理) 姚仁捷 著 ISBN 978-7-121-24 ...
- 使用percona-xtrabackup实现对线上zabbix监控系统数据库mariadb5.5.47的主从同步
使用percona-xtrabackup实现对线上zabbix监控系统数据库的主从同步 业务背景: zabbix3.0.4是业务的主要监控,部署在一台单机中,为避免数据丢失先对其做数据主从同步,因主数 ...
- Docker三十分钟快速入门(下)
一.背景 上篇文章我们进行了Docker的快速入门,基本命令的讲解,以及简单的实战,那么本篇我们就来实战一个真实的项目,看看怎么在产线上来通过容器技术来运行我们的项目,来达到学会容器间通信以及dock ...
随机推荐
- 【error】 for i in range(len(shape)/2): TypeError: 'float' object cannot be interpreted as an integer
Q: for i in range(len(shape)/2):TypeError: 'float' object cannot be interpreted as an integer A: for ...
- 【ARTS】01_26_左耳听风-201900506~201900512
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- Hadoop 部署之 Spark (六)
目录 一.Spark 是什么 二.Scala的安装(所有节点) 三.Spark 安装(所有节点) 1.下载安装 2.配置 Spark 环境变量 四.Spark 配置(namenode01) 1.配置 ...
- Ubuntu 16.04 RabbitMq 安装与运行
前言目前公司用阿里云 + redis 的方式实现的消息队列.了解了目前几种主流的消息组件(主要包括rabbitmq.kafka.)的优缺点后,这里为了深入学习rabbitmq,我在自己的腾讯云服务器上 ...
- 100% 加速 WebSAMS 3.0 (轉載)
今日已經是WebSAMS Upgrade 的最後一日,已經有99.8% 學校成功upgrade WebSAMS 3.0.但有學校向我們反映WebSAMS 3.0 比2.0 慢,經過我們的Enginee ...
- 在linux服务器以及客户端实现公钥免密登录
每次登录服务器都要输入密码,这点比较麻烦.使用ssh公钥登录机制可以直接登录,避免每次都输入密码的烦恼. 所谓ssh公钥登录机制即是:客户端电脑client产生加密用的公钥id_rsa.pub与私钥i ...
- TMS320C6455小介绍
TMS320C6455是TI公司推出的的一款新型高性能单核定点DSP.它是TI公司基于第三代先进VeloviTI VLIW(超长指令字)结构开发出来的新产品,在通信,医疗图像,无线传输方面都可以大有作 ...
- [转帖]三款Nehalem至强5500塔式服务器横评对决(4)
三款Nehalem至强5500塔式服务器横评对决(4) http://tech.sina.com.cn/b/2009-12-14/05051172233_4.shtml 可以看到两路服务器的设置 基本 ...
- Java操作Excle(基于Poi)
有一次有个同事问我会不会有java操作Excle,回答当然是不会了!感觉被嘲讽了,于是开始寻找度娘,找到个小例子,结果越写越有意思,最后就成就了这个工具类. import java.io.Buffer ...
- 笔记-2:python基本数据类型
1.数字类型 1.1 整数类型 整数类型有4种进制表示:十进制,二进制,八进制,十六进制,默认情况下,整数采用十进制. 整数类型有4种进制:十进制. 二进制. 八进制和十六进制. 默认情况, 整数采用 ...