安装zabbix-server5.0
# server安装zabbix
# 1.获取zabbix源
rpm -Uvh https://repo.zabbix.com/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#g' /etc/yum.repos.d/zabbix.repo
sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/zabbix.repo
yum clean all
yum makecache
# 2.安装zabbix客户端
yum -y install zabbix-server-mysql zabbix-agent2
# 3.安装多个版本的软件工具,并且不会影响整个系统的依赖环境
yum -y install centos-release-scl
# 4.修改前端源,安装前端环境(并且安装到scl环境下)
或者http安装:yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
或者nginx安装:yum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl
# 5.安装数据库,配置数据库开机启动,查看端口
yum -y install mariadb-server mariadb
systemctl enable --now mariadb
netstat -tunlp |grep 3306
# 6.初始化数据库
mysql_secure_installation [回车--y--password--password--y--n--y--y]
mysql -uroot -p123
# 7.添加数据库用户授权
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@'%' identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
flush privileges;
exit;
# 8.使用zabbix-mysql导入数据库信息【-u用户名 -p 后面是数据库的库名字 然后才需要输入密码】
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
# 9.修改zabbix密码
vim /etc/zabbix/zabbix_server.conf
DBPassword=password
# 10.修改php配置
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
user = nginx
group = nginx
listen.acl_users = nginx
php_value[date.timezone] = Asia/Shanghai
vim /etc/opt/rh/rh-php72/php.ini
383 max_execution_time = 300
393 max_input_time = 300
672 post_max_size = 16M
902 date.timezone = Asia/Shanghai
###(如果是Apache忽略)
### 修改nginx配置文件
vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
listen 80;
server_name 192.168.11.10;
fastcgi_pass 127.0.0.1:9000;
# fastcgi_pass unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock;
vim /etc/opt/rh/rh-nginx116/nginx/nginx.conf
server {
#listen 80 default_server;
#listen [::]:80 default_server;
#server_name _;
#root /opt/rh/rh-nginx116/root/usr/share/nginx/html;
# Load configuration files for the default server block.
#include /etc/opt/rh/rh-nginx116/nginx/default.d/*.conf;
}
# 11.启动zabbix相关服务
# http systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
yum -y intstall psmisc
killall nginx
# nginx systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
#启动报错或Zabbix server is running NO
1. 查看日志 tail -5 /var/log/zabbix/zabbix_server.log
2. 检查配置文件
3. 数据库授权问题(可能不让localhost登录)
# 12.访问zabbix入口
http://ip/zabbix
http://ip
# 13.zabbix默认用户密码
U:Admin
P:zabbix
# 同步时间
yum install ntpdate -y
ntpdate -u ntp.aliyun.com
# 14.时区的统一
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 15.zabbix乱码问题 【zabbix-server安装中文字体】
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
客户端安装zabbix-agent2
rpm -Uvh https://repo.zabbix.com/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#g' /etc/yum.repos.d/zabbix.repo
sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/zabbix.repo
yum -y install zabbix-agent2
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.11.101
ServerActive=192.168.11.101
Hostname=Zabbix-client
systemctl restart zabbix-agent2
zabbix自定义监控项说明
# 第一种取值方法
# 客户端配置zabbix-agent2.conf文件
vim /etc/zabbix/zabbix_agent2.conf
UnsafeUserParameters=1
UserParameter=mem.total,free -h |grep Mem |awk '{print $2}'
UserParameter=mem.used,free -h |grep Mem |awk '{print $3}'
UserParameter=mem.free,free -h |grep Mem |awk '{print $4}'
# 第二种取值方法
mkdir -p /etc/zabbix/zabbix_agent2.d/
chown -R zabbix.zabbix /etc/zabbix/zabbix_agent2.d/
touch /etc/zabbix/zabbix_agent2.d/mem.sh && chmod +x /etc/zabbix/zabbix_agent2.d/mem.sh
vim /etc/zabbix/zabbix_agent2.conf
UserParameter=mem[*],/etc/zabbix/zabbix_agent2.d/mem.sh $1
#创建监控脚本
vim /etc/zabbix/zabbix_agent2.d/mem.sh
#!/bin/bash
case $1 in
total)
echo `free -b |grep Mem |awk '{print $2}'`
;;
used)
echo `free -b |grep Mem |awk '{print $3}'`
;;
free)
echo `free -b |grep Mem |awk '{print $4}'`
;;
*)
echo "输入有误"
;;
esac
yum -y install zabbix-get
# -s 要测试的客户端地址 -k 指明键值
zabbix_get -s 192.168.11.102 -k mem.total
1.8G
zabbix界面操作
添加主机群
创建模板
设置模板名称 并加入主机群
添加主机群
添加
添加主机
设置主机名称 添加主机群 设置主机IP地址使用10050端口找到客户端
模板配置
配置应用集
配置监控项
可自定义键值
[root@localhost zabbix_agent2.d]# pwd
/etc/zabbix/zabbix_agent2.d
[root@localhost zabbix_agent2.d]# ls
mem.sh
[root@localhost zabbix_agent2.d]# cat mem.sh
#!/bin/bash
case $1 in
total)
echo `free -b |grep Mem |awk '{print $2}'`
;;
used)
echo `free -b |grep Mem |awk '{print $3}'`
;;
free)
echo `free -b |grep Mem |awk '{print $4}'`
;;
*)
echo "输入有误"
;;
esac
# 需要将UnsafeUserParameters=0 设为1
vim /etc/zabbix/zabbix_agent2.conf
18 UserParameter=mem[*],/etc/zabbix/zabbix_agent2.d/mem.sh $1 #添加一条运行脚本语句
289 UnsafeUserParameters=1
# 配置完后重启生效
systemctl restart zabbix-agent2.service
服务器测试 ps:服务器也需要一个一模一样的anget和.sh脚本配置
zabbix_get -s 192.168.11.102 -k mem.total
添加图形
创建触发器(报警)
表达式
{zidingyi:mem[free].last(,3s)}<200000000
zidingyi 模板名称
mem[free] 键值
last()
<200000000 当键值小于200000000
创建聚合图形
将主机添加模板
测试效果
1. Zabbix自定义监控项
监控登录的人数,登录三个就报警 (实验案例)
vim /etc/zabbix/zabbix_agent2.d/userlogin.sh
#!/bin/bash
who|wc -l
vim /etc/zabbix/zabbix_agent2.conf
UserParameter=login[*],/etc/zabbix/zabbix_agent2.d/userlogin.sh
chmod +x /etc/zabbix/zabbix_agent2.d/userlogin.sh
scp /etc/zabbix/zabbix_agent2.d/userlogin.sh root@192.168.11.101:/etc/zabbix/zabbix_agent2.d/
创建应用集
添加名称
添加监控项
设置监控项名称 键值 描述
保存
添加报警
设置触发器 触发器名称 触发器严重等级
添加表达式 (选择监控的东西)
添加
设置允许手动关闭
创建图形
添加监控项
选择监控项
设置最大值 (意思是最多人登录server1时候的数量) 后添加
测试
2.邮件报警
主机出错就就马上报警发邮件
创建报警媒介 (设置发件人)163.com
添加邮箱授权码 添加报警媒介类型为电子邮件 设置发送电子邮件的主机
设置接收邮件的主机
邮件授权地址
开启授权
添加授权码 将生成的授权码放置密码栏
添加发送信息 后点添加
设置收件人 qq.com
配置接收用户
添加刚刚设置的报警媒介类型
添加收件人地址 配置警告信息之后才发
点击更新
测试 :设置收件人
测试
添加故障后的报警内容
添加恢复后的提示信息
点击添加 后更新
添加动作
设置大于警告的就发动作
添加操作
提交用户 发送到Emalia
添加恢复操作
添加提示信息
更新
启用动作
测试
设置企业微信报警
步骤一:
注册企业微信
绑定企业微信信息
步骤二:
创建警告组
记录账号名称,等下填写接收人信息需要用到
点击我的企业,查看企业信息,要记录企业CorpID
点击企业应用,创建应用
填写信息和通知用户组
创建完,记录Agentld和Secret
配置zabbix服务器
1、首先确认已经记录的信息
告警组用户的账号,企业CorpID和创建应用的Secret、Agentld
2、修改zabbix.conf
grep alertscripts /etc/zabbix/zabbix_server.conf
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
# 我们设置zabbix默认脚本路径,这样在web端就可以获取到脚本
cd /usr/lib/zabbix/alertscripts/
wget https://raw.githubusercontent.com/OneOaaS/weixin-alert/master/weixin_linux_amd64
mv weixin_linux_amd64 wechat
chmod 755 wechat
chown zabbix:zabbix wechat
#!/usr/local/python3.3/bin/python3 #python环境位置
# coding: utf-8
import urllib.request
import json
import sys
import time
import os
import shutil
import logging
def gettoken(corp_id,corp_secret):
gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corp_id + '&corpsecret=' + corp_secret
try:
token_file = urllib.request.urlopen(gettoken_url)
except urllib.error.HTTPError as e:
print(e.code)
print(e.read().decode("utf8"))
token_data = token_file.read().decode('utf-8')
token_json = json.loads(token_data)
token_json.keys()
token = token_json['access_token']
return token
def senddata(access_token,user,content):
try:
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"touser":user, #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
"msgtype":"text",
"agentid":"1000002",
"text":{
"content":content
},
"safe":"0"
}
send_data = json.dumps(send_values,ensure_ascii=False).encode(encoding='UTF8')
send_request = urllib.request.Request(send_url, send_data)
response = urllib.request.urlopen(send_request)
msg = response.read()
print("returned value : " + str(msg))
except:
print("returned value : " + str(msg))
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
user = str(sys.argv[1])
title = str(sys.argv[2])
content = str(sys.argv[3])
corpid = 'wwb22899d2f5c8c1114' #'微信公众平台管理组的ID'
corpsecret = 'deSiAIR4_cLV4J222p6vQYbFoVDNi1WbULugAhyW2dc' #'微信公众平台管理组的凭证密钥'
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,content)
3.创建自动发现
创建自动发现规则
设置名称和发现自动网段的主机 设置发现刷新时间为20s
添加检查类型 为zabbix客户端 设置端口 设置键值
添加后 默认添加即可
已经发现到主机
配置动作
添加条件
操作进组 进模块
添加主机 添加主机群
与魔板关联
添加
测试
vim /etc/zabbix/zabbix_agent2.conf
grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.11.101
ServerActive=192.168.11.101
Hostname=Zabbix-clent2
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
添加自动注册
创建动作
添加主机名称
点击操作
添加操作 链接魔板
测试
部署分布式zabbix-proxy
#第一台(用于做主server)
#第二台(做代理zabbix)
#第三台(用于被监控)