赞
踩
在内网环境,我们无法连接外网,这个时候想要使用zabbix,就要进行离线安装了
安装部署zabbix有三种方法:
一是使用源码安装,二是使用RPM包安装,三是使用容器部署,这里讲的是RPM包安装
可以自己线上下载包,也可以用我已经准备好的RPM安装包
链接:https://pan.baidu.com/s/1lDjZ9Of09HnoVCrtRmSA7g?pwd=erty
提取码:erty
目录
2.下载 Red Hat Software Collections:方便php高版本的安装。
1.安装zabbix server、agent和Software Collections及mysql数据库。
9.启动Zabbix server和agent进程,并为它们设置开机自启
- #关闭防火墙并设置开机不启动
- systemctl stop firewalld
-
- systemctl disable firewalld
-
- #关闭SElinux安全模式
- setenforce 0
-
- #设置永久关闭selinux
-
- vi /etc/selinux/config
-
- #修改SELINUX:
- SELINUX=disabled
-
- #重启生效
- reboot
- #使用国内镜像源——阿里云源
- 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
通过yum --downloadonly命令只下载rpm包不安装进行缓存
- yum install zabbix-server-mysql zabbix-agent --downloadonly --downloaddir=/tmp/offline_rpm
-
- #如报没有downloadonly功能,下载即可
- yum install yum-plugin-downloadonly
-
- 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
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl --downloadonly --downloaddir=/tmp/offline_rpm
yum install mariadb mariadb-server.x86_64 --downloadonly --downloaddir=/tmp/offline_rpm
使用createrepo来创建repository仓库,如果系统里没有该命令的话需要先进行createrepo的安装
yum install createrepo -y
- # 使用createrepo来创建repository仓库
- createrepo /tmp/offline_rpm
- #到存储目录下
- cd /tmp/offline_rpm/
-
- #查看是否有repodata这个文件夹,有就是创建成功了
- ls
将 /tmp/offline_rpm 的这个offline_rpm文件夹全部拷入内网准备的zabbix服务端上的/tmp目录下。
- hostnamectl set-hostname zabbix-server
-
- bash
- #关闭防火墙并设置开机不启动
- systemctl stop firewalld
-
- systemctl disable firewalld
-
- #关闭SElinux安全模式
- setenforce 0
-
- #设置永久关闭selinux
-
- vi /etc/selinux/config
-
- #修改SELINUX:
- SELINUX=disabled
-
- #重启生效
- reboot
- cd /etc/yum.repos.d
-
- #创建备份文件夹
- mkdir bak
-
- #所有的repo文件移动到bak下
- mv *.repo bak
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
yum clean all
因为已经配了了的yum仓库里有包了,用命令直接安装即可
- yum install zabbix-server-mysql zabbix-agent -y
-
-
- yum install centos-release-scl -y
安装zabbix server、agent和Software Collections后,/etc/yum.repos.d 下会生成两个新的.repo文件,将其移到bak下
- ls
-
- mv CentOS-SCLo-scl.repo CentOS-SCLo-scl-rh.repo bak
-
- ls
注:如果不移走,会报以下错误
Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
- #CentOS7系统有可能会默认安装了mariadb数据库,安装前请确认一下,如果有卸载了(可以百度怎么卸载)
- rpm -qa | grep mariadb
-
-
- yum -y install mariadb mariadb-server.x86_64
-
- yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
- #启动
- systemctl start mariadb
-
- #设置开机自启动
- systemctl enable mariadb
-
- #查看
- systemctl status mariadb
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]#
注意:设置编码格式为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;
-
- # 系统将提示您输入新建的用户密码。
- zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
- #为zabbix server配置数据库
- #修改内容
- #DBPassword=password(你之前输的密码)
- vi /etc/zabbix/zabbix_server.conf
- #修改内容
- #将注释;去掉,并修改为
- #php_value[date.timezone] = Asia/Shanghai
- vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
- #启动
- 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
连接Zabbix前端:http://IP/zabbix
检查所有条件
配置数据库信息
服务器基本信息
确认信息
安装完成
登录前端页面:系统默认的用户名和密码Admin/zabbix(注意大小写)
修改为中文
- #关闭防火墙并设置开机不启动
- systemctl stop firewalld
-
- systemctl disable firewalld
-
- #关闭SElinux安全模式
- setenforce 0
-
- #设置永久关闭selinux
-
- vi /etc/selinux/config
-
- #修改SELINUX:
- SELINUX=disabled
-
- #重启生效
- reboot
之前offline_rpm文件夹里有
cd到存放文件目录下安装
- cd /tmp
-
- #查看
- ls
-
- #安装
- yum install zabbix-agent-5.0.32-1.el7.x86_64.rpm -y
- vi /etc/zabbix/zabbix_agentd.conf
-
- 修改内容如下
- # zabbix 服务端地址
- Server=192.168.222.23
- # zabbix活动服务器地址
- ServerActive=192.168.222.23
- # 主机名,也就是要监控的那台主机名,在web页面添加主机时需设置相同
- Hostname=zabbix-agent
- #启动
- systemctl start zabbix-agent
-
- #设置开机自启动
- systemctl enable zabbix-agent
-
- #查看
- systemctl status zabbix-agent
查看被监控主机是否连接上,状态是否正常
如果报下面的错,等10分即可,这个是说客服端正常运行时间小于10分钟
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命令常用参数:
-s | 指定客户端主机名或者IP |
---|---|
-p | 客户端端口,默认:10050 |
-I | 指定源IP |
-k | 想要获取的key |
如已有需要的模板,可跳过
如果已有模板,但还需要新增一些功能项,可选择链接模板,此处我就不演示了,不做选择
一个应用集代表一个类型的监控项,如已有可不新建
需要自定义监控的项目
如果没有报警要求,可不设触发器
模板应用后,后继添加的应用集、监控项、触发器都会自己添加到该主机下面,如有不想用的,到该主机下面停用即可
- #查看zabbix_server配置文件zabbix_server.conf,确认信息报警脚本位置
-
- vi /etc/zabbix/zabbix_server.conf
-
- #AlertScriptsPath参数的路径为脚本路径,如果没有自行创建
我这用python来调用,也可用shell来调用(没有短信接口的,可用钉钉机器人来发送报警信息,教程自行百度)
- #到该路径下
- 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
调用脚本发送短信
消息模板在zabbix中有,注意格式,如有报一大串字符,请手打短信模板试试,不要粘贴
这提供两个模板
- ##告警
- 主机名称:{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}
测试
以管理员“admin”用户为例
新增一个ip登录数的监控,触发器,每多一个远程控制界面,就多一个用户数
脚本内容
- #查看有多少个连接数
-
- UserParameter=user_sum,who |wc -l
添加自定义监控项跟前面教程来就行
弄成10s一更新,方便测试
大于等于6报警,小于6不报警,恢复正常
弄好后自行测试是否成功(要在动作把这个报警添加上去)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。