部署zabbix
一、zabbix介绍
zabbix官网:https://www.zabbix.com/
zabbix下载页面:https://www.zabbix.com/download
zabbix rpm包下载页面:http://repo.zabbix.com/zabbix/
一、 zabbix简介
- zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
- zabbix能监视各种网络参数,保证服务器系统的安全运行;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。 zabbix
server可以通过SNMP,zabbix
agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free
BSD,Open BSD,OS X等平台上。
1.2 zabbix的组件
zabbix由以下几个组件部分构成:
Zabbix Server
:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行。
Database Storage
:专用于存储所有配置信息,以及由zabbix收集的数据。
Web interface
:zabbix的GUI接口,通常与Server运行在同一台主机上。
Proxy
:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端(实现分布式监控专用组件非必要组件,被监控服务器过多或者跨机房可以使用此组件。)
Agent
:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端。 注:zabbix node也是 zabbix server的一种
。不过现在已经基本弃用了
二、zabbix的安装
搭建zabbix监控服务器
**1. 部署运行环境LNMP
- 安装源码zabbix软件
- 创建存储数据的 库、表、连接数据库服务用户
- 初始化准备
- 初始化配置(登录web管理页面)
- 登录web管理页面
- 启动zabbix监控服务**
1、部署lnmp
1.0安装nginx及依赖包
nginx源码包获取网址:www.nginx.org
nginx源码包可以提前从官网上拉取,也可以通过wget这个命令来直接拉取;
#部署nginx依赖环境
yum -y install gcc gcc-c++ pcre-devel openssl-devel zlib-devel
注:openssl-devel 功能:支持数据加密传输 zlib-devel:数据压缩
#获取nginx源码包
yum -y install wget ;//拉取文件的一个软件
wget http://www.nginx.org/download/nginx-1.18.0.tar.gz
#解压nginx源码包
tar zxf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure (默认安装位置为/usr/local)**
./configure --with-http_ssl_module && make && make install
编译时候添加with-http_ssl_module对应openssl-devel 功能,需要支持数据加密传输则添加上
1.1安装php
yum -y install php php-mysql php-fpm
php-mysql: php用来连接mysql服务的软件
php:解释php代码
php-fpm:用来管理php程序
1.2安装数据库mariadb
yum -y install mariadb mariadb-devel mariadb-server
验证安装包:
rpm -q php php-mysql php-fpm mariadb mariadb-server mariadb-devel
1.3修改nginx配置
sed -i '65s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '66s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '67s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '68s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '70s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '71s/#/ /' /usr/local/nginx/conf/nginx.conf
sed -i '70s/fastcgi_params/fastcgi.conf/' /usr/local/nginx/conf/nginx.conf
也可以手动进入路径来修改,这边使用的sed命令替换功能,取消注释, 将#替换为空,源码编译的nginx 主配置文件行号不会改变,直接使用上述sed命令即可
检查下nginx
[root@zabbix conf]# /usr/local/nginx/sbin/nginx -t
启动nginx
/usr/local/nginx/sbin/nginx
[root@zabbix conf]# netstat -lnpt | grep nginx
设置nginx为系统服务,并开机启动
vim /lib/systemd/system/nginx.service
添加如下内容:
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
配置完文件后 可以将nignx设置为开机自动启动了
systemctl enable nginx
1.4修改mysql配置
systemctl start mariadb //启动数据库
systemctl enable mariadb //开机自启
systemctl start php-fpm //启动php
systemctl enable php-fpm //开机自启
[root@zabbix ~]# netstat -lnpt | netstat -lnpt | grep php
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3036/php-fpm: maste
[root@zabbix ~]# netstat -lnpt | netstat -lnpt | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2917/mysqld
1.5验证php环境
[root@zabbix ~]# vim /usr/local/nginx/html/test.php
<?php
$i=helloworld;
echo $i
?>
返回helloworld则成功
2、安装源码zabbix软件
1.0安装依赖包
1.1编译zabbix
安装依赖包
yum -y install net-snmp-devel
yum -y install curl-devel
yum -y install libevent-devel
yum install libxml2 libxml2-devel -y
[root@zabbix ~]# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.4.7/zabbix-4.4.7.tar.gz
//安装zabbix4.4.7稳定版
[root@zabbix ~]# tar zxf zabbix-4.4.7.tar.gz
[root@zabbix ~]# cd zabbix-4.4.7/
[root@zabbix zabbix-4.4.7]# ./configure --prefix=/usr/local/zabbix-4.4.7 --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 && make && make install
//如果要配置 Zabbix server 和 Zabbix proxy 的源代码,可以运行以上内容
3、创建存储数据的 库、表、连接数据库服务用户
1.0创建数据库用户授权登录
[root@zabbix zabbix-4.4.7]# mysql -u root -p //yum安装mariadb默认没有密码 直接回车登录
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.68-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)]>
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
#create database创建数据库为zabbix
#character set utf8 可以往库里存中文
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
#grant all on zabbix授权用户为zabbix
#zabbix@'localhost'客户端为服务器本机 //zabbix将数据存放在本机数据库里密码也为zabbix
1.1导入源码sql文件到mysql
zabbix源码目录下导入sql文件,可以恢复存储数据的表
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
#建议一行一行执行,导入恢复数据时间较长
1.2导入完成恢复数据后,验证下
[root@zabbix mysql]# mysql -uzabbix -pzabbix
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| zabbix |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
| application_template |
| applications |
| auditlog |
| auditlog_details |
| autoreg_host |
| conditions |
| config |
| config_autoreg_tls |
| corr_condition |
| corr_condition_group |
| corr_condition_tag |
| corr_condition_tagpair |
| corr_condition_tagvalue |
| corr_operation |
| correlation |
| dashboard |
| dashboard_user |
| dashboard_usrgrp |
| dbversion |
| dchecks |
| dhosts |
| drules |
-----------------------------
显示新增加了149行则导入成功
4、初始化准备部署zabbix服务端
1.0拷贝源码目录下php所有文件
[root@zabbix ~]# cd zabbix-4.4.7/
[root@zabbix zabbix-4.4.7]# ls
aclocal.m4 conf configure.ac INSTALL man src
AUTHORS config.guess COPYING install-sh misc
bin config.log database m4 missing
build config.status depcomp Makefile NEWS
ChangeLog config.sub frontends Makefile.am README
compile configure include Makefile.in sass
#找到frontends 文件夹,里面为zabbix的前端php代码
将/root/zabbix-4.4.7/frontends/php内所有文件拷贝到/usr/local/nginx/html下
[root@zabbix ]# rm -rf /usr/local/nginx/html/*
[root@zabbix php]# cp -a * /usr/local/nginx/html/
验证:
[root@zabbix php]# ls /usr/local/nginx/html/
50x.html hosts.php
actionconf.php httpconf.php
adm.gui.php httpdetails.php
adm.housekeeper.php image.php
adm.iconmapping.php imgstore.php
adm.images.php index.html
adm.macros.php index_http.php
adm.other.php index.php
adm.regexps.php items.php
adm.triggerdisplayoptions.php jsLoader.php
adm.triggerseverities.php jsrpc.php
adm.valuemapping.php latest.php
adm.workingtime.php maintenance.php
1.1nginx配置文件添加php参数
vim /usr/local/nginx/conf/nginx.conf
在http模块内容添加
http {
}
添加内容如下:
fastcgi_buffers 8 16k; #缓存php生成的页面类容,8个16k
fastcgi_buffer_size 32k; #缓存php生成的头部信息
fastcgi_connect_timeout 300; #连接php超时时间
fastcgi_send_timeout 300; #发送请求超时时间
fastcgi_read_timeout 300; #读取请求超时时间
:wq
[root@zabbix ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
1.2测试访问启动zabbix server界面
输入本机ip/index.php:
http://119.91.83.220/index.php
点击下一步时候发现报错。file字样则是有问题
1.3解决依赖报错
安装依赖软件:
yum -y install php-gd php-xml php-ldap
yum -y install php-bcmath php-mbstring
修改php配置文件
[root@zabbix ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai #设置时区
max_execution_time = 300 #最大执行时间300s
post_max_size = 32M #post数据最大容量
max_input_time = 300 #394行--服务器接收数据时间
重启php
[root@zabbix ~]# systemctl restart php-fpm.service
现在无报错,可下一步
下一步发现报错(Cannot create the configuration file. Unable to create the configuration file.)没有权限写入
解决方法:
[root@zabbix php]# chmod -R 777 /usr/local/nginx/html/
默认用户名为:Admin
密码:zabbix
#Remember me for 30 days(记住密码30天,可选操作,为了安全可以不记住)
1.3.10解决初始化密码登陆报错
ps:如果遇到第一次登陆zabbix,用户名密码没错的情况显示密码或者用户错误,则可通过修改后台数据库密码登陆
1、登陆zabbix的服务器,查看zabbix的登陆密码:
[root ~]# mysql -uroot -p -e "select * from zabbix.users\G"
Enter password:
*************************** 1. row ***************************
userid: 1
alias: Admin
name: Zabbix
surname: Administrator
passwd: d41d8cd98f00b204e9800998ecf8427e
//上面的passwd就是zabbix的md5加密后的字符串
url:
autologin: 1
autologout: 0
lang: en_GB
refresh: 30
type: 3
theme: default
attempt_failed: 0
attempt_ip: 192.168.1.10
attempt_clock: 1596006287
rows_per_page: 50
*************************** ***************************
2、重新开个终端,生成一个MD5加密的密码,这里密码设置的是redhat
[root@zabbix ~]# echo -n redhat|openssl md5
#-n就表示不输入回车符,不加-n,否则就不是这个结果了。
(stdin)= e2798af12a7a0f4f70b4d69efbc25f4d
3、登陆数据库进入zabbix库,修改密码
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> update users set passwd='e2798af12a7a0f4f70b4d69efbc25f4d' where userid = '1';
//passwd=的md5代码需和上面生成的md5代码相同
#或者直接使用update users set passwd=md5("redhat") where userid='1';
Query OK, 1 row affected (0.01 sec)
mysql> flush privileges;
//刷新下配置
Query OK, 0 rows affected (0.01 sec)
4、此时zabbix账号密码为:
账号:Admin
密码:redhat
1.4修改默认密码,修改语言
为了安全可以在控制台修改新的密码,修改为中文
1.5报错zabbix server服务未运行
报错:Zabbix server is not running: the information displayed may not be current.
解决如下:
1、修改zabbix server服务配置文件
2、创建进程所有者用户
3、启动服务
4、查看状态
[root@zabbix ~]# vim /usr/local/zabbix-4.4.7/etc/zabbix_server.conf
#进入配置文件添加修改以下内容
DBHost=localhost //数据主机
DBName=zabbix //设置数据库名称
DBUser=zabbix //设置数据库用户
DBPassword=zabbix //设置数据库密码
LogFile=/tmp/zabbix_server.log //设置日志位置
启动服务
创建用户
[root@zabbix ~]# useradd zabbix
[root@zabbix ~]# cd /usr/local/zabbix-4.4.7/sbin/
[root@zabbix sbin]# ls
zabbix_agentd zabbix_server
[root@zabbix sbin]# /usr/local/zabbix-4.4.7/sbin/zabbix_server
#启动服务
验证,查看状态
[root@zabbix sbin]# netstat -lnpt | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 11257/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 11257/zabbix_server
关闭zabbix
[root@zabbix sbin]# killall -9 zabbix_server
现在已经解决报错
1.6监控zabbix服务器自身
[root@zabbix ~]# vim /usr/local/zabbix-4.4.7/etc/zabbix_agentd.conf
#进入zabbix_agent主配置文件中,编译时候添加了agent模块 所以是有生成的
EnableRemoteCommands=1 允许远程命令
LogRemoteCommands=1 记录远程命令
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server
#修改并确认如上内容:
[root@zabbix ~]# /usr/local/zabbix-4.4.7/sbin/zabbix_agentd
#启动agent
测试端口
[root@zabbix ~]# netstat -lnpt |grep zabbix_agentd
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 14784/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 14784/zabbix_agentd
1.7解决Zabbix 图形中文乱码
字体文件目录 /root/zabbix-4.4.7/frontends/php/assets/fonts
下载字体,需要一些时间 耐心等待
[root@zabbix ~]#wget https://raw.githubusercontent.com/chenqing/ng-mini/master/font/msyh.ttf
下载完成后。进入**/usr/local/nginx/html/assets/fonts** 将字体包msyh.ttf拖进去
mv /root/msyh.ttf /usr/local/nginx/html/assets/fonts
修改php配置文件
vim /usr/local/nginx/html/include/defines.inc.php
:%s/DejaVuSans/simfang/g
配置完成后,重启nginx
[root@zabbix fonts]# systemctl reload nginx
验证: