beat365体育亚洲网页版-网上365体育买球波胆提现-365BETAPP官网

简约 · 精致 · 专注内容

自动化运维监控技术之Zabbix教程入门基础

自动化运维监控技术之Zabbix教程入门基础

任务背景

公司的服务器里经常会有CPU很繁忙, 内存不够, 磁盘空间快满了, 网络很卡, 客户端连接不上等各种问题。我们运维工程师不能总是盯着服务器去查看,那样的话就太繁琐了, 而且很可能发现问题不及时。所以我们需要建立一套完善的监控系统,将所有需要监控的服务器及其各种需要的状态数据都实时地收集, 并图形化的展示,并可以进行报警, 让机器主动及时地与人沟通。

要求

1, 搭建监控服务器

2, 能够按照思路自定义监控并实现图形展示与报警

任务拆解

1, zabbix服务器搭建

2, 监控本机与远程主机

3, 学会创建监控项

4, 为监控项创建图形

5, 为图形创建触发器

6, 设定报警

学习目标

能够安装zabbix服务器

能够使用zabbix-agent监控本机

能够管理zabbix用户与用户群组

能够使用zabbix-agent监控远程linux机器并加入主机群组

能够添加一个自定义监控项

能够为添加的监控项创建图形

能够为监控主机创建聚合图形

能够为监控项设定简单的触发器

一、监控概述

为什么要监控?

答: 实时收集数据,通过报警及时发现问题,及时处理。数据为优化也可以提供依据。

Shell脚本:定时任务!

生活中的监控:

那么请问linux系统中的监控主要监控什么?

答: 任何你所想要监控的数据,如cpu负载,cpu的idle时间,内存使用量,内存利用率,io,network等等。

官方说明:来自维基百科:*监控*是指对行为、活动或其他*变动中*信息的一种持续性关注,通常是为了对人|物达成影响、管理、指导或保护的目的。

为什么要学习这个技术?

监控:

监视主机,架构状态控制,事后追责

目标:

*早发现早处理*,(故障,性能,架构)

网站扩容(用数据说话)

随着用户的增多,服务随时可能会被oom(Out of Memory)

主流的开源监控平台介绍

==zabbix== 跨平台,画图,多条件告警,多种API接口。使用基数特别大。官网地址: https://www.zabbix.com/

==prometheus== 是一个基于时间序列的数值数据的容器监控解决方案。官网地址: https://prometheus.io/

*阶段*

小结

过去

Nagios(难够死)+Cacti

目前

**Zabbix+Grafan, **Prometheu****s****(普罗米修斯),夜莺(didi).....

未来

Zabbix 7.0 lts , something new ‰

二、zabbix官网

下载页面可以看到是不是LTS版本

下载并安装 Zabbix

三、环境准备:**

主机配置:

*规模*

*平台*

*CPU/**内存*

*数据库*

*受监控的主机数量*

小型

CentOS

Virtual Appliance

MySQL InnoDB

100

中型

CentOS

2 CPU cores/2GB

MySQL InnoDB

500

大型

RedHat Enterprise Linux

4 CPU cores/8GB

RAID10 MySQL InnoDB 或 PostgreSQL

>1000

极大型

RedHat Enterprise Linux

8 CPU cores/16GB

Fast RAID10 MySQL InnoDB 或PostgreSQL

>10000

容量估算

*参数*

*所需磁盘空间的计算公式 (单位:字节)*

Zabbix 配 置文件

固定大小。通常为 10MB 或更少。

History (历史数据)

days (items/refresh rate) 24 3600 bytes items:监控项数量。 days:保留历史数据的天数。 refresh rate:监控项的更新间隔。 bytes:保留单个值所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节。

Trends (趋势数据)

days (items/3600) 24 3600 bytes items:监控项数量。 days:保留历史数据的天数。 bytes:保留单个趋势数据所需要占用的字节数,依赖于数据库引擎,通常为 ~90 字节。

Events (事件数据)

days events 24 3600 bytes events:每秒产生的事件数量。假设最糟糕的情况下,每秒产生 1 个事件。days:保留历史数据的天数。 bytes:保留单个趋势数据所需的字节数,取决于数据库引擎,通常为 ~170 字节。

主机规划⭐⭐⭐⭐⭐

*角色*

*主机名*

*eth0/eth1*

*配置*

Zabbix服务端

zabbix-server

10.0.0.62/172.16.1.62

1C1G(实际推荐1C2G)

Zabbix客户端

web01

10.0.0.7/172.16.1.7

1C1G

Zabbix客户端

db01

10.0.0.51/172.16.1.51

1C1G

Zabbix客户端

nfs01

10.0.0.31

其他综合架构的主机都是客户端

四、稳步上手操作

4.1 部署ngx+php环境并测试

repo源配置

#nginx.repo

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

#php.repo

#curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum install -y epel-release.noarch -y #webtatic 要求

#curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #webtatic源

yum install php72w-cli php72w-fpm php72w-gd php72w- mbstring php72w-bcmath php72w-xml php72w-ldap php72w- mysqlnd -y

上面方式不可以使用下面方式安装php

yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

yum -y install yum-utils

yum-config-manager --disable 'remi-php*'

yum-config-manager --enable remi-php74

yum -y install php php-bcmath php-gd php-xml php-mbstring php-mysqlnd php-ldap php-fpm

yum -y install curl-devl libxml2 libxml2-devel

yum install -y nginx

#安装完毕之后检查

rpm -qa |egrep 'nginx|php'

需要修改php参数(网页预配置必要条件)

vim /etc/php.ini

修改post_max_size为16M

修改max_execution_time为300

修改max_input_time为300

安装nginx(构建lnmp)

yum install -y nginx

修改了一个子配置文件.

server {

listen 80;

server_name zbx.me.cn;

root /app/code/zbx;

location / {

index index.php;

}

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

配置php

#配置php

[root@zabbix-server ~/zabbix-6.0-all-rpms]# sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf

user=apache -->user=nginx

group=apache -->group=nginx

[root@zabbix-server ~/zabbix-6.0-all-rpms]# egrep 'user|group' /etc/php-fpm.d/www.conf

#单独创建nginx/nginx用户和组;

创建目录创建测试文件

index.php

启动服务与测试

systemctl enable nginx php-fpm

systemctl start nginx php-fpm

测试web(hosts解析)

10.0.0.63 zbx.me.cn

*在/app/code/zbx下,放一个index.php.

#等解压之后操作即可​

4.2部署数据库

1.配置repo

select version();

#vim /etc/yum.repos.d/mariadb.repo

[mariadb]

name=MariaDB

baseurl=http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/

gpgkey=http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB

gpgcheck=1

enabled=1

#

yum install -y mariadb-server

rpm -qa |grep -i mariadb

#

rpm -qa |grep -i mariadb

MariaDB-compat-10.5.16-1.el7.centos.x86_64

MariaDB-common-10.5.16-1.el7.centos.x86_64

MariaDB-server-10.5.16-1.el7.centos.x86_64

MariaDB-client-10.5.16-1.el7.centos.x86_64

#服务器长长久久的运行,开机自启动

systemctl enable mariadb

systemctl start mariadb

2, 在mysql(mariadb)里建立存放数据的库并授权,然后导入zabbix所需要用的表和数据

[root@zabbixserver ~]# mysql -uroot -p

MariaDB [(none)]> create database zabbix charset utf8 collate utf8_bin; 这里一定要用utf8字符集,否则后面zabbix很多中文用不了(比如创建中文名用户就创建不了)

#给zabbix库所有的库对象【表、视图、索引等等、

MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by '123456';

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> quit

3.导入表数据

# sql文件在源代码中.

tar xf zabbix-6.0.14.tar.gz

cd zabbix-6.0.14/database/mysql/

#导入数据库文件

mysql zabbix

mysql zabbix

mysql zabbix

mysql zabbix

mysql zabbix

[root@zabbix-server ~]# mysql -e 'show tables from zabbix;' |wc -l;

179

4.3编译安装zabbix-server服务端

配置yum(安装完centos后默认的yum源+下面zabbix源)

所有机器(zabbix服务器和所有被监控端)加上zabbix源

# vim /etc/yum.repos.d/zabbix.repo

[zabbix]

name=zabbix

baseurl=https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/7/x86_64

enabled=1

gpgcheck=0

[zabbix_deps]

name=zabbix_deps

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

enabled=1

gpgcheck=0

2,安装zabbix和mariadb数据库

zbx连接mysql,库

#简单方式的安装.6.0.29

[root@zabbixserver ~]# yum install zabbix-server-mysql zabbix-web-mysql

#编译方式

yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel

#编译,将来要去改目录?sysconfdir=/etc/zabbix/

./configure --sysconfdir=/etc/zabbix/ --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre

zabbix6.0.14编译报错:

export CFLAGS="-std=gnu99"

echo $?

0 #表示ok

make install

4, 配置zabbix主配置文件,并启动服务,确认端口

找到并确认如下参数(==默认值正确的不用打开注释==.默认值不对的,要修改正确并打开注释)

[root@zabbix-server conf.d]# egrep -v '^$|#' /etc/zabbix/zabbix_server.conf

ListenPort=10051 #12行

#不改会有坑

LogFile=/var/log/zabbix/zabbix_server.log #改:日志文件,/var/log/.

DBName=zabbix

DBUser=zabbix

DBPassword=123456 #123行

Timeout=4

LogSlowQueries=3000

StatsAllowedIP=127.0.0.1

#日志权限

mkdir -p /var/log/zabbix

ll -d /var/log/zabbix

useradd -s /sbin/nologin -M zabbix

chown -R zabbix.zabbix /var/log/zabbix/

find / -name zabbix_server 2>/dev/null

/usr/local/sbin/zabbix_server --version

检查端口

ss -lntup|grep 10051

检查进程

ps -ef |grep zabbix

#自定义的服务

[root@zabbix-server ~]# vim /usr/lib/systemd/system/zabbix-server.service

[Unit]

Description=Zabbix Server with MySQL DB

After=syslog.target network.target

[Service]

Type=simple

ExecStart=/usr/local/sbin/zabbix_server -f

User=zabbix

[Install]

WantedBy=multi-user.target

[root@zabbix-server ~]# systemctl daemon-reload

[root@zabbixserver ~]# systemctl restart zabbix-server

[root@zabbixserver ~]# systemctl enable zabbix-server

[root@zabbixserver ~]# lsof -i:10051

验证测试,如下图所示:

出现上述图示,表示Zabbix自动化监控服务器安装成功!

总结

zabbix,这款企业级监控软件,能全方位监控各类网络参数,确保企业服务架构的安全稳定运行。它提供了灵活多样的告警机制,帮助运维人员迅速发现并解决问题。此外,zabbix还具备分布式监控功能,能应对复杂架构下的监控挑战,并配备了web页面,以直观的方式展示主机监控信息。

相关推荐

少林寺建筑丨天王殿

少林寺建筑丨天王殿

beat365体育亚洲网页版 07-31
中国十大网络小说作家排行榜
7、天涯明月刀端游怎么抄录

7、天涯明月刀端游怎么抄录

网上365体育买球波胆提现 09-14
植发之后的效果好不好

植发之后的效果好不好

网上365体育买球波胆提现 09-30
诗经《国风·邶风·匏有苦叶》原文|译文|注释|赏析
市场洞察大揭秘:数据分析工具与方法全览