1.监控知识基本概述

  • 1.为什么要使用监控

    • 1.对系统不间断实时监控
    • 2.实时反馈系统当前状态
    • 3.保证服务可靠性安全性
    • 4.保证业务持续稳定运行
  • 2.如何进行监控,比如我们需要监控磁盘的使用率
    • 1.如何查看磁盘使用率df -h
    • 2.监控磁盘的那些指标block、inode
    • 3.如何获取具体的信息df -h|awk '/\/$/{print $(NF-1)}'
    • 4.获取的数值到达多少报警 80%
  • 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.监控命令参考文档

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监控快速入门的更多相关文章

  1. 01、Mybatis快速入门

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...

  2. 大数据技术之_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 ...

  3. AngularJS快速入门指南01:导言

    AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 ...

  4. Zabbix概念、安装以及快速入门

    Zabbix is an enterprise-class open source distributed monitoring solution.[1] Zabbix是一个企业级的.开源的.分布式的 ...

  5. MyBatis 学习总结 01 快速入门

    本文测试源码下载地址: http://onl5wa4sd.bkt.clouddn.com/MyBatis0918.rar 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级 ...

  6. zabbix 监控系统概述及部署

    zabbix 监控系统概述及部署 1.Zabbix是什么: zabbix是一个个基于web界而的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系 ...

  7. Zabbix监控系统深度实践

    Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置.设计.案例和内部原理) 姚仁捷 著  ISBN 978-7-121-24 ...

  8. 使用percona-xtrabackup实现对线上zabbix监控系统数据库mariadb5.5.47的主从同步

    使用percona-xtrabackup实现对线上zabbix监控系统数据库的主从同步 业务背景: zabbix3.0.4是业务的主要监控,部署在一台单机中,为避免数据丢失先对其做数据主从同步,因主数 ...

  9. Docker三十分钟快速入门(下)

    一.背景 上篇文章我们进行了Docker的快速入门,基本命令的讲解,以及简单的实战,那么本篇我们就来实战一个真实的项目,看看怎么在产线上来通过容器技术来运行我们的项目,来达到学会容器间通信以及dock ...

随机推荐

  1. CockroachDB学习笔记——[译]如何优化Go语言中的垃圾回收

    原文链接:https://www.cockroachlabs.com/blog/how-to-optimize-garbage-collection-in-go/ 原作者:Jessica Edward ...

  2. node-sass 安装失败解决方案

    从失败到成功,尝试了不下20,最终终于解决了: 解决方案如下: 参考方案一:http://www.jianshu.com/p/89f5e094b8ce(具体的配置看这个) 参考方案二:http://b ...

  3. 解决zabbix中文乱码问题

    进入Windows系统控制面板-->外观和个性化-->字体(选择一个字体文件simsun.ttc复制)进入zabbix的web服务器[root@test-zabbix]# cd ~/zab ...

  4. Bootstrap 表单示例

    1.打开https://getbootstrap.com/docs/4.3/examples/checkout/复制表单源码 2.清空main标签内容 3.粘贴表单源码 4.示例图

  5. POJ 3229:The Best Travel Design

    Description Dou Nai ), and the end of the travel route hours on traveling every day. Input There are ...

  6. python 复制

    1. list的复制 直接用赋值符号实现浅复制,两者用id()函数的返回值是相同的,也就是占用同一块内存空间. 导入 copy 库, 用 copy.deepcopy(list1) 再赋值实现深复制,两 ...

  7. Dao设计模式简单实现

    一.什么是Dao设计模式 Dao设计模式封装了操作具体数据库的细节,对业务层提供操作数据库的接口,因此降低了业务层代码与具体数据库之间的耦合,有利于人员分工,增加了程序的可移植性. Dao设计模式中主 ...

  8. 深入理解C++11 C3

    继承构造函数 class A { public: A(int i):m_i(i) {} A(double d, int i):m_d(d),m_i(i){} private: int m_i{0}; ...

  9. python3启航

    Python3的基本数据类型 数字 int ,所有功能都放在int里 a1 = 123 a2 = 456 ##int 将字符串转换为数字 a = "123" print(tyep( ...

  10. fiddler笔记:Composer选项卡

    1.Composer选项卡介绍 Composer选项卡功能是可以手动构建和发送HTTP.HTTPS和FTP请求. 支持将Web Session列表中选中的Session拖入Composer选项卡,然后 ...