01.Zabbix监控快速入门

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

[[email protected] ~]# 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

[[email protected] ~]# 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

[[email protected] ~]# 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分钟执行一次

[[email protected] ~]# 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依然被使用

[[email protected] ~]# dd if=/dev/zero of=/dev/null bs=800M
#故障日志
[[email protected] ~]# 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官方仓库(也可以是国内第三方)

[[email protected] ~]# 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

[[email protected] ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server

3.创建Zabbix库,并且授权zabbix用户能访问该数据库(创建库必须指定字符集)

[[email protected] ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;

4.初始化zabbix数据库,导入数据库表信息

[[email protected] ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/
[[email protected] zabbix-server-mysql-3.4.15]# zcat create.sql.gz |mysql -uroot zabbix

5.编辑/etc/zabbix/zabbix_server.conf文件,修改zabbix-server连接数据库配置信息

[[email protected] ~]# grep  ^[a-Z]  /etc/zabbix/zabbix_server.conf
....
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
....

6.启动zabbix-server服务进程,并加入开机自启

[[email protected] ~]#  systemctl start zabbix-server
[[email protected]server ~]#  systemctl enable zabbix-server

7.编辑Apache的配置文件/etc/httpd/conf.d/zabbix.conf,修改时区。

[[email protected] ~]# 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服务,并将该服务加入开机自启

[[email protected] ~]# systemctl start httpd
[[email protected] ~]# 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被监控端

[[email protected] ~]# 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地址

[[email protected] ~]# 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 [email protected]‘%‘ identified by ‘zabbix‘;

2.在172.16.1.71旧的zabbix服务器上备份数据库文件

[[email protected] ~]# mysqldump -uroot --databases zabbix --single-transaction > `date +%F%H`-zabbix.sql

3.在172.16.1.71上备份zabbix数据库,并通过远程的方式导入172.16.1.51新的数据库中

[[email protected] ~]# cat 2018-08-2017-zabbix.sql |mysql -h 172.16.1.51 -uzabbix -pBgx123.com zabbix

4.修改/etc/zabbix/zabbix_server.conf配置文件中数据库连接信息

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=172.16.1.51
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

#重载zabbix-server服务
[[email protected] ~]# systemctl restart zabbix-server

5.修改/etc/zabbix/web/zabbix.conf.php配置文件中数据库连接信息

[[email protected] ~]# 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‘;
[[email protected] ~]# systemctl restart httpd  

# 如出现如下错误:请检查数据库是否允许远程连接,对应的账户和密码是否配置错误
[[email protected] ~]# 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‘ (1
 

原文地址:https://www.cnblogs.com/martin-wang/p/10679322.html

时间: 2024-10-25 18:10:57

01.Zabbix监控快速入门的相关文章

ZABBIX 监控 从入门到精通 视频教程

ZABBIX  监控 从入门到精通 视频教程, 相当不错的视频教程. 有需要的同学 请加QQ:1143815700 ,发个红包意思下就行哈.

01、Mybatis快速入门

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 1.搭建开发环境 1.1 创建项目 创建Maven普通java项目或者是JavaWeb项目均可,如下图所示: 1.2 配置文件 在src/main/resource

Zabbix最佳实践二:快速入门

一.登录与配置用户 1.1 登陆 这是Zabbix的"欢迎"界面.输入用户名 Admin 以及密码 zabbix 以作为 Zabbix超级用户登陆. 登陆后,你将会在页面右下角看到"以管理员连接(Connected as Admin)".同时会获得访问配置(Configuration) 和 管理(Administration) 菜单的权限. 点击右上角的用户头像,将显示语言设置为中文. 1.2 增加用户 可以在管理(Administration) → 用户(User

Android基础01 快速入门 &amp; 布局

Android基础01 快速入门 & 布局 01.01  手机制式 第一代模拟制式手机(1G):1G就是大哥大,手机类似于简单的无线电双工电台,通话是锁定在一定频率,所以使用可调频电台就可以窃听通话.   第二代GSM.CDMA等数字手机(2G):手机使用PHS,GSM或者CDMA这些十分成熟的标准,具有稳定的通话质量和合适的待机时间,支持彩信业务的GPRS和上网业务的WAP服务,以及各式各样的Java程序等. 第三代移动通信技术(3G):3G,是英文3rd Generation的缩写,指第三代

AngularJS快速入门指南01:导言

AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 本指南旨在帮助你尽可能快速而有效地学习AngularJS.通过该指南你会学习到AngularJS的一些基本特性,例如指令.表达式.过滤器.模块和控制器等.以及其它所有你需要知道的有关AngularJS的东西,如事件.DOM节点.表单.用户输入.数据验证.Http对象等. AngularJS快速入门指

MyBatis 学习总结 01 快速入门 OLD

一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.mybatis提供一种“半自动化”的ORM实现.这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实

MyBatis系列01之快速入门

1.MyBatis介绍 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 2.MyBatis快速入门 2.1.添加Jar包 mybatis-3.1.1.jar mysql-connector-java-5.1.7-bi

(一)Zabbix监控系统

随着云计算和互联网的高速发展,大量应用需要横跨不同网络终端,并广泛接入第三方服务(如支付.登录.导航等),IT系统架构越来越复杂.快速迭代的产品需求和良好的用户体验,需要IT运维管理者时刻保障核心业务稳定可用,而企业运维中的痛点和难点也急需解决. 1.面向业务的运维,不但关心单点IT资源的运行状态,更关心整个业务系统的健康状态 2.如果企业使用了大量的API和模块化应用,那么关注每个接口的性能变化情况和指标 3.对于运维主管及企业管理层来说,特别需要上墙的监控大屏 4.运维需要每周.每月查看报告

Zabbix监控

一.监控概述: ·初级: ·1.识别监控对象 (分级) ·2.理解监控对象  (理论基础) ·3.细分监控对象的指标 ·4.确定告警的基准线 ·预中级: 1.工具化和监控分离 2.监控对象的分类: 2.1 硬件监控 (方法:机房巡检.IPMI.SNMP简单网络管理协议.) 2.2 系统监控  (对象:cpu.内存.IO[磁盘.网络]) 2.3 服务监控  (对象:分类服务) 2.4 日志监控   (方法:Elastic Stack) 2.5 网络监控   (方法: 第三方.Smokeping)