zabbix构建部署及监控管理--------实操
角色部署:
CentOS 7-2:192.168.18.147(监测端:部署安装zabbix)CentOS 7-3:192.168.18.128(被监测端)
监测端操作:
[root@cacti ~]# systemctl stop firewalld.service #关闭防火墙功能[root@cacti ~]# systemctl disable firewalld.service #开机禁用防火墙功能Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@cacti ~]# setenforce 0 #关闭增强型安全功能`安装LAMP架构`[root@cacti ~]# yum install -y \httpd \mariadb-server mariadb \php \php-mysql \php-gd \libjpeg* \php-ldap \php-odbc \php-pear \php-xml \php-xmlrpc \php-mhash`编辑apache配置文件`[root@cacti ~]# vim /etc/httpd/conf/httpd.conf95 ServerName www.yun.com:80 #第95行,删除注释,域名自定义164 DirectoryIndex index.html index.php #164行,添加首页支持类类型index.php#修改完成后按Esc退出插入模式,输入:wq保存退出`修改时区为中国`[root@cacti ~]# vim /etc/php.ini878 date.timezone = PRC #878行,把前面模板的;号删除,后面添加中国时区PRC#修改完成后按Esc退出插入模式,输入:wq保存退出[root@cacti ~]# systemctl start httpd.service #启动apache服务[root@cacti ~]# systemctl start mariadb.service #启动mariadb服务[root@cacti ~]# netstat -ntap | egrep '(3306|80)' #使用egrep命令同时查看3306和80端口tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 4410/mysql tcp6 0 0 :::80 :::* LISTEN 4131/httpd `初始化数据库配置`[root@cacti ~]# mysql_secure_installationNOTE: 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 currentpassword for the root user. If you've just installed MariaDB, andyou 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 MariaDBroot user without the proper authorisation.Set root password? [Y/n] y #设置密码New password: #abc123Re-enter new password: #确认输入:abc123Password updated successfully!Reloading privilege tables.. ... Success!By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.Remove anonymous users? [Y/n] n #是否删除匿名用户,选择不删除 ... skipping.Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] y #是否远程连接 ... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.Remove test database and access to it? [Y/n] n #是否删除测试数据库 ... skipping.Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.Reload privilege tables now? [Y/n] y #是否重新加载 ... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!#验证登录数据库[root@cacti ~]# mysql -u root -pEnter password: #输入密码abc123Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 8Server version: 5.5.64-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.`创建zabbix数据库,并且设置为utf8形式,把里面的字符串转换为二进制`MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;Query OK, 1 row affected (0.00 sec)`提升用户`MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || test || zabbix |+--------------------+5 rows in set (0.00 sec)#此时有zabbix数据库,需要创建管理里这个数据库的用户MariaDB [(none)]> GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';Query OK, 0 rows affected (0.01 sec) #把所有数据库和所有表都交给zabbix进行管理,并且设置密码为admin123MariaDB [(none)]> flush privileges; #刷新Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> quit #退出数据库Bye`测试php基本信息`[root@localhost ~]# cd /var/www/html/[root@localhost html]# ls[root@localhost html]# vim index.php
在宿主机中输入:192.168.18.147,访问php页面:
测试是否能够连接数据库:
[root@localhost html]# vim index.php#先按3dd删除原有内容,再插入以下内容Success!!";else echo "Fail!!";mysql_close();?>
此时在宿主机中刷新之前的页面:192.168.18.147,如果可以访问mysql数据库则返回Success提示,如果不能则返回Fail提示:
如果出现Fail报错一般为本地无法登录得问题,可以使用以下方法解决:
[root@cacti html]# mysql -u zabbix -pEnter password: #此时输入admin123无法登录数据库,说明有用户占用ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)`先使用root用户登录数据库`[root@cacti html]# mysql -u root -pEnter password:Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 15Server version: 5.5.64-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> select user,host from mysql.user;+--------+-----------+| user | host |+--------+-----------+| zabbix | % || root | 127.0.0.1 || root | ::1 || | cacti || | localhost || root | localhost |+--------+-----------+6 rows in set (0.00 sec)`以下操作删除空用户`MariaDB [(none)]> drop user ''@localhost;Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> drop user ''@cacti;Query OK, 0 rows affected (0.00 sec)`此时空用户被删除`MariaDB [(none)]> select user,host from mysql.user;+--------+-----------+| user | host |+--------+-----------+| zabbix | % || root | 127.0.0.1 || root | ::1 || root | localhost |+--------+-----------+4 rows in set (0.00 sec)MariaDB [(none)]> quitBye`此时再次刷新页面就会显示Success!!成功登录`
部署Zabbix Server
[root@cacti html]# yum install php-bcmath php-mbstring -y`安装zabbix源`[root@cacti html]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm获取http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm警告:/var/tmp/rpm-tmp.13QGZK: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY准备中... ################################# [100%]正在升级/安装... 1:zabbix-release-3.5-1.el7 ################################# [100%]`查看源`[root@cacti html]# cd /etc/yum.repos.d/[root@cacti yum.repos.d]# lsCentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repoCentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo zabbix.repo[root@cacti yum.repos.d]# cat zabbix.repo[zabbix]name=Zabbix Official Repository - $basearchbaseurl=http://repo.zabbix.com/zabbix/3.5/rhel/7/$basearch/enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591[zabbix-non-supported]name=Zabbix Official Repository non-supported - $basearchbaseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIXgpgcheck=1[root@cacti yum.repos.d]# yum install zabbix-server-mysql zabbix-web-mysql -y......此处省略多行已安装: zabbix-server-mysql.x86_64 0:4.0.0-1.1rc3.el7 zabbix-web-mysql.noarch 0:4.0.0-1.1rc3.el7作为依赖被安装: OpenIPMI.x86_64 0:2.0.27-1.el7 OpenIPMI-libs.x86_64 0:2.0.27-1.el7 OpenIPMI-modalias.x86_64 0:2.0.27-1.el7 fping.x86_64 0:3.10-1.el7 iksemel.x86_64 0:1.4-2.el7.centos zabbix-web.noarch 0:4.0.0-1.1rc3.el7`生成数据库文件`[root@cacti yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -u zabbix -p zabbixEnter password: #输入密码admin123[root@cacti yum.repos.d]# grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf38:LogFile=/var/log/zabbix/zabbix_server.log49:LogFileSize=072:PidFile=/var/run/zabbix/zabbix_server.pid82:SocketDir=/var/run/zabbix101:DBName=zabbix117:DBUser=zabbix357:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log475:Timeout=4518:AlertScriptsPath=/usr/lib/zabbix/alertscripts529:ExternalScripts=/usr/lib/zabbix/externalscripts565:LogSlowQueries=3000#是配置文件中缺少的就是密码,其它得系统已自动配置[root@cacti yum.repos.d]# vim /etc/zabbix/zabbix_server.conf125 DBPassword=admin123 #125行删除注释,添加密码admin123在=号后面#修改完成后按Esc退出插入模式,输入:wq保存退出`修改时区`[root@cacti yum.repos.d]# vim /etc/httpd/conf.d/zabbix.conf20 php_value date.timezone Asia/Shanghai #20行删除注释,失去改为Asia/Shanghai#修改完成后按Esc退出插入模式,输入:wq保存退出`修正图表中文乱码`[root@cacti yum.repos.d]# vim /usr/share/zabbix/include/defines.inc.php#输入以下内容进行全局字体替换为kaiti:%s /graphfont/kaiti/g#修改完成后按Esc退出插入模式,输入:wq保存退出`复制STKAITI.TTF文件到字体目录下`[root@cacti yum.repos.d]# mkdir /aaa #创建挂载目录[root@cacti yum.repos.d]# mount.cifs //192.168.0.105/rpm /aaa #进行远程挂载Password for root@//192.168.0.105/rpm:[root@cacti yum.repos.d]# cd /aaa/zabbix/[root@cacti zabbix]# lsphp-bcmath-5.4.16-42.el7.x86_64.rpm STKAITI.TTFphp-mbstring-5.4.16-42.el7.x86_64.rpm zabbix.conf.php[root@cacti zabbix]# cp STKAITI.TTF /usr/share/zabbix/fonts/`启动服务查看端口开启情况`[root@cacti zabbix]# systemctl enable zabbix-serverCreated symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.[root@cacti zabbix]# systemctl start zabbix-server[root@cacti zabbix]# netstat -ntap | grep zabbix #监听端口为10051tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 6735/zabbix_servertcp6 0 0 :::10051 :::* LISTEN 6735/zabbix_server[root@cacti zabbix]# systemctl restart httpd.service #重启httpd服务,用于验证登录zabbix
验证:登录操作,安装zabbix
第一步:在宿主机地址栏中输入:http://192.168.18.147/zabbix/ 可进入以下页面,按Next step进入下一步
第二步:确认检查全部为OK之后,按Next step进入下一步
第三步:数据库设置,输入端口号3306,填写密码admin123,按Next step进入下一步
第四步:填写zabbix服务名称,此处填写Zabbix(可自行定义),按Next step进入下一步
第五步:可以显示之前所有配置的内容,直接按Next step进入下一步
第六步:进入页面后直接按Finish结束,进入登陆界面,输入默认账户Admin,默认密码zabbix,点击登录
此时就可以进入到zabbix的监控界面了:
可点击右上角人物头像,在Language语言栏选择Chinese(zh_CN)简体中文,点击Update更新
以上就是监测端的所有操作!
被监测端操作:
[root@localhost ~]# systemctl stop firewalld.service[root@localhost ~]# systemctl disable firewalld.serviceRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@localhost ~]# setenforce 0`安装yum源`[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm获取http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm警告:/var/tmp/rpm-tmp.elS5cl: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY准备中... ################################# [100%]正在升级/安装... 1:zabbix-release-3.5-1.el7 ################################# [100%][root@localhost ~]# cd /etc/yum.repos.d/[root@localhost yum.repos.d]# lsCentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repoCentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo zabbix.repo[root@localhost yum.repos.d]# yum install zabbix-agent -y`修改配置文件`[root@localhost yum.repos.d]# grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf13:PidFile=/var/run/zabbix/zabbix_agentd.pid32:LogFile=/var/log/zabbix/zabbix_agentd.log43:LogFileSize=098:Server=127.0.0.1 #此处需要修改为监控端IP139:ServerActive=127.0.0.1 #此处需要修改为监控端IP150:Hostname=Zabbix server268:Include=/etc/zabbix/zabbix_agentd.d/*.conf[root@localhost yum.repos.d]# vim /etc/zabbix/zabbix_agentd.conf98 Server=192.168.18.147 #98行,指向监控服务器IP139 ServerActive=192.168.18.147 #139行,指向监控服务器IP150 Hostname=zhou #主机名,可自行定义#修改完成后按Esc退出插入模式,输入:wq保存退出`启动服务`[root@localhost yum.repos.d]# systemctl enable zabbix-agent.serviceCreated symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.[root@localhost yum.repos.d]# systemctl restart zabbix-agent.service[root@localhost yum.repos.d]# netstat -ntap | grep zabbix #监听端口为10050tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 5425/zabbix_agentdtcp6 0 0 :::10050 :::* LISTEN 5425/zabbix_agentd
此时不会自动识别被监控端,需要做以下操作:
第一步:找到配置下的主机选项,点击创建主机
第二步:在主机配置界面填入相应内容,然后点击模板
第三步:在模板中选择HTTP和SSH的模板链接,点击提示器中的添加,然后再点击蓝色的添加图标
此时回到开始的界面就会显示新添加的监控项
以上就实现了服务器监控被监控端,假如被监控端遇到问题,就会触发报警,最终会以邮件形式提供(需要添加邮件发送服务)
Zabbix监测和报警机制
监控端安装邮件报警功能的操作
[root@cacti zabbix]# yum install mailx -y[root@cacti zabbix]# vim /etc/mail.rc#在末行下插入以下内容set from=邮箱地址 #例如19919919911@163.comset smtp=smtp.163.comset smtp-auth-user=邮箱地址set smtp-auth-password=邮箱密码set smtp-auth=login#修改完成后按Esc退出插入模式,输入:wq保存退出`尝试发送测试邮件`[root@cacti zabbix]# echo "hello world" | mail -s "testmail" 邮箱地址
此时邮箱收到测试邮件:
编写发邮件脚本:
[root@cacti zabbix]# cd /usr/lib/zabbix/alertscripts[root@cacti alertscripts]# vim mail.sh#!/bin/bash#send mailmessages=`echo $3 | tr '\r\n' '\n'`subject=`echo $2 | tr '\r\n' '\n'`echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1#修改完成后按Esc退出插入模式,输入:wq保存退出[root@cacti alertscripts]# mv mail.sh mailx.sh`在tmp目录下创建mailx的日志文件`[root@cacti alertscripts]# touch /tmp/mailx.log`赋予权限`[root@cacti alertscripts]# chown -R zabbix.zabbix /tmp/mailx.log[root@cacti alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh[root@cacti alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix/`验证过程`[root@cacti alertscripts]# ./mailx.sh 邮箱地址 "yun" "hello"#其中邮箱地址为$1,yun为$2主题,hello为$3内容
此时执行完脚本,邮箱中就可以收到相对应的邮件了!
接下来进入Web界面进行设置:
第一步:在上方选择管理,找到其中的报警媒介类型,再点击页面右上角的创建媒体类型,在界面中输入相关信息
第二步:选项中会显示3次探测服务,如果宕掉就会触发报警,最后点击下方的蓝色添加图标,就可以生成新的报警类型了
接下来我们需要指定用户
第一步:找到配置中的用户界面,点击Admin用户
第二步:在用户的报警媒介中点击添加,输入相对应的媒介信息,最后点击添加
第三步:添加媒介之后一定不要忘记点击更新
在动作中删除原有模板,在进行重新定义,点击右上角的创建动作
第一步:在动作界面中输入名称,生成新的触发条件
第二步:在操作中做以下操作,下方点击新的,做添加操作,最后点击跟新
此时新的操作生成!
第三步:恢复操作中做以下填写
此时新的操作生成!
第四步:点击蓝图标添加,此时就会进行持续性的监控了
查看被监控端SSH远程连接服务状态
[root@localhost yum.repos.d]# systemctl status sshd● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since 一 2019-11-25 11:00:11 CST; 2 months 7 days ago#此时显示为running运行状态`停止此服务`[root@localhost yum.repos.d]# systemctl stop sshd
此时我们看监控界面会不会跳出提示
经过等待几分钟之后监控界面会自动跳出SSH服务down的提示,此时邮箱也会收到邮件
`启动sshd服务`[root@localhost yum.repos.d]# systemctl start sshd
此时几分钟过后会自动监测到服务成功开启,报警已解决,同时邮箱也会收到服务恢复的邮件