centos 7 zabbix搭建以及邮件微信告警实现

1. 环境准备:

zabbix-server  192.168.101.128  mysql5.7

zabbix-client   192.168.101.130

2.搭建过程:

server端:

安装zabbix:

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
 yum -y install zabbix-server-mysql zabbix-web-mysql

安装数据库mysql:

rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum -y install mysql-community-server 
systemctl start mysqld.service && systemctl enable mysqld.service

初始化数据库:

#查看初始密码
cat /var/log/mysqld.log | grep password
#登陆数据库
mysql -uroot -p
#修改密码
set password = password('[email protected]');
#创建数据库并授权
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'Zabbix123!';
#导入初始数据
cd /usr/share/doc/zabbix-server-mysql-3.4.8/
zcat create.sql.gz | mysql -uzabbix -pZabbix123! -D zabbix
#验证结果
show tables from zabbix;
select count(*) tables, table_schema from information_schema.tables where table_schema ='zabbix';

修改配置文件:

vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix123!
#修改安装目录和权限
chown -R zabbix:zabbix /etc/zabbix/
chmod -R 755 /etc/zabbix/
#启动服务并加入开机启动
systemctl start zabbix-server && systemctl enable zabbix-server

#配置php
vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga

#去掉时区前的#号并修改为Asia/Shanghai:

php_value date.timezone Asia/Shanghai
#启动apache服务,并设置开机自启
systemctl restart httpd && systemctl enable httpd

登陆网页:

http://192.168.101.128/zabbix

根据提示填写相关的信息就好了  默认登陆用户密码:Admin/zabbix

agent端:

安装zabbix:

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum -y install zabbix-agent


#配置zabbix-agent
sed -i 's/^ *Server=127.0.0.1/Server=192.168.101.128/g' /etc/zabbix/zabbix_agentd.conf
sed -i 's/^ *ServerActive=127.0.0.1/ServerActive=192.168.101.128/g' /etc/zabbix/zabbix_agentd.conf

sed -i 's/^ *Hostname=Zabbix server/Hostname=192.168.101.130/g' /etc/zabbix/zabbix_agentd.conf

'''
Server:被动模式,允许哪台机器连接到aget。  
ServerActive: 主动模式,向哪台服务器传送数据。

Hostname:唯一,需与添加主机时‘主机名称’保持一致。

Zabbix agents可以执行被动和主动两种检查方式。
在passive check 模式中agent应答数据请求,Zabbix server(或者proxy)询问agent数据,如CPU 的负载情况,然后Zabbix agent回送结果。
Active checks 处理过程将相对复杂。 Agent必须首先从Zabbix sever索取监控项列表以进行独立处理,然后周期性地发送新的值给server。
执行被动或主动检查是通过选择相应的监测项目类型来配置的。

本文选择被动模式,当zabbix-server监控主机过多出现性能问题时可考虑主动模式。
'''

权限设置:

chown -R zabbix:zabbix /etc/zabbix
chmod -R 755 /etc/zabbix

#启动服务
systemctl start zabbix-agent && systemctl enable zabbix-agent

3. web端设置

更改显示语言为中文

添加主机:192.168.101.130

主机名称:可以使用字母数字、空格、点”.“、中划线”-“、下划线”_“,必须唯一。与agent中配置文件zabbix_agentd.conf的‘Hostname’参数保持一致。

可见的名称:显示在网页列表上供展示的名称。

新的群组:为主机新建分组,所有访问权限都分配到主机组,而不是单独的主机。这也是主机需要属于至少一个组的原因。

IP地址:被监控主机的ip地址。

其它配置默认。

选择模板:template os linux

如果显示乱码就在server端安装字体:

yum -y install wqy-microhei-fonts && cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

新建监控项:

新建监控项为监控主机运行时长,当主机运行时长超过3个月(180天)触发告警(系统默认模板‘Template OS Linux’已有uptime的信息,记录主机启动时间)。

agent端修改被监控端的zabbix_agent.conf配置文件

[root@zabbix-agent ~]# view /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=checkuptime,cat /proc/uptime| awk -F. '{run_days=$1 / 86400;print(run_days)}'

重启服务

[root@zabbix-agent ~]# systemctl restart zabbix-agent 

server测试

安装zabbix-get。Zabbix get 是一种命令行应用,它可以用于与Zabbix agent进行通信,并从agent哪里获取所需的信息 该应用通常被用于Zabbix agent故障排除。

[root@zabbix-server ~]# yum -y install zabbix-get

测试命令

[root@zabbix-server ~]# zabbix_get -s 192.168.101.130 -k checkuptime
0.307488

新建模板

此处图片较多 详情参考:https://www.linuxidc.com/Linux/2018-09/154433.htm

对于监控项,名称(Name)、值(Key)、信息类型(Type of information)为必选项,且Key唯一

略过.....

邮件推送:

zabbxi实现邮件告警推送有两种方式:

a.使用zabbix服务端的本地邮箱账号发送,邮件名为:[email protected],user为发送邮件的用户,hostname为zabbix-server的主机名,该邮箱只能发送,不能接收外部邮件;

b.使用外部邮箱指定为告警发送邮箱。

一般公司都有邮件系统,为方便管理,本文采用外部邮箱方式发送告警。(申请163邮箱号:[email protected] ,注意开启客户端授权)

1.关闭postfix

[root@zabbix-server ~]# systemctl stop postfix
[root@zabbix-server ~]# systemctl disable postfix

postfix为本地邮箱推送方式需安装的软件,若同时配置本地和外部邮箱两种发送方式,系统会优先采用外部邮箱方式,所以该步骤不是必须但最好关闭这个服务。

2.安装邮件发送工具mailx

[root@zabbix-server ~]# yum -y install mailx

查看mailx版本:

[root@zabbix-server ~]# mail -V
12.5 7/5/10 

3.配置外部邮箱

[root@zabbix-server ~]# vim /etc/mail.rc
set [email protected]
set smtp=smtp.163.com
set [email protected]
set smtp-auth-password=xxx
set smtp-auth=login

‘smtp-auth-password’为‘客户端授权密码’

#测试

echo "zabbix test mail 123" |mail -s "zabbix" [email protected]

4.编写邮件发送脚本

修改脚本路径

[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts

编写脚本mail.sh

[root@zabbix-server ~]# cd /etc/zabbix/
[root@zabbix-server zabbix]# mkdir alertscripts && cd alertscripts && touch mail.sh
[root@zabbix-server alertscripts]# more mail.sh 
#!/bin/bash
echo "$3" | mail -s "$2" $1
[root@zabbix-server alertscripts]# chmod 755 mail.sh

$1:收件人邮箱地址;$2:邮件标题;$3:邮件内容

先记录到此 

https://www.linuxidc.com/Linux/2018-09/154433.htm

https://www.linuxidc.com/Linux/2018-09/154434.htm

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/82865234
今日推荐