Zabbix4.0安装部署

一、安装nginx

yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar xf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx
make && make install
echo "export PATH=$PATH:/usr/local/nginx/sbin/" >>/etc/profile
source /etc/profile
使用systemctl管理Nginx,
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
[Install]
WantedBy=multi-user.target
启动
systemctl start nginx
停止
systemctl stop nginx

二、安装PHP

Php官网
http://php.net/
php编译安装脚本
yum -y install epel-release
yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel

解决办法
1、安装第三方yum源
wget http://www.atomicorp.com/installers/atomic
sh ./atomic
2、使用yum命令安装
yum install php-mcrypt libmcrypt libmcrypt-devel
cd /usr/local/src/
wget 'http://hk1.php.net/distributions/php-5.6.40.tar.gz'
tar -zxf php-5.6.40.tar.gz
cd php-5.6.40
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-ctype --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fpm
make && make install
cp php.ini-production /usr/local/php/etc/php.ini

php编译安装说明
--prefix指定php的安装目录
--with-config-file-path指定php的配置文件位置
--with-mysql、--with-mysqli让php可以操作mysql
--enable-fpm主要是nginx要来调用php语言得使用php-fpm

启动php-fpm
环境变量:export PATH=$PATH:/usr/local/php/sbin/:/usr/local/php/bin/
检查配置文件:php-fpm -t
使用默认配置文件:mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
查看php-fpm的listen配置

验证php-fpm的启动
进程
端口
日志

使用systemctl管理php-fpm,/usr/lib/systemd/system/php-fpm.service
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
[Install]
WantedBy=multi-user.target

nginx的默认配置无法处理php程序/usr/local/nginx/html/test.php

nginx+php-fpm结合的配置
location / {
root html;
index index.html index.htm index.php;
}
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
注意:如果访问php显示file not found,上面标黄的地方需改为nginx安装目录,如/web/nginx/html

三、安装MySQL

主流的sql数据库
官网:https://www.mysql.com/

Mysql编译安装脚本
yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel
useradd -s /sbin/nologin mysql
cd /usr/local/src
wget 'https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.39.tar.gz'
tar -zxvf mysql-5.6.39.tar.gz
cd mysql-5.6.39
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
make && make install
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld

编译选项说明
CMACK_INSTALL_PREFIX指定安装的目录
MYSQL_DATADIR指定Mysql的数据目录

mysql环境变量配置
export PATH=$PATH:/usr/local/mysql/bin/

mysql的启动步骤
更新配置
数据库初始化
启动数据库

更新mysql配置/etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
datadir=/data/mysql
user=mysql
skip-name-resolve
long_query_time=2
slow_query_log_file=/data/mysql/mysql-slow.log
expire_logs_days=2
innodb-file-per-table=1
innodb_flush_log_at_trx_commit = 2
log_warnings = 1
max_allowed_packet = 512M
connect_timeout = 60
net_read_timeout = 120

[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid

mysql数据库初始化
mkdir -pv /data/mysql
chown -R mysql:mysql /usr/local/mysql /data/mysql/
yum install -y perl-Module-Install
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --datadir=/data/mysql/

使用systemctl管理mysqld,/usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
[Install]
WantedBy=multi-user.target

启动mysql服务器
systemctl start mysqld
mysql的安全方式
mysql能限制ip访问、访问需要用户名密码、mysql权限还能再细分
默认让127.0.0.1访问,用户名root,不需要密码
mysql -uroot -h 127.0.0.1 -A
mysql加密码
mysqladmin -h 127.0.0.1 -u root password 'zabbixpwd'
mysql -h 127.0.0.1 -uroot -pzabbixpwd -A
mysql授权某ip登录
GRANT ALL PRIVILEGES ON . TO 'root'@'192.168.237.%' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTION;
flush privileges;
网络登录mysql
mysql -h 192.168.237.49 -uroot -pzabbixpwd -A

四、安装zabbix

zabbix server需要把监控数据入sql数据库,所以得Mysql环境
zabbix的web是基于php开发的,所以得LNMP环境
部署zabbix server和zabbix web

zabbix的官网
https://www.zabbix.com/

Zabbix Server编译安装
yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel
没有可用的libevent安装包解决:
1.下载安装包:官网 http://libevent.org/
libevent-2.1.8-stable.tar.gz
2.解压
tar zxvf libevent-2.1.8-stable.tar.gz
3.进入目录
cd libevent-2.1.8-stable
4.设置安装路径
./configure –prefix=/usr
5.编译安装
make && make install
6.测试libevent是否安装成功:
ls -al /usr/lib | grep libevent

useradd -s /sbin/nologin zabbix
cd /usr/local/src/
wget 'https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX Latest Stable/4.0.3/zabbix-4.0.3.tar.gz'
tar -zxvf zabbix-4.0.3.tar.gz
cd zabbix-4.0.3
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
make && make install

选项说明
--prefix指定安装目录
--enable-server安装zabbix server
--enable-agent安装zabbix agent
--with-mysql用mysql来存储

zabbix server的安装验证
环境变量设置:export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/
查看版本:zabbix_server --version
zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
find / -name libmysqlclient.so.20
ln -s /web/mysql/lib/libmysqlclient.so.20 /usr/local/lib/libmysqlclient.so.20
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

zabbix server的启动
需要到mysql里做数据库初始化
配置zabbix server,最主要是配置连接mysql的用户名和密码
启动zabbix server

Mysql数据库初始化mysql -h 127.0.0.1 -uroot -pzabbixpwd -A
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbixpwd';
flush privileges;
set names utf8;
use zabbix;
source /usr/local/src/zabbix-4.0.3/database/mysql/schema.sql;
source /usr/local/src/zabbix-4.0.3/database/mysql/data.sql;
source /usr/local/src/zabbix-4.0.3/database/mysql/images.sql;

zabbix server的配置/usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/zabbix_server.log
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpwd
DBPort=3306
Timeout=30
AlertScriptsPath=/usr/local/zabbix/alertscripts
ExternalScripts=/usr/local/zabbix/externalscripts
LogSlowQueries=3000

启动zabbix server
chown zabbix:zabbix -R /usr/local/zabbix/
zabbix_server

验证
进程
端口
日志

Zabbix Web的安装
mkdir /usr/local/nginx/html/zabbix
cp -a /usr/local/src/zabbix-4.0.3/frontends/php/* /usr/local/nginx/html/zabbix/

访问zabbix web,需要做一些初始化配置
http://192.168.237.49/zabbix/

zabbix web需要php做配置优化
vim /usr/local/php/etc/php.ini
post_max_size = 32M
max_execution_time = 350
max_input_time = 350
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1
systemctl restart php-fpm

登录zabbix
默认用户名和密码:Admin zabbix
禁用Zabbix server主机的监控
禁用guest用户
更改Admin的密码,改成自己的密码

五、zabbix网页汉化版

zabbix默认的字段问题
中文会有部分乱码的情况
监测 -> 图形里的监控图形会有乱码的产生
解决zabbix部分乱码
下载微软雅黑字体https://raw.githubusercontent.com/chenqing/ng-mini/master/font/msyh.ttf或者C:\Windows\Fonts
zabbix字体的放置目录:/usr/local/nginx/html/zabbix/fonts/
上传微软雅黑字体
zabbix网页的字体配置修改/usr/local/nginx/html/zabbix/include/defines.inc.php
默认是DejaVuSans字体,改成msyh微软雅黑字体
验证中文是否正常

六、zabbix添加主机监控

Zabbix监控的添加顺序
添加主机组
添加主机
添加监控项目
根据监控项目可添加图形或者触发器

监控需求
监控主机是否存活
监控主机的端口是否能通

添加主机实战
创建主机组
主机名
主机所属的主机组
主机IP -> 最重要的是IP,可以是网络设备的ip、windows的ip、linux的ip

克隆添加主机、自动注册添加主机等

主机添加多种接口
agent:zabbix提供一个agent客户端,可装在Linux、Windows等
snmp:使用snmp协议去监控服务器、交换机、路由器等
jmx:方便我们去监控java进程
ipmi:监控硬件信息

七、zabbix添加简单监控项目

Zabbix监控的添加顺序
添加主机组
添加主机
添加监控项目 -> 最重要
根据监控项目可添加图形或者触发器

监控的key和值
zabbix添加监控得定义一个key
需要通过key去获取到监控的值

简单监控项目添加实战
ping检测,存活和丢包检测 yum install fping -y (yum install epel-release)
检查tcp端口 22
查看监控值

理论:多种监控方式添加
simple check,被监控的服务器无需安装客户端,如ping,端口检测之类的
zabbix agent,被动式监控服务器
zabbix agent(active),主动式监控服务器
snmp check,使用snmp协议去获取监控信息
zabbix trapper,主动式监控
External check,zabbix server上可编写监控脚本
Jmx agent,监控java进程

理论:值的类型
无符号整型,值是正数,无负数。例如监控端口是否存活,存活返回1,不存活返回0
浮点型,值可以为负数、小数。例如监控cpu的idle值
character,字符串,最大255个字节
Text,字符串,无限制

application应用集
多个类型相同的监控项目可以定义一个应用集
icmp存活,icmp丢包我们都可以把它归为icmp应用集

监控项目不支持说明
遇到不支持的情况
不支持默认需要等待10分钟才会再去检测

添加监控
可以使用变量的方式
可以使用克隆快速添加监控项目

八、zabbix用户管理

Zabbix的用户注意
默认的guest要禁用
Admin的默认密码一定要修改(zabbix)
Zabbix创建用户流程
创建用户组 dev
设置用户组权限,权限必须在用户组设置
创建用户,属于某个用户组dev_lisi
使用新建的用户登录Zabbix
新建用户的权限注意
如果要让某个用户收到某台服务器的告警,后续会讲告警
则这个用户对这台服务器要有可读的权限

posted @ 2021-01-28 11:00  霸都运维  阅读(292)  评论(0编辑  收藏  举报