zabbix-proxy配置及邮件配置

一、下载配置server,agent端

下载zabbix-server,server客户端

# 备注:zabbix源不能和epel源同时存在,要给epel源注释了
# 更新下载zabbix源
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 更新yum仓库
[root@zabbix-server ~]# yum clean all
[root@zabbix-server ~]# yum repolist

# 安装
安装 zabbix rpm 源,鉴于国内网络情况,使用阿里云 zabbix 源
# 更换源
[root@zabbix-server ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

# 下载软件包
[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
[root@zabbix-server ~]# yum install -y zabbix-get.x86_64  #安装zabbix命令工具
Shell
安装数据库

# 1、安装数据库
# 安装 mariadb.repo
[root@zabbix-server ~]# yum install -y mariadb mariadb-server
# 2、启动数据库
[root@zabbix-server ~]# systemctl restart mariadb
[root@zabbix-server ~]# systemctl enable mariadb
[root@zabbix-server ~]# mysqladmin -u root password 'zabbix'    #设置root密码

# 3、创建数据库并授权账号
[root@zabbix-server ~]# mysql -uroot -p'zabbix'
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;  # 创建zabbix数据库
MriaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';                                        # 注意授权网段
MariaDB [(none)]> flush privileges;           # 刷新授权
MariaDB [(none)]> \q   #退出

# 4、导入数据
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:                   #输入密码
Shell
配置 server 端

[root@zabbix-server ~]# cd /etc/zabbix/
[root@zabbix-server zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
#为了方便我们以后恢复,我们把配置文件备份一下
[root@zabbix-server zabbix]# cp zabbix_server.conf zabbix_server.conf.bak
[root@zabbix-server zabbix]# vim zabbix_server.conf
 DBHost=localhost            #数据库对外的主机
 DBName=zabbix               #数据库名称
 DBUser=zabbix               #数据库用户
 DBPassword=zabbix           #数据库密码
 
 # 启动zabbix-server
 [root@zabbix-server zabbix]# systemctl start zabbix-server
[root@zabbix-server zabbix]# systemctl enable zabbix-server

# 验证10051端口有没有起来
[root@zabbix-server zabbix]# netstat -lntp | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      1574/zabbix_server  
tcp6       0      0 :::10051                :::*                    LISTEN      1574/zabbix_server

# 配置 web GUI
1.启用zabbix前端源,修改vim /etc/yum.repos.d/zabbix.repo,将[zabbix-frontend]下的 enabled 改为 1
[root@zabbix-server zabbix]# vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...
gpg--》都改成0

2.安装 Software Collections,便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4 过低
[root@zabbix-server zabbix]# yum install centos-release-scl -y
3.安装 zabbix 前端和相关环境
[root@zabbix-server zabbix]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

# 为Zabbix前端配置PHP
[root@zabbix-server ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf   #设置时区
#里面基本不用动。只需要添加一行时区即可
php_value[date.timezone] = Asia/Shanghai       ---添加如下

# 启动`httpd`服务
[root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zabbix-server ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

#验证:打开游览器访问
`192.168.246.228/zabbix`,第一次访问时需要进行一些初始化的设置
# 初始账户及密码
user=Admin
password=zabbix
Shell
配置agent端

# agent端可以是多台
[root@zabbix-node1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zabbix-node1 ~]# yum install zabbix-agent zabbix-sender -y

# 备份配置文件
[root@zabbix-node1 ~]# cd /etc/zabbix/
[root@zabbix-node1 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@zabbix-node1 zabbix]# cp zabbix_agentd.conf{,.bak}
[root@zabbix-node1 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.conf.bak  zabbix_agentd.d

# 修改配置文件
[root@zabbix-node1 zabbix]# vim zabbix_agentd.conf   ----修改如下
Server=192.168.246.228 zabbix服务器的地址 
ServerActive=192.168.246.228 主动模式 zabbix-server-ip 
Hostname=zabbix-node1 
UnsafeUserParameters=1 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符,是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.

# 启动agent服务
[root@zabbix-node1 zabbix]# systemctl start zabbix-agent
[root@zabbix-node1 zabbix]# systemctl enable zabbix-agent

# 验证10050端口有没有起来
[root@zabbix-node1 zabbix]# netstat -lntp | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      9000/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      9000/zabbix_agentd
Shell
配置完成,此时可以在网址上做配置设置了

修改语言--中文版

点开Administration-->Users-->Admin-->Language(选择chinese)
# 现在界面是中文版的了
Shell
界面创建流程

监控方面,先创建一个主机(host),在创建一个监控项(item)用于采集数据。告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)
Shell
二、自定义key

# 修改配置文件,把查找参数的命令设为用户参数
[root@zabbix-node1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-node1 zabbix_agentd.d]# vim memory_usage.conf
UserParameter=memory.used,free | awk '/^Mem/{print $3}'
UserParameter=定义的key,查看的命令语句

# 重启agent服务
[root@zabbix-node1 zabbix_agentd.d]# systemctl restart zabbix-agent.service

# 在zabbix-server 端,查询
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.used"
如果可以验证到结果,就可以到web界面去设置参数,启动监控了
Shell
# 也可以指定参数--传参
[root@zabbix-node1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-node1 zabbix_agentd.d]# vim memory_usage.conf
UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}'     --添加到文件中注意去掉反斜杠

# 重启agent服务
[root@zabbix-node1 zabbix_agentd.d]# systemctl restart zabbix-agent.service

# 在zabbix-server 端,查询使用这个用户参数的key
传参:
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[MemTotal]"
999696
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Cache]"
243832
[root@zabbix-server fonts]# zabbix_get -s 192.168.246.226 -p 10050 -k "memory.stats[Buffer]"
2108
Shell
三、网络发现(自动发现)

# 安装agent 段的包
[root@zabbix-node2 ~]# yum -y install zabbix-agent zabbix-sender

# 设置agent 配置,可以把之前设置好的node1的配置传过来
[root@zabbix-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
Hostname=zabbix-node2 #只需修改hostname

# visudo赋予权限
[root@zabbix-node2 ~]# visudo       #修改sudo的配置,添加如下信息
#Defaults !visiblepw

93 zabbix ALL=(ALL) NOPASSWD: ALL

# 启动服务
[root@zabbix-node2 ~]# systemctl start zabbix-agent

# 在server端验证
[root@zabbix-server ~]# zabbix_get -s 192.168.246.227 -p 10050 -k "system.hostname"
zabbix-agent-none2

# 到web网址界面操作
配置--自动发现--自动发现规则--。。。
Shell
四、zabbix-proxy分布式监控

# 需要对时,保证两台机器的时间一致
- ntpdate 192.168.198.156 制作时间服务器
[root@zabbix-server ~]# yum install -y ntp
[root@zabbix-server ~]# vim /etc/ntp.conf  #有4行server的位置,把那4行server行注释掉,填写以下两行
server 127.127.1.0 # local clock
fudge  127.127.1.0 stratum 10
[root@zabbix-server ~]#  systemctl start ntpd
[root@zabbix-server ~]#  systemctl enable ntpd
同步时间
[root@zabbix-proxy ~]# yum install -y ntpdate
[root@zabbix-proxy ~]# ntpdate 192.168.198.156

[root@zabbix-node2 ~]# yum install -y ntpdate
[root@zabbix-node2 ~]# ntpdate 192.168.198.156

- 关闭防火墙,selinux
- 设置主机名 hostnamectl set-hostname zabbix-proxy
[root@localhost ~]# hostnamectl set-hostname zabbix-proxy

- vim /etc/hosts 每个机器都设置hosts,以解析主机名;
监控端
[root@zabbix-server ~]# cat /etc/hosts
192.168.198.156 zabbix-server
192.168.198.158 zabbix-node2
192.168.198.159 zabbix-proxy

代理端
[root@zabbix-proxy ~]# cat /etc/hosts
192.168.198.156 zabbix-server
192.168.198.158 zabbix-node2
192.168.198.159 zabbix-proxy

被监控端
[root@zabbix-node2 ~]# cat /etc/hosts
192.168.198.156 zabbix-server
192.168.198.158 zabbix-node2
192.168.198.159 zabbix-proxy

| 机器名称      | IP配置          | 服务角色  |
| ------------- | --------------- | --------- |
| zabbix-server | 192.168.198.156 | 监控      |
| zabbix-node1  | 192.168.198.157 | 被监控端  |
| zabbix-node2  | 192.168.198.158 | 被监控端  |
| zabbix-proxy  | 192.168.198.159 | 代理proxy |

# 在 zabbix-proxy 上配置 mysql
[root@zabbix-proxy ~]# yum install -y mariadb mariadb-server
[root@zabbix-proxy ~]# systemctl start mariadb
[root@zabbix-proxy ~]# mysqladmin -uroot password 'zabbix'
[root@zabbix-proxy ~]# mysql -uroot -p'zabbix'
MariaDB [(none)]> create database proxydb character set 'utf8';
MariaDB [(none)]> grant all on proxydb.* to 'proxy'@'localhost' identified by 'zabbix';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> \q

# 在 zabbix-proxy上下载zabbix 相关的包,主要是代理proxy的包
[root@zabbix-server ~]# scp /etc/yum.repos.d/zabbix.repo 192.168.198.159:/etc/yum.repos.d/
编辑zabbix.repo源将里面的gpgcheck关闭
[root@zabbix-proxy ~]# yum -y install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender

# 将zabbix-proxy-mysql包里面的数据导入数据库中
[root@zabbix-proxy ~]# cp /usr/share/doc/zabbix-proxy-mysql-5.0.3(版本号)/schema.sql.gz ./
[root@zabbix-proxy ~]# ls
anaconda-ks.cfg  schema.sql.gz
[root@zabbix-proxy ~]# gzip -d schema.sql.gz 
[root@zabbix-proxy ~]# ls
anaconda-ks.cfg  schema.sql
[root@zabbix-proxy ~]# mysql -uroot -p proxydb < schema.sql 
Enter password:

# 配置proxy端
[root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
# proxyMode=0  #默认是主动模式(0是主动模式,1是被动模式)
Server=192.168.198.156        # server端 的IP
ServerPort=10051             # server端 的端口

Hostname=zabbix-proxy        # 主机名
ListenPort=10051             # proxy自己的监听端口
EnableRemoteCommands=1       # 允许远程命令
LogRemoteCommands=1          # 记录远程命令的日志

# 数据的配置
DBHost=localhost
DBName=proxydb
DBUser=proxy
DBPassword=zabbix

ConfigFrequency=30      # 多长时间,去服务端拖一次有自己监控的操作配置;为了实验更快的生效,这里设置30秒,默认3600s
DataSenderFrequency=1   # 每一秒向server 端发一次数据,发送频度

# 启动proxy服务
[root@zabbix-proxy ~]# systemctl start zabbix-proxy

[root@zabbix-proxy ~]# netstat -lntp | grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      15798/zabbix_proxy  
tcp6       0      0 :::10051                :::*                    LISTEN      15798/zabbix_proxy

# 配置agent端允许proxy代理监控
[root@zabbix-agent ~]#  vim /etc/zabbix/zabbix_agentd.conf---添加proxy的ip地址
Server=192.168.198.156,192.168.198.159
ServerActive=192.168.198.156,192.168.198.159
Hostname=zabbix-node2
[root@zabbix-agent ~]#  systemctl restart zabbix-agent #启动服务

# 在web网址上配置
管理--agent代理程序--agent代理程序(要与配置文件中应以的一样)--添加--配置--主机--选好主机名称--已启用那里打开zabbix proxy
Shell
五、配置发送邮件

##server服务器端
安装MUA软件:mailx
[root@zabbix-server ~]#  yum install mailx -y
[root@zabbix-server ~]# mailx -V 
12.5 7/5/10
注:使用新的方式--利用公网邮件服务器发送报警,需要关闭postfix服务
[root@zabbix-server ~]# systemctl stop postfix

# 配置公网邮箱信息:
[root@zabbix-server ~]# vim /etc/mail.rc  ---在最后添加如下:
set from=12345678@163.com(邮箱地址) 
 set smtp=smtp.163.com(smtp服务器) 
 set smtp-auth-user=12345678@163.com(用户名) 
 set smtp-auth-password=qf123456(这里是邮箱的授权密码) 
 set smtp-auth=login
 
 # 阿里云服务器--需要配置证书
 # 一、请求数字证书
mkdir -p /root/.certs/ ####创建目录,用来存放证书
echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt ####向163请求证书
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ####添加一个SSL证书到证书数据库中
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ####添加一个Global 证书到证书数据库中
certutil -L -d /root/.certs ####列出目录下证书

# 二、配置发件人
[root@zabbix-server ~]# vim /etc/mail.rc  ---在最后添加如下:
set bsdcompat
set from=xxxxxx@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=xxxxxx@163.com
set smtp-auth-password=xxxxxxx #此密码为第三方登录密码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/root/.certs

# 三、测试
echo “test” | mail -s “zabbix” xxxxxxx@qq.com
登陆收件人邮箱查看
看似成功但是linux中报错:证书不被信任

# 四、解决最后一个问题-----证书不被信任
cd /root/.certs/
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt

# 成功标志:
Notice: Trust flag u is set automatically if the private key is present.


## 发送邮箱方式
方式1:echo "正文内容" | mailx -s "邮件标题" 收件箱Email
方式2:mailx -s "邮件标题" 收件箱Email,回车按CTRL+D发送
参数:
-v :显示发送的详细信息

手动发送邮件测试:
[root@zabbix-server ~]# mailx -v -s 'hello' 'zhangsan@163.com'
手写邮件内容 (回车,然后ctrl+D正常结束)
[root@zabbix-server ~]# mailx -v -s 'hello' 'zhangsan@163.com'
nihao
EOT
Resolving host smtp.163.com . . . done.
Connecting to 123.126.97.2:smtp . . . connected.
220 163.com Anti-spam GT for Coremail System (163com[20141201])
>>> EHLO zabbix-server
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN 
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFeF38eUCa0xDrUUUUj
250-STARTTLS
250 8BITMIME
>>> AUTH LOGIN
334 dXNlcm5hbWU6
>>> bHd4MTgzNjYwMTkzNTZAMTYzLmNvbQ==
334 UGFzc3dvcmQ6
>>> bHd4MTgzNjYwMTkzNTY=
235 Authentication successful
>>> MAIL FROM:<lwx18366019356@163.com>
250 Mail OK
>>> RCPT TO:<lwx18366019356@163.com>
250 Mail OK
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Mail OK queued as smtp2,GtxpCgDXkqTEFERdskSAAA--.825S2 1564742867
>>> QUIT
221 Bye

# 此时终端配置完成,在web网址上操作
配置 zabbix 的邮件报警功能需要以下三个角色的参与
注:脚本名称任意,存放于/usr/lib/zabbix/alertscripts ----路径可以改

名称:sendmail                   //名称任意
类型:脚本
脚本名称:sendmail.sh      
脚本参数:                          //一定要写,否则可能发送不成功
    {ALERT.SENDTO}              //照填,收件人变量
    {ALERT.SUBJECT}             //照填,邮件主题变量,变量值来源于‘动作’中的‘默认接收人’
    {ALERT.MESSAGE}           //照填,邮件正文变量,变量值来源于‘动作’中的‘默认信息’

配置完成后,不要忘记点击存档,保存你的配置。       

# 步骤
管理--报警媒介类型--名称(邮件报警)--类型(脚本)--脚本名字(要和终端上脚本名称的一致)--脚本参数(3个,上面模板)--添加

# 修改zabbix服务端配置文件&编写脚本:指定脚本的存储路径:
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts  #打开注释,核对路径,也可以修改路径

`编写邮件脚本:`
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# vim sendmail.sh   
#!/bin/sh 
#export.UTF-8
echo "$3" | sed s/'\r'//g | mailx -s "$2" $1

$1:接受者的邮箱地址:sendto
$2:邮件的主题:subject
$3:邮件内容:message

# 修改权限 及更用户和组:
[root@zabbix-server alertscripts]# chmod u+x sendmail.sh && chown zabbix.zabbix sendmail.sh

# 返回web界面操作
管理--用户--Admin--报警媒介--添加类型(邮件报警)--填写收件人--点击更新------触发器(填写名称,严重性,表达式)--点添加------动作--点触发动作--填写名称--触发条件(触发器)--点操作--选择时间--标题及内容(填写西面的模板)

默认信息:邮件的主题

Problem:{TRIGGER.NAME}

故障恢复: {TRIGGER.NAME}

主机: {HOST.NAME1}
时间: {EVENT.DATE} {EVENT.TIME}
级别: {TRIGGER.SEVERITY}
触发: {TRIGGER.NAME}
详情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
状态: {TRIGGER.STATUS}
项目:{TRIGGER.KEY1} 
事件ID:{EVENT.ID}
Shell
六、配置钉钉报警

# 钉钉需要创建公司名称,建团队群
Shell
 

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值