zabbix部署与安装
第一节:zabbix4.0的安装
- 安装repo源
[root@localhost ~]# rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
[root@localhost ~]# vim /etc/yum.repos.d/zabbix.repo
********************** 替换语句 ***************************************
:%s#repo.zabbix.com#mirror.tuna.tsinghua.edu.cn/zabbix#g
- 安装zabbix-server-mysql
[root@localhost ~]# yum install zabbix-server-mysql -y
- 安装zabbix-web-mysql
[root@localhost ~]# yum install zabbix-web-mysql -y
- 安装与配置数据库mariadb-server
# 安装mariadb-server
[root@localhost ~]# yum install mariadb-server -y
# 设置开机自启
root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# systemctl is-enabled mariadb
enabled
[root@localhost ~]# systemctl start mariadb
# 数据库安全初始化(设置密码部分为n,其他为y)
[root@localhost ~]# mysql_secure_installation
# 创建数据库
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
# 数据库授权
MariaDB [(none)]> grant all on zabbix.* to zabbix@'%' identified by '123456';
MariaDB [(none)]> flush privileges;
# 查找zabbix的sql文件
[root@localhost ~]# rpm -ql zabbix-server-mysql
[root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.20/
[root@localhost zabbix-server-mysql-4.0.20]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@localhost zabbix-server-mysql-4.0.20]# file create.sql.gz
create.sql.gz: gzip compressed data, was "create.sql", from Unix, last modified: Mon Apr 27 09:04:32 2020
[root@localhost zabbix-server-mysql-4.0.20]# gzip -d create.sql.gz
# 将sql文件导入到数据库中
[root@localhost zabbix-server-mysql-4.0.20]# mysql -uzabbix -p123456 zabbix <create.sql
- 修改zabbix-server配置文件
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
如果mysql也是在本机上面,但是不是通过yum安装的,而是通过二进制或者编译安装可能需要配置socket路径,否则可能连接不上mysql
# 过滤需要修改的配置文件,进行检查
[root@localhost ~]# 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=123456
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
# 设置zabbix开机自启
[root@localhost ~]# systemctl enable zabbix-server
# 启动zabbix
[root@localhost ~]# systemctl start zabbix-server
# 检查是否正常启动,默认端口是10051
[root@localhost ~]# netstat -nlp|grep 10051
# 如果没有权限则关闭selinux
[root@localhost ~]# setenforce 0
# setenforce 0是临时关闭防火墙,这里是永久关闭
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 如果没有启动可以检查下启动日志
[root@localhost ~]# tailf /var/log/zabbix/zabbix_server.log
- 修改zabbix-web配置文件
# 装好zabbix后就会在httpd的conf下就会多一个zabbix配置文件,启动httpd
oot@localhost ~]# systemctl start httpd
# 查看是否启动并用本地及其测试端口能否通
[root@localhost ~]# netstat -tunlp|grep 80
# 如果不通,关闭iptable防火墙
[root@localhost ~]# systemctl stop firewalld
- 通过本机访问这台服务器
- 配置时区,可以发现时区是未知的:
# 编辑时区默认是注释
[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
# 通过apache来调整php的参数,重启httpd服务
[root@localhost ~]# systemctl restart httpd
- 成功
-
配置数据库连接
-
配置Zabbix Server(填写zabbix server的名字,这个名字将作为标题)
- Zabbix登录(默认的用户名是:Admin,密码是:zabbix)
- 正常登录则Zabbix安装成功:
- 中文设置
第二节:添加监控主机
1.在zabbix-server上安装监控主机
# 安装agent
[root@-server ~]#yum install zabbix-agent.x86_64 -y
# 设置开机启动
[root@server ~]# systemctl enable zabbix-agent
# 启动agent
[root@server ~]# systemctl start zabbix-agent
# 查看默认启动的端口
[root@Zabbix-server ~]# netstat -tunlp|grep 1005
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 9903/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 9903/zabbix_agentd
2.在其它服务器上安装监控主机
# 下载rpm包
[root@agent ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.20-1.el7.x86_64.rpm
# 安装agent
[root@agent ~]# rpm -ivh zabbix-agent-4.0.20-1.el7.x86_64.rpm
# 修改agent配置文件,将Server=127.0.0.1修改为zabbix-server端的ip
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
# 启动zabbix-agent
[root@agent ~]# systemctl enable zabbix-agent
[root@agent ~]# systemctl start zabbix-agent
3.添加监控主机
第三节:添加触发器
1.系统触发器
-
点击用户头像,打开用户基本资料,选择开启“正在发送消息”来开启此功能。如果有警告,系统会发出警告声
-
查看系统自带的触发器
-
下面测试“Linux用户密码文件发生改变”的触发器
-
设置采集的时间间隔,将原来默认1小时修改为10s
-
查看最新数据,可以看到最新数据
-
在监控主机上使密码文件发生变化
[root@agent ~]# md5sum /etc/passwd
0e25fd06e48d0f1ff3d28061b898f9c3 /etc/passwd
# 得到的最新数据和Web界面上显示的一样
[root@agent ~]# cksum /etc/passwd
1716734721 918 /etc/passwd
# 添加新用户来改变/etc/passwd文件
[root@agent ~]# useradd wlx
# 再查看最新数据,这时候这个Web页面上最新数据应该发生改变
[root@agent ~]# cksum /etc/passwd
394735352 955 /etc/passwd
数据发生改变后,系统会发出两声警报:
2.自动生成触发器
- 不熟悉自己写表达式的时候,可以自定义生成触发器
-
接下来就是改变当前系统用户登录数,当设置为5个连接数时,系统报出现问题,当关闭两个连接设置为2个连接时,恢复:
-
报警声音的更换(可以在zabbix server上找到报警声音的文件)
[root@server ~]# cd /usr/share/zabbix/audio/
[root@server audio]# ls
alarm_average.mp3 alarm_high.mp3 alarm_ok.mp3 no_sound.mp3
alarm_disaster.mp3 alarm_information.mp3 alarm_warning.mp3
第四节:自定义报警
1.自定义监控项
- 在监控机上配置自定义监控项:
# 查看当前登录用户
[root@agent ~]# who
root tty1 2020-12-05 14:03
root pts/0 2020-12-05 14:05 (192.168.242.1)
# 查看当前用户登录数
[root@agent ~]# who|wc -l
2
# 设置自定义监控项login_users,命令是who|wc -l
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=login_users,who|wc -l
# 重启zabbix监控主机
[root@agent ~]# systemctl restart zabbix-agent
- 在zabbix server机器上获取设置的监控项的值
# 下载zabbix-get.x86_64
[root@server ~]# yum install zabbix-get.x86_64 -y
# 获取监控项的值
[root@server ~]# zabbix_get -s 192.168.242.101 -k login_users
- 添加监控项,可以把 历史数据保留时长 设置的小一些
可以看到我们自定义的监控项
-
创建触发器
注意表达式部分监控项的名字要使用我们自定义
-
自定义邮件发件人(注意的是163邮箱需要开启SMTP服务,才能拿到授权码)
-
授权码写在密码部分
-
自定义邮件收件人(点击用户头像,到 用户基本资料 下的 报警媒介 下添加Email类型的报警媒介)
-
启用触发器的动作(到 配置 选项下的 动作 项中将状态修改为已启用的状态)
-
触发报警(当触发“当前系统用户的登录数”触发器的时候,会向接收邮箱发送消息。这里可以查看已经发送的报警邮件)
邮箱也会接收到报警消息
- 自定义邮件报警信息
服务器: {HOST.NAME}发生:{EVENT.NAME}故障!
{
告警主机: {HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
当触发报警后,可以在 动作日志 中查看到发送给接收邮件的报警信息
检查邮箱后发现邮箱也收到了对应的报警信息
第五节:使用grafana自定义图形
- 图形乱码
# 跳转到zabbix web界面的php下
[root@server ~]# cd /usr/share/zabbix/
# 再跳转字体资源路径下
[root@server zabbix]# cd assets/fonts/
# 可以查看到zabbix web界面使用的字体,这个字体默认是个软链接
[root@server fonts]# ls
graphfont.ttf
[root@server fonts]# pwd
/usr/share/zabbix/assets/fonts
将字体上传到zabbix server服务器的 /usr/share/zabbix/assets/fonts 目录下,在zabbix server服务器执行替换操作
[root@server fonts]# mv simhei.ttf graphfont.ttf
[root@server fonts]# ls
graphfont.ttf
乱码修改成功
- grafana的安装
# 下载grafana
[root@server ~]# wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.0.0-2.x86_64.rpm
# 本地安装grafana
[root@server ~]# yum localinstall grafana-7.0.0-2.x86_64.rpm
# 开机自启
[root@server ~]# systemctl enable grafana-server
# 启动grafana
[root@server ~]# systemctl start grafana-server
- grafana插件的安装
# 查看所有的远程插件
[root@server ~]# grafana-cli plugins list-remote
# 过滤找到grafana的zabbix插件
[root@server ~]# grafana-cli plugins list-remote|grep zabbix
id: alexanderzobnin-zabbix-app version: 3.12.0
# 根据id来安装插件,如果因为下载不了安装不上应该是网络的原因
[root@server ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
# 重启grafana
[root@server ~]# systemctl restart grafana-server
- grafana的登录
grafana默认运行在3000端口,使用默认的用户名和密码都是:admin
- 可调节页面颜色