Linux CentOS-7 시스템 Zabbix 오프라인 설치 및 배포--->사용자 정의 모니터링--->SMS 경보 세부 튜토리얼

내부 네트워크 환경에서는 외부 네트워크에 연결할 수 없으므로 이때 zabbix를 사용하려면 오프라인으로 설치해야 합니다.

Zabbix를 설치하고 배포하는 방법에는 세 가지가 있습니다.

첫 번째는 소스코드 설치를 이용하는 방법 , 두 번째는 RPM 패키지 설치를 이용하는 방법 , 세 번째는 컨테이너 배포를 이용하는 방법입니다 .여기서 말하는 것은 RPM 패키지 설치입니다.

온라인에서 직접 패키지를 다운로드할 수도 있고, 제가 준비한 RPM 설치 패키지를 사용할 수도 있습니다.

목차

1. 자신의 컴퓨터 가상 머신에서 zabbix에 필요한 설치 패키지를 준비합니다.

1. 방화벽과 SELINUX 안전 모드를 끄세요

 2. zabbix의 rpm 소스를 설치합니다.

3. zabbix에 필요한 설치 패키지를 다운로드합니다.

        1. zabbix 서비스 및 에이전트 패키지 다운로드

        2. Red Hat 소프트웨어 컬렉션을 다운로드하세요. 더 높은 버전의 PHP를 쉽게 설치할 수 있습니다.

        3. Zabbix 프런트엔드 웹 소프트웨어 패키지를 다운로드합니다.

        4. mysql 데이터베이스를 다운로드합니다.

        5. 로컬 Yum 저장소 생성

2. 인트라넷 환경에서 오프라인으로 zabbix 설치

1. Zabbix 서버 준비

        1. 호스트 이름 구성

        2. 방화벽과 SELINUX 안전 모드를 끄세요

2. 시스템 YUM 소스 백업

3. 로컬 Yum 창고 구성

4. zabbix 설치를 시작하세요

        1. zabbix 서버, 에이전트, 소프트웨어 컬렉션 및 mysql 데이터베이스를 설치합니다.

        2. Zabbix 프런트엔드 웹을 설치합니다.

         3. 데이터베이스 구성

         4. 데이터베이스 초기화 및 데이터베이스 로그인 비밀번호 설정

        5. 데이터베이스를 입력하고 zabbix 데이터베이스를 만듭니다.

        6. 초기 스키마 및 데이터 가져오기

         7. zabbix_server.conf 구성 파일을 수정합니다.

        8. zabbix의 PHP 구성 파일을 수정합니다.

        9. Zabbix 서버 및 에이전트 프로세스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다. 

        10. Zabbix 프런트엔드 웹 인터페이스 설치 구성

 5. 클라이언트 zabbix-agent 추가

          1. 방화벽과 SELINUX 안전 모드를 끄세요

        2. zabbix-agent 설치 패키지를 /tmp에 업로드합니다.

         3. zabbix-agent 설치

        4. zabbix-agent 구성

        5. zabbix-agent를 시작합니다.

        6. 프론트엔드-웹 인터페이스 추가

3. 맞춤형 모니터링

1. 스크립트 작성

2. Zabbix 프런트 엔드 인터페이스 구성 작업

        1. 새 템플릿 만들기

2. 새 애플리케이션 세트 생성

 3. 새로운 모니터링 항목 생성

 4. 새 트리거 만들기

 5. 템플릿 적용

6. 성공 여부 확인

 4. 정보알람

1. 스크립트 추가

2. zabbix 운영 인터페이스에 SMS 알람 미디어를 추가합니다.

3. 지정된 사용자에 대한 SMS 경보 방법을 추가합니다.

4. 작업이 SMS 알람을 보낼 시기를 설정합니다.

5. 테스트


1. 자신의 컴퓨터 가상 머신에서 zabbix에 필요한 설치 패키지를 준비합니다.

1. 방화벽과 SELINUX 안전 모드를 끄세요

#关闭防火墙并设置开机不启动
systemctl stop firewalld

systemctl disable firewalld

#关闭SElinux安全模式
setenforce 0
    
#设置永久关闭selinux

vi /etc/selinux/config

#修改SELINUX:
SELINUX=disabled

#重启生效
reboot

cced805592664616b37f80cfb8a5b90c.pngba2a22441edb4fba925bfdb192866e7b.png

 2. zabbix의 rpm 소스를 설치합니다.

#使用国内镜像源——阿里云源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

#更改使用国内镜像源
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

#清除所有缓存
yum clean all
 

4ab5a20e20a942e7a89b3d4869650aee.png

3. zabbix에 필요한 설치 패키지를 다운로드합니다.

yum --downloadonly 명령을 사용하면 rpm 패키지를 설치하거나 캐시하지 않고 다운로드만 할 수 있습니다.

        1. zabbix 서비스 및 에이전트 패키지 다운로드

yum install zabbix-server-mysql zabbix-agent --downloadonly --downloaddir=/tmp/offline_rpm

#如报没有downloadonly功能,下载即可
yum install yum-plugin-downloadonly

        2. Red Hat 소프트웨어 컬렉션을 다운로드하세요. 더 높은 버전의 PHP를 쉽게 설치할 수 있습니다.

yum install centos-release-scl --downloadonly --downloaddir=/tmp/offline_rpm

#安装 Software Collections。
yum install centos-release-scl -y

#将[zabbix-frontend]下的 enabled 改为 1.
vi /etc/yum.repos.d/zabbix.repo

28c0dee9c50544a3a4f943f0971b86a6.png

        3. Zabbix 프런트엔드 웹 소프트웨어 패키지를 다운로드합니다.

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl --downloadonly --downloaddir=/tmp/offline_rpm

        4. mysql 데이터베이스를 다운로드합니다.

yum install mariadb-server.x86_64 --downloadonly --downloaddir=/tmp/offline_rpm

        5. 로컬 Yum 저장소 생성

createrepo를 사용하여 저장소 웨어하우스를 생성합니다.시스템에 해당 명령이 없으면 먼저 createrepo를 설치해야 합니다.

9f8e4b6d807b4c84b1b9617fba62f048.png

yum install createrepo -y
# 使用createrepo来创建repository仓库
createrepo /tmp/offline_rpm

7eed145577594218a86fe37ab66f7ecc.png

#到存储目录下
cd /tmp/offline_rpm/

#查看是否有repodata这个文件夹,有就是创建成功了
ls

fe75de618b434375af2a023dc0f3993b.png

2. 인트라넷 환경에서 오프라인으로 zabbix 설치

/tmp/offline_rpm의 모든 오프라인_rpm 폴더를 인트라넷에 준비된 zabbix 서버의 /tmp 디렉토리에 복사합니다 .

1. Zabbix 서버 준비

        1. 호스트 이름 구성

hostnamectl set-hostname zabbix-server

bash
05a794a705fc45a5953fc4e3cb2fab3c.png

        2. 방화벽과 SELINUX 안전 모드를 끄세요

#关闭防火墙并设置开机不启动
systemctl stop firewalld

systemctl disable firewalld

#关闭SElinux安全模式
setenforce 0
    
#设置永久关闭selinux

vi /etc/selinux/config

#修改SELINUX:
SELINUX=disabled

#重启生效
reboot

2. 시스템 YUM 소스 백업

cd /etc/yum.repos.d

#创建备份文件夹
mkdir bak

#所有的repo文件移动到bak下
mv *.repo bak

e1c6d6d4048440be9fc2f19573ccd388.png

3. 로컬 Yum 창고 구성

        1. /etc/yum.repos.d/ 아래에 새 repo 파일을 생성합니다.

vi /etc/yum.repos.d/new.repo

        2. 다음 내용을 작성하세요.

[New]
name=New
baseurl=file:///tmp/offline_rpm
gpgcheck=0
enabled=1
        3. 모든 캐시 지우기
yum clean all

2ea4abe0c27244028d15687b723fa0ae.png

4. zabbix 설치를 시작하세요

        1. zabbix 서버, 에이전트, 소프트웨어 컬렉션 및 mysql 데이터베이스를 설치합니다.

        구성된 yum Warehouse에 패키지가 있기 때문에 명령어로 직접 설치할 수 있습니다.

yum install zabbix-server-mysql zabbix-agent -y


yum install centos-release-scl -y


yum -y install mariadb-server.x86_64 

        zabbix 서버, 에이전트 및 소프트웨어 컬렉션을 설치하면 /etc/yum.repos.d 아래에 두 개의 새로운 .repo 파일이 생성되어 bak로 이동됩니다.

ls

mv CentOS-SCLo-scl.repo CentOS-SCLo-scl-rh.repo bak

ls

df8774c2ffa84bebb7a5865601b99a8e.png

   참고: 이동하지 않으면 다음 오류가 보고됩니다.

Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64

        2. Zabbix 프런트엔드 웹을 설치합니다.

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

         3. 데이터베이스 구성

#启动
systemctl start mariadb

#设置开机自启动
systemctl enable mariadb

#查看
systemctl status mariadb

0c4556c38e5d4bd0bb3b576bc64b0137.png

         4. 데이터베이스 초기화 및 데이터베이스 로그인 비밀번호 설정

mysql_secure_installation
[root@zabbix-servre yum.repos.d]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): #此处直接回车
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
8、创建zabbix数据库。
Set root password? [Y/n] y #此处y
New password: #输入密码
Re-enter new password: #再次输入密码
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y #此处y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n #此处n
... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y #此处y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y #此处y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@zabbix-servre yum.repos.d]#

        5. 데이터베이스를 입력하고 zabbix 데이터베이스를 만듭니다.

        참고: 인코딩 형식을 utf-8로 설정하세요.

#进入数据库
mysql -u root -p

#创建数据库
create database zabbix character set utf8 collate utf8_bin;

#创建用户(注意修改password,这是之前初始化输入的密码)
create user zabbix@localhost identified by 'password';

#授权
grant all privileges on zabbix.* to zabbix@localhost;

#修改生效
flush privileges;

#退出
quit;

        6. 초기 스키마 및 데이터 가져오기

        비밀번호를 묻는 메시지가 표시됩니다.

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

         7. zabbix_server.conf 구성 파일을 수정합니다.

#为zabbix server配置数据库
#修改内容
#DBPassword=password(你之前输的密码)
vi /etc/zabbix/zabbix_server.conf 

218550ffcccf450a858743fecb443796.png

        8. zabbix의 PHP 구성 파일을 수정합니다.

#修改内容
#将注释;去掉,并修改为
#php_value[date.timezone] = Asia/Shanghai
vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 

e1fca5227c5e46ac83b0e05104f09edd.png

        9. Zabbix 서버 및 에이전트 프로세스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다. 

#启动
systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm

#设置开机自启动
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

#查看
systemctl status zabbix-server zabbix-agent httpd rh-php72-php-fpm

        10. Zabbix 프런트엔드 웹 인터페이스 설치 구성

        Zabbix 프런트엔드에 연결: http://IP/zabbix

b944d0f5743644748dd7c6dee6993e8c.png

         모든 조건을 확인하세요

2881f727ec254d07ad5edc8f6ae18b55.png

         데이터베이스 정보 구성

1300719378de414ab7e7b1aaf65daccf.png

        서버 기본정보 

cedc615fe1a94ca0a504ea8c8b813ed3.png

        정보 확인

ba81d0a9847c4428a26aa51923da025b.png

         설치가 완료되었습니다.

ba211da24ea046afa9f950129c177a99.png

         프런트 엔드 페이지에 로그인하십시오: 시스템 기본 사용자 이름 및 비밀번호 Admin/zabbix (참고 사례)

18d22bccebab4ab08e7a219ccbd3d682.png

         중국어로 수정

1f796dcdf9d34e95a15506039e6fa0a3.png

b33e29fda83c446dace1512306f3c9d1.png

 5. 클라이언트 zabbix-agent 추가

          1. 방화벽과 SELINUX 안전 모드를 끄세요

#关闭防火墙并设置开机不启动
systemctl stop firewalld

systemctl disable firewalld

#关闭SElinux安全模式
setenforce 0
    
#设置永久关闭selinux

vi /etc/selinux/config

#修改SELINUX:
SELINUX=disabled

#重启生效
reboot

        2. zabbix-agent 설치 패키지를 /tmp에 업로드합니다.

        이전에는 오프라인_rpm 폴더에 있었습니다.

b04995ac698843ea8406c4022ce2f1bd.png

         3. zabbix-agent 설치

        설치를 위해 파일이 저장된 디렉토리로 cd

cd /tmp

#查看
ls

#安装
yum install zabbix-agent-5.0.32-1.el7.x86_64.rpm -y

0db9f82d1cf041e68ba9046563d88dfc.png

4. zabbix-agent         구성

vi /etc/zabbix/zabbix_agentd.conf

修改内容如下
# zabbix 服务端地址
Server=192.168.222.23
# zabbix活动服务器地址
ServerActive=192.168.222.23
# 主机名,也就是要监控的那台主机名,在web页面添加主机时需设置相同
Hostname=zabbix-agent

        5. zabbix-agent를 시작합니다.

#启动
systemctl start zabbix-agent

#设置开机自启动
systemctl enable zabbix-agent

#查看
systemctl status zabbix-agent

        6. 프론트엔드-웹 인터페이스 추가

f2c70bbefce44789968dbd5984585fc1.png

a287063cb4044870ba079a3effc4b25e.png b1935ea5d1d74802a8c32519b2d406e8.png

         모니터링되는 호스트가 연결되어 있는지, 상태가 정상인지 확인

a5c144cd527e4c1c95557e898809ec26.png

 다음과 같은 오류가 보고되면 10분만 기다리십시오. 이는 고객 서비스 측의 정상적인 실행 시간이 10분 미만임을 의미합니다.a1d2c287e36f4b3fa9ecdc3552d7da48.png

3. 맞춤형 모니터링

1. 스크립트 작성

        1. 모니터링해야 하는 IP 의 zabbix-agent가 스크립트를 저장하는 디렉터리에 새 스크립트를 만듭니다 .

#进入/etc/zabbix/zabbix_agentd.conf查看自定义脚本存放路径
vi /etc/zabbix/zabbix_agentd.conf


#脚本要以.conf 结尾
#Include后面跟着的路径就是自定义脚本存放路径

cd /etc/zabbix/zabbix_agentd.d/

#创建一个新脚本,key很重要(就是命名),要记得,最好取容易看出是什么意思的
#脚本格式:UserParameter=<key>,<shell command>
#df -h|grep '/dev/mapper/centos-root'|awk '{print $5}'|awk -F "%" '{print $1}'  这个是查看内存还有百分之多少的
#样列:UserParameter=memory,df -h|grep '/dev/mapper/centos-root'|awk '{print $5}'|awk -F "%" '{print $1}'
#脚本得出的结果就是要监控的数据

vi memory.conf

#新脚本创建后,要重启zabbix-agent服务才生效

#前往服务端使用命令查看是否成功  命令自行修改
#呢此命令要安装zabbix_get才能使用

yum -y install zabbix-get-3.2.1-1.el7.x86_64.rpm

#如果安装失败,可在外网下载个zabbix-get安装包后上传到内网安装(或用我网盘包里zabbix-get,解压后搜索找到上传安装即可)

zabbix_get -s 客户端ip -p 10050 -k "key值"

zabbix_get 명령의 공통 매개변수:

-에스 클라이언트 호스트 이름 또는 IP 지정
-피 클라이언트 포트, 기본값: 10050
-나 소스 IP 지정
-케이 얻고 싶은 열쇠

2. Zabbix 프런트 엔드 인터페이스 구성 작업

        1. 새 템플릿 만들기

        필요한 템플릿이 이미 있는 경우 건너뛸 수 있습니다.

 이미 템플릿이 있지만 일부 기능 항목을 추가해야 하는 경우 템플릿을 연결하도록 선택할 수 있습니다. 여기서는 설명하지 않으며 선택도 하지 않습니다.

2. 새 애플리케이션 세트 생성

애플리케이션 세트는 모니터링 항목의 일종을 나타내며, 이미 존재하는 경우에는 새로 생성할 필요가 없습니다.

 3. 새로운 모니터링 항목 생성

맞춤형 모니터링이 필요한 항목

 

 4. 새 트리거 만들기

경보 요구 사항이 없으면 트리거를 설정할 수 없습니다.

 5. 템플릿 적용

템플릿이 적용되면 후속 애플리케이션 세트, 모니터링 항목, 트리거 등이 호스트에 추가되는데, 이들 중 어느 것도 사용하지 않으려면 해당 호스트에 가서 비활성화하면 됩니다.

6. 성공 여부 확인

 4. 정보알람

1. 스크립트 추가

#查看zabbix_server配置文件zabbix_server.conf,确认信息报警脚本位置

vi /etc/zabbix/zabbix_server.conf

#AlertScriptsPath参数的路径为脚本路径,如果没有自行创建

저는 Python을 사용하여 이것을 호출하거나 쉘을 사용하여 호출할 수 있습니다(SMS 인터페이스가 없는 경우 DingTalk 로봇을 사용하여 알람 정보를 보낼 수 있습니다. 튜토리얼은 Baidu에 있습니다).

#到该路径下
cd /usr/lib/zabbix/alertscripts/


#创建脚本
vi sms.py


#----python告警脚本(post)

#!/usr/bin/python
# -*- coding:utf-8 -*-

import json
import sys
import requests

url = 'api地址信息'

post_headers = {'Content-Type': 'application/json'}

post_data = {

"moban":"gj",
"num":sys.argv[1],
#"first":sys.argv[2],
"keyword1":"信息",
"remark":sys.argv[3],
"people":"key值"

}

ret = requests.post(url, data = json.dumps(post_data), headers = post_headers)

print(ret.text)
#设置脚本和日志文件权限
touch /tmp/SMS.log

chown zabbix:zabbix /tmp/SMS.log

chown zabbix:zabbix /usr/lib/zabbix/alertscripts/sms.py

chmod +x /usr/lib/zabbix/alertscripts/sms.py

2. zabbix 운영 인터페이스에 SMS 알람 미디어를 추가합니다.

문자 메시지를 보내는 스크립트 호출

 Zabbix에는 메시지 템플릿이 있습니다. 형식에 주의하세요. 큰 문자열이 보고되는 경우 SMS 템플릿을 붙여넣는 대신 손으로 입력해 보세요.

 이는 두 가지 템플릿을 제공합니다.

##告警
主机名称:{HOST.NAME}
IP地址:{HOST.IP}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警信息:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
检查项:{TRIGGER.KEY1}
当前状态:{TRIGGER.STATUS}
值={ITEM.LASTVALUE}
故障已持续{EVENT.AGE}

##恢复
主机名称:{HOST.NAME}
IP地址:{HOST.IP}
告警时间:{EVENT.DATE}{EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE}{EVENT.RECOVERY.TIME}
故障时长:{EVENT.AGE}
告警信息:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
检查项:{TRIGGER.KEY1}
当前状态:{TRIGGER.STATUS}
值={ITEM.VALUE}

시험

3. 지정된 사용자에 대한 SMS 경보 방법을 추가합니다.

관리자 "admin" 사용자를 예로 들어 보겠습니다.

4. 작업이 SMS 알람을 보낼 시기를 설정합니다.

5. 테스트

새로운 IP 로그인 번호 모니터링 및 트리거 추가 원격 제어 인터페이스가 추가될 때마다 사용자 번호가 하나 더 추가됩니다.

각본 내용

#查看有多少个连接数

UserParameter=user_sum,who  |wc -l

 사용자 정의 모니터링 항목을 추가하려면 이전 튜토리얼을 따르십시오.

테스트를 용이하게 하기 위해 10초마다 업데이트되도록 합니다.

6보다 크거나 같으면 알람이 발생하고, 6보다 작으면 알람이 발생하지 않고 정상으로 돌아갑니다.

 완료한 후 성공 여부를 직접 테스트해 보세요. (액션에 이 알람을 추가해야 합니다.)

Supongo que te gusta

Origin blog.csdn.net/weixin_68547003/article/details/129922985
Recomendado
Clasificación