Centos7安装部署zabbix4.0监控服务

时间:2024-11-12 07:57:51

1、环境说明

1.1 Linux环境说明
zabbix 安装要求 /documentation/4.0/zh/manual/installation/requirements

[root@node2 ~]# cat /etc/redhat-release    查看系统版本信息
CentOS Linux release 7.4.1708 (Core) 
[root@node2 ~]# systemctl stop                 关闭防火墙
[root@node2 ~]# systemctl disable              开机禁止启动防火墙
[root@node2 ~]# cat /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                                  关闭selinux
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 


[root@node2 ~]# 

selinux setenforce 0 临时关闭
getenforce 结果为Disabled 为关闭 检查selinux是否关闭
1.2 搭建LAMP环境
Zabbix是建立在LAMP或者LNMP环境之上,在此为了方便就使用yum安装LAMP环境。

[root@node2 ~]# 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
[root@node2 ~]# rpm -qa httpd php mariadb                           安装后检查应用版本
httpd-2.4.6-89..x86_64
mariadb-5.5.60-1.el7_5.x86_64
php-5.4.16-46.el7.x86_64

1.2.2编辑httpd

[root@node2 ~]# vim /etc/httpd/conf/
95 ServerName :80                             修改主机名,URL
164     DirectoryIndex                    修改首页文件格式

1.2.3 编辑配置PHP,配置中国时区
[root@node2 ~]# vim /etc/

 878  = PRC

1.2.4启动mysqld

[root@node2 ~]# systemctl start mariadb               启动数据库
[root@node2 ~]# systemctl enable mariadb           加入开机自启动
Created symlink from /etc/systemd/system// to /usr/lib/systemd/system/.
[root@node2 ~]# systemctl status mariadb           查看运行状态
●  - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-06-13 00:31:21 CST; 11s ago
 Main PID: 2490 (mysqld_safe)
   CGroup: //
           ├─2490 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─2653 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/ --pid-file=/var/run/mariadb/ma...

Jun 13 00:31:19 node2 mariadb-prepare-db-dir[2412]: MySQL manual for more instructions.
Jun 13 00:31:19 node2 mariadb-prepare-db-dir[2412]: Please report any problems at /jira
Jun 13 00:31:19 node2 mariadb-prepare-db-dir[2412]: The latest information about MariaDB is available at /.
Jun 13 00:31:19 node2 mariadb-prepare-db-dir[2412]: You can find additional information about the MySQL part at:
Jun 13 00:31:19 node2 mariadb-prepare-db-dir[2412]: 
Jun 13 00:31:19 node2 mariadb-prepare-db-dir[2412]: Consider joining MariaDB's strong and vibrant community:
Jun 13 00:31:19 node2 mariadb-prepare-db-dir[2412]: /get-involved/
Jun 13 00:31:19 node2 mysqld_safe[2490]: 190613 00:31:19 mysqld_safe Logging to '/var/log/mariadb/'.
Jun 13 00:31:19 node2 mysqld_safe[2490]: 190613 00:31:19 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Jun 13 00:31:21 node2 systemd[1]: Started MariaDB database server.
[root@node2 ~]# netstat -lntup|grep mysqld                             查看服务端口是否存在
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2653/mysqld   

1.2.5 初始化数据库,并设置root用户密码

[root@node2 ~]# mysqladmin -u root password aihuidi     设置数据库密码
[root@node2 ~]# mysql -Uroot -p    登录数据库
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (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)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;     #创建zabbix数据库
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;       #刷新权限
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user,host from ;
+--------+-----------+
| user   | host      |
+--------+-----------+
| zabbix | %         |
| root   | 127.0.0.1 |
| root   | ::1       |
|        | localhost |
| root   | localhost |
|        | node2     |
| root   | node2     |
+--------+-----------+
7 rows in set (0.00 sec)

MariaDB [(none)]> drop user ''@localhost;      # 删除空用户
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> select user,host from ;
+--------+-----------+
| user   | host      |
+--------+-----------+
| zabbix | %         |
| root   | 127.0.0.1 |
| root   | ::1       |
| root   | localhost |
|        | node2     |
| root   | node2     |
+--------+-----------+
6 rows in set (0.00 sec)

MariaDB [(none)]> 

2、安装zabbix
安装依赖包+组件

[root@node2 ~]# yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64     javacc*
[root@node2 ~]# yum install php-bcmath php-mbstring -y  #安装php支持zabbix组件
[root@node2 ~]# rpm -ivh /zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.     安装zabbix   yum源
[root@node2 ~]# yum install zabbix-server-mysql zabbix-web-mysql -y  安装zabbix组件
[root@node2 ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.9/ | mysql -uzabbix -p -h 192.168.200.157 zabbix

Enter password: #导入数据到数据库zabbix中(最后一个zabbix是数据库zabbix),且因为用户zabbix是%(任意主机),所以登录时需要加上当前主机ip(-h 192.168.200.157)密码是用户zabbix登陆密码zabbix
[root@node2 ~]# vim /etc/zabbix/zabbix_server.conf 配置数据库密码

root@node2 ~]# 
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
100:DBName=zabbix
116:DBUser=zabbix
124:DBPassword=zabbix      把注释打开写zabbix库的密码
356:SNMPTrapperFile=/var/log/snmptrap/
473:Timeout=4
516:AlertScriptsPath=/usr/lib/zabbix/alertscripts
527:ExternalScripts=/usr/lib/zabbix/externalscripts
563:LogSlowQueries=3000
[root@node2 ~]# 

[root@node2 ~]# vim /etc/httpd// 修改时区

在这里插入图片描述

[root@node2 ~]# systemctl enable zabbix-server      启动zabbix服务并加入开机自启动
Created symlink from /etc/systemd/system// to /usr/lib/systemd/system/.
[root@node2 ~]# systemctl start zabbix-server
[root@node2 ~]# systemctl start httpd        启动httpd服务并加入开机自启动
[root@node2 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system// to /usr/lib/systemd/system/.
[root@node2 ~]# 

google 浏览器访问 http://ip/zabbix
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
U:Admin P:zabbix
在这里插入图片描述
在这里插入图片描述
安装zabbix-agent客户端
[root@node2 ~]# yum install zabbix-agent -y
[root@node2 ~]# vim /etc/zabbix/zabbix_agentd.conf

[root@node2 ~]# grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=192.168.200.156
139:ServerActive=127.0.0.1
150:Hostname=Zabbix server
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@node2 ~]# 
[root@node2 ~]# systemctl start       启动客户端
[root@node2 ~]# systemctl enable     开机启动客户端

zabbix网站页面进行汉化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
右键把字体复制到桌面上
在这里插入图片描述
然后上传到服务器上,并把TTFmv成ttf
在这里插入图片描述
修改配置文件字体名称
[root@node2 ~]# vim /usr/share/zabbix/include/

在这里插入图片描述
在这里插入图片描述
可以正常显示中文字体了
在这里插入图片描述
配置邮件报警功能
1、在zabbix-master服务器上安装mail邮件服务
安装邮件服务
yum -y install mailx
在配置文件最后面添加邮件地址信息:
网易邮箱的:
set from=xxxxxxx@ 邮箱地址
set smtp=smtp. 为邮件服务器
set smtp-auth-user=xxxxxxx@ 邮箱用户名
set smtp-auth-password=XXXXXXXX 邮箱密码,由于163邮箱需要设置授权,此处需要填写授权密码
set smtp-auth=login
测试:
[root@node2 ~]# echo "hello zabbix " | mail -s “liudonghui_zabbix-install” xxxxxxx@
》》》点击此处详解mailx邮件配置
2、编写发送邮件脚本

[root@node2 ~]# cd /usr/lib/zabbix/alertscripts/
[root@node2 alertscripts]# vim                编写发邮件脚本
#!/bin/bash
##############################################################
# File Name: 
# Version: V1.0
# Author: aihuidi
# Organization: 
# Created Time : 2019-6-13 14:35
# Description: Send an alarm email
##############################################################
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/ 2>&1

3、修改权限

[root@node2 alertscripts]# touch /tmp/
[root@node2 tmp]# chown -R  /tmp/ 
[root@node2 alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/ 
[root@node2 alertscripts]# chown -R  /usr/lib/zabbix/

4、测试脚本发送邮件

[root@node2 alertscripts]# ./ xxxxxxxxxx@ "node1-java_server" "java-down"
# ./ xxxxxxxxxx@ "主题" "内容"

在这里插入图片描述
下面我们实现对nginx服务的监控
1、对nginx服务的监控有很多方法,可以从端口,进程,也可以从应用层进行监控,我们就应用层来模仿用户请求服务,检测nginx服务是否提供响应
nginx服务自行安装
定义触发器首先要获取相应值:
zabbix-agent客户端
在这里插入图片描述
添加自定义item文件存放路径
在这里插入图片描述
创建监控项值
在这里插入图片描述
书写格式,nginx-alive为监控项名称
在这里插入图片描述
重启zabbix-agnet客户端

[root@node2 zabbix_agentd.d]# systemctl restart zabbix-agent

看zabbix-srver服务端可不可以获取到值
在这里插入图片描述
去zabbix网页上进行添加
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建触发器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置服务监控自动触发邮件发送脚本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
详细的告警通知内容:

告警标题:故障({}),服务器:({HOSTNAME1}发生:{})故障!
告警信息:
告警事件ID: {}
告警主机IP: {}
告警主机: {HOSTNAME1}
告警时间: {}-{}
告警等级: {}
告警信息: {}
告警项目: {TRIGGER.KEY1}
问题详情: {}:{}
当前状态: {}:{ITEM.VALUE1}

恢复标题:恢复({}),服务器:({HOSTNAME1}:{})已恢复!
恢复信息:
告警事件ID: {}
告警主机IP: {}
告警主机: {HOSTNAME1}
告警时间: {}-{}
告警等级: {}
告警信息: {}
告警项目: {TRIGGER.KEY1}
问题详情: {}:{}
当前状态: {}

简单的告警通知内容:

{}:{}

告警主机:{HOST,NAME}
告警 IP:{}
告警时间:{}-{}
告警等级:{}:{}
事件 ID :{}

添加触发器的告警动作简单的告警内容配置:
在这里插入图片描述
详细的内容告警配置:
在这里插入图片描述
恢复操作配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
监控配置流程:
Host groups(主机组)→Hosts(主机)→Applications(监控项组)→Items(监控项)→Triggers(触发器)→Event(事件)→Actions(处理动作)→User groups(用户组)→Users(用户)→Medias(告警方式)→Audit(日志审计)
下面我们测试发送邮件告警
停掉nginx服务
在这里插入图片描述
在这里插入图片描述
可以看到动作6封邮件都发送成功
在这里插入图片描述
邮箱提示:
在这里插入图片描述
在这里插入图片描述
详细的问题告警内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
详细的问题告警内容:
在这里插入图片描述
恢复邮箱告警提醒:
在这里插入图片描述
在这里插入图片描述
监控主机连接用户数超过3个进行报警:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
zabbix启用snmp监控linux主机
client:

1、安装snmp工具
[root@node2 ~ ]# yum install -y net-snmp
2、配置
[root@node2 ~ ]# cp /etc/snmp/ /etc/snmp/
[root@node2 ~ ]# vim /etc/snmp/ 
在对应行修改以下内容:
41 com2sec notConfigUser  default       zabbix      #社区名称定义为zabbix
55 view    systemview    included   .1              #添加一个采集项.1,意味着可以采集到所有mib tree的信息  
[root@node2 ~ ]# systemctl start snmpd          启动snmp服务
[root@node2 ~ ]# systemctl status snmpd         查看运行状态
[root@node2 ~ ]# systemctl enable snmpd         加入开机自启动
[root@node2 ~ ]# netstat -lntup|grep 161        查看服务端口是否存在
udp        0      0 0.0.0.0:161             0.0.0.0:*                           94289/snmpd     

service:
安装snmpwalk工具测试

[root@node2 ~ ]#  yum install -y net-snmp-utils
[root@node2 ~ ]# snmpwalk -v 2c -c zabbix 192.168.200.157|wc -l
5656

Web side:
添加新主机
在这里插入图片描述
添加监控模板
在这里插入图片描述
添加宏
值为配置snmp服务的时候创建的社区名称zabbix
在这里插入图片描述
主机添加完成后,等待一段时间等待变绿
在这里插入图片描述
同时也可以在最新数据中查看采集到的数据
在这里插入图片描述
zabbix添加Web页面监控:
zabbix提供了web监测功能,监控到站点的响应时间,还可以根据站点返回的状态码,或者响应时间做报警,列入服务保证官网确打不开等现象,第一时间得知web崩溃信息并做相应处理。
在这里插入图片描述
创建web场景
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Status为Enabled则成功
在这里插入图片描述
设置web测试触发器:
在这里插入图片描述
创建一个新的触发器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择这个表达式:代表最新取回的值与N进行比较,如果值不等于N,那就进行告警
在这里插入图片描述
触发器已添加成功
在这里插入图片描述
Monitoring——Web查看,已经监控到URL状态。
在这里插入图片描述

想要监控其它服务比如Mysql等其它服务。。。可以使用zabbix自带的模板,也可以自己写监控值,创建触发器