1、基础环境搭建:
1.1 准备一台服务器:
系统:CentOS7.6版本Linux系统
ip:192.168.95.155
备注:mysql、zabbix、apache服务均在一台服务器上部署。
1.2修改repo源,yum安装基础插件:
[root@zabbix ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@zabbix ~]#curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@zabbix ~]#yum repolist
[root@zabbix ~]#yum install tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc -y
[root@zabbix ~]#yum install tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc -y
1.3永久关闭并暂停selinux和filewalld:
[root@zabbix ~]#vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@zabbix ~]#systemctl disable firewalld
[root@zabbix ~]#systemctl stop firewalld
[root@zabbix ~]#systemctl status firewalld
[root@zabbix ~]#systemctl disable NetworkManager
[root@zabbix ~]#systemctl stop NetworkManager
[root@zabbix ~]#systemctl is-active firewalld NetworkManager
[root@zabbix ~]#systemctl is-enabled firewalld NetworkManager
2、mysql数据库安装:
2.1 创建相关目录
[root@zabbix ~]# mkdir /application ----> 软件的存放目录
[root@zabbix ~]# mkdir /data/3306/data -p ----> 数据的存放位置
2.2 创建用户
[root@zabbix ~]# useradd -s /sbin/nologin -M mysql
2.3 官网下载mysql-5.7.26-linux-glibc2.12-x86_64软件并解压处理
[root@zabbix /application]# mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
2.4 数据初始化(创建系统数据)
[root@zabbix ~]# rpm -qa|grep maria
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@zabbix ~]# yum remove mariadb-libs-5.5.60-1.el7_5.x86_64 -y
[root@zabbix ~]# vim /etc/profile
export PATH=/application/mysql/bin:$PATH
[root@zabbix ~]#source /etc/profile
[root@zabbix ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using EditLine wrapper
[root@zabbix ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/3306/data
2.5 书写配置文件
[root@zabbix ~]#cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=mysql[\\d]>
EOF
2.6 准备启动脚本
[root@zabbix ~]#chown -R mysql.mysql /data/* /application/mysql/*
[root@zabbix ~]#cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@zabbix ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/3306/data/db01.err'.
SUCCESS!
2.7 使用systemd管理mysql
[root@zabbix ~]#cat > /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
2.8 启动mysql服务,并设置开机自启(mysql服务端口3306)
[root@zabbix ~]# /etc/init.d/mysqld stop
[root@zabbix ~]#systemctl status mysqld
[root@zabbix ~]#systemctl start mysqld
[root@zabbix ~]#systemctl enable mysqld
[root@zabbix ~]#netstat -lntup|grep mysql
tcp6 0 0 :::3306 :::* LISTEN 5848/mysqld
注意:将原来模式启动mysqld先关闭,然后再用systemd管理。
2.9 设置软连接,后面启动zabbix服务需要用到:
[root@zabbix ~]#mkdir /var/lib/mysql
[root@zabbix ~]#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
3、访问zabbix官网,根据官网提示,制作安装zabbix服务前的基础环境。按照自己选定的基础配置页面,执行下面的命令:
3.1在官网找自己的基础配置页面
3.2下载zabbix源,并把链接改为清华源:
[root@zabbix ~]#rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
[root@zabbix ~]#yum clean all
[root@zabbix ~]#cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
3.3安装Zabbix server,Web前端,agent
[root@zabbix ~]#yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
3.4创建初始数据库
[root@zabbix ~]#mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@'192.168.%.%' identified by 'zabbix';
mysql> quit;
3.5导入初始架构和数据,系统将提示您输入新创建的密码。
[root@zabbix ~]#zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
3.6修改zabbix_server配置文件,并启动服务,设置开机自启动。
[root@zabbix ~]#vim /etc/zabbix/zabbix_server.conf
100 DBName=zabbix
116 DBUser=zabbix
124 DBPassword=zabbix
131 DBSocket=/tmp/mysql.sock
[root@zabbix ~]#systemctl start zabbix-server.service
[root@zabbix ~]#systemctl enable zabbix-server.service
备注:检查端口是否开启,这里刚搭建好环境后zabbix_server服务端口一直起不来,需要重启一下服务器再检查端口就发现一切正常。
[root@zabbix ~]#netstat -lntup|grep zabbix_server
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 31922/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 31922/zabbix_server
3.7为Zabbix前端配置PHP
[root@zabbix ~]#vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
[root@zabbix ~]#systemctl start httpd
[root@zabbix ~]#systemctl enable httpd
[root@zabbix ~]#netstat -lntup|grep httpd
tcp6 0 0 :::80 :::* LISTEN 5853/httpd
4、zabbix服务器web页面的注册:
4.1 先进行本地输入10.0.0.71/zabbix 进入登录页面:(此处的ip取决于自己服务器实际ip)
4.2 登录创建的数据库页面:
4.3 要是进行数据库迁移则需要找下图标识的路径,用于修改上图连接数据库配置:
4.4 需要输入zabbix服务的本地名,端口和服务器名称(自己随意取名):
4.5 zabbix登录用户名为:Admin,密码为:zabbix
4.6 对于zabbix中web界面的图形注释进行汉化:
在自己笔记本C:\Windows\Fonts路径下随意找自己喜欢的字体,将其复制到zabbix服务器的/usr/share/zabbix/assets/fonts路径下,并执行mv STZHONGS.TTF graphfont.ttf即可完成汉化工作。
4.7 通过以上所有步骤,一套zabbix开源环境就已经搭建好了。下面介绍agent客户端如何安装。
5、zabbix客户端agent,基于windows环境下的安装配置:
5.1 windows下的agent客户端下载(链接: https://www.zabbix.com/downloads/4.4.7/zabbix_agent-4.4.7-windows-amd64.zip),在D盘创建agent目录,把agent文件放进去,然后解压压缩文件,会出现bin和conf两个目录:
5.2 解压并修改conf目录下的zabbix_agentd.conf配置文件:
LogFile=d:\zabbix_agentd.log ##日志文件路径
Server=192.168.95.155 ##此处配置zabbix服务端IP
ServerActive=192.168.95.155 ##此处配置zabbix服务端IP
Hostname=DESKTOP-I1VOG18 ##客户端主机名。这里的主机名应该和zabbix web界面中创建主机时候填写的主机名一致。
5.3 安装agent服务并启动(必须用管理员方式运行CMD,要不会报错无法安装agent):
C:\Windows\system32>D:\agent\bin\zabbix_agentd.exe -i -c D:\agent\conf\zabbix_agentd.conf ##运行agent安装程序,你出现2条success成功语句
C:\Windows\system32>D:\agent\bin\zabbix_agentd.exe -c D:\agent\conf\zabbix_agentd.conf -s ##启动agent程序,会在进程中看到agent进程
以上3步可以完成windows系统客户端agent服务安装。
5.4 扩展项(如何卸载agent,停止agent服务):
C:\Windows\system32>D:\agent\bin\zabbix_agentd.exe -c D:\agent\conf\zabbix_agentd.conf -x ##停止agent服务,一般在修改完配置文件后需要停止再启动,配置文件就会生效
C:\Windows\system32>D:\agent\bin\zabbix_agentd.exe -d ##可以卸载掉安装的agent服务
6、zabbix客户端agent,基于CentOS7.X环境下的安装配置:
6.1 先在清华源找到我们需求环境下的下载源:
https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.7-1.el7.x86_64.rpm
6.2 下载agent并安装:
[root@zabbix ~]#wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.7-1.el7.x86_64.rpm
[root@zabbix ~]# ll
total 11436704
-rw-------. 1 root root 1676 Dec 13 14:17 anaconda-ks.cfg
-rw-r--r--. 1 root root 441936 Mar 23 17:42 zabbix-agent-4.4.7-1.el7.x86_64.rpm
[root@zabbix ~]# rpm -ivh zabbix-agent-4.4.7-1.el7.x86_64.rpm
6.3 修改agent配置文件
[root@zabbix ~]#vim /etc/zabbix/zabbix_agentd.conf
98 Server=192.168.95.155 ##zabbix服务端ip
139 ServerActive=192.168.95.155 ##zabbix服务端ip
150 Hostname=hostname ##zabbix客户端主机名
6.4 重启agent服务,设置为开机自启动
[root@zabbix ~]#systemctl start zabbix_agentd.service
[root@zabbix ~]#systemctl enable zabbix_agentd.service
7、zabbix客户端agent,基于RHEL6.X环境下的安装配置:
7.1 先在清华源找到我们需求环境下的下载源:
https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/6/x86_64/zabbix-agent-4.4.7-1.el6.x86_64.rpm
7.2 下载agent并安装:
[root@zabbix ~]#wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/6/x86_64/zabbix-agent-4.4.7-1.el6.x86_64.rpm
[root@zabbix ~]# ll
total 11436704
-rw-------. 1 root root 1676 Dec 13 14:17 anaconda-ks.cfg
-rw-r--r--. 1 root root 441936 Mar 23 17:42 zabbix-agent-4.4.7-1.el6.x86_64.rpm
[root@zabbix ~]# rpm -ivh zabbix-agent-4.4.7-1.el6.x86_64.rpm
7.3 修改agent配置文件
[root@zabbix ~]#vim /etc/zabbix/zabbix_agentd.conf
98 Server=192.168.95.155 ##zabbix服务端ip
139 ServerActive=192.168.95.155 ##zabbix服务端ip
150 Hostname=hostname ##zabbix客户端主机名
7.4 重启agent服务,设置为开机自启动
[root@zabbix ~]#service zabbix_agent start
[root@zabbix ~]#chkconfig zabbix_agent on ##开机自启
[root@zabbix ~]#chkconfig --list |grep zabbix_agent ##检查是否开机自启
8、在zabbix的web服务页面,创建监控主机步骤:
步骤1:
步骤2:
步骤3:
步骤4:
9、增加企业微信报警功能,并在web界面中添加服务:
9.1 因为系统默认python不满足需求,先进行如下更新:
[root@zabbix ~]#cd /etc/yum.repos.d/
[root@zabbix /etc/yum.repos.d]#ll
total 40
-rw-r--r--. 1 root root 2523 Mar 25 18:32 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Nov 23 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Nov 23 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Nov 23 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23 2018 CentOS-Vault.repo
-rw-r--r--. 1 root root 664 Mar 25 18:32 epel.repo
-rw-r--r--. 1 root root 696 Mar 25 19:02 zabbix.repo
注:确保必须要有epel.repo源。
[root@zabbix ~]#yum install -y python2-pip
[root@zabbix ~]#pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
9.2 先检查报警脚本需要放置的路径:
[root@zabbix /tmp]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts /报警脚本应放路径/
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
9.3 把weixin.py脚本放在/usr/lib/zabbix/alertscripts路径下并给脚本添加x权限:
[root@zabbix ~]#cd /usr/lib/zabbix/alertscripts/
[root@zabbix /usr/lib/zabbix/alertscripts]#ll
total 4
-rw-r--r-- 1 root root 1275 Apr 8 10:21 weixin.py
[root@zabbix /usr/lib/zabbix/alertscripts]#chmod +x weixin.py
[root@zabbix /usr/lib/zabbix/alertscripts]#ll
total 4
-rwxr-xr-x 1 root root 1275 Apr 8 10:21 weixin.py
9.4 把weixin.py脚本中企业微信配置进行修改,如下:
9.5 手动测试,检查是否能够正常收发信息:
[root@zabbix /usr/lib/zabbix/alertscripts]#python weichat.py dangfengchuilai 'zabbix' '微信'
9.6 在web界面创建媒体类型:
9.7 如何创建动作,举例如下:
9.8 通过第9章的前7步即可完成微信报警功能。
10、zabbix服务端日常维护:
10.1 端口检查:
10.2 数据库检查:(zabbix数据库账号密码均为zabbix)
[root@zabbix ~]#mysql -uzabbix -pzabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 161387
Server version: 5.7.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql[zabbix]>