Zabbix基于LNMP架构部署与管理
Zabbix基于LNMP架构部署与管理
zabbix监控基于lnmp server架构,共用到两台主机
| name | ip |
|---|---|
| zabbix-server | 10.1.8.30 |
| zabbix-agent | 10.1.8.31 |
LNMP部署
nginx
[root@zabbix-server ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@zabbix-server ~]# yum install nginx -y
[root@zabbix-server ~]# systemctl start nginx
[root@zabbix-server ~]# systemctl enable nginx
mariadb
[root@zabbix-server ~]# cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = https://archive.mariadb.org/mariadb-10.5.23/yum/centos7-amd64/
gpgkey=https://archive.mariadb.org/mariadb-10.5.23/yum/centos7-amd64/RPM-GPG-KEY-MariaDB
gpgcheck=0
[root@zabbix-server ~]# yum -y install mariadb-server mariadb
[root@zabbix-server ~]# systemctl enable mariadb --now#mysql初始化
[root@zabbix-server ~]# mysql_secure_installation
php
[root@zabbix-server ~]# yum -y install epel-release
[root@zabbix-server ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm[root@zabbix-server ~]# yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-ldap php72w-bcmath#用户组修改为nginx
[root@zabbix-server ~]# vim /etc/php-fpm.d/www.conf 8 user = nginx
10 group = nginx#配置首页支持index.php
[root@zabbix-server ~]# vim /etc/nginx/conf.d/default.conf9 index index.php index.html index.htm;#配置php请求传到后端php-fpm
29-35
location ~ \.php$ {root /usr/share/nginx/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
[root@zabbix-server ~]# vim /etc/php.ini 359 expose_php = Off #隐藏php版本
202 short_open_tag = On #支持php短标签368 max_execution_time = 300 #执行时间
378 max_input_time = 300 #接收数据等待时间
389 memory_limit = 128M #每个脚本占用内存
656 post_max_size = 16M #POST数据大小
799 upload_max_filesize = 2M #上传文件大小
800 always_populate_raw_post_data = -1 #需要添加可以用 $HTTP_RAW_POST_DATA 接收post raw data(原始未处理数据)
877 date.timezone = Asia/Shanghai #时区#启动服务
[root@zabbix-server ~]# systemctl enable php-fpm --now
[root@zabbix-server ~]# systemctl restart nginx
[root@zabbix-server ~]# vim /usr/share/nginx/html/info.php<?phpphpinfo();
?>#宿主机browser打开zabbix server端ip测试页
对接sql
[root@zabbix-server ~ ]# vim /usr/share/nginx/html/index.php<?php$link=mysqli_connect('127.0.0.1','zabbix','admin123');if ($link) echo "success";else echo "failed";
?>[root@zabbix-server ~]# systemctl restart nginx
#打开browser测试
Zabbix部署
zabbix-server
#解压
[root@zabbix-server ~]# tar zxvf zabbix-6.0.6.tar.gz
[root@zabbix-server ~]# cd /root/zabbix-6.0.6/database/mysql#导表[root@zabbix-server ~]# mysql -uroot -proot zabbix < schema.sql
[root@zabbix-server ~]# mysql -uroot -proot zabbix < images.sql
[root@zabbix-server ~]# mysql -uroot -proot zabbix < data.sql
[root@zabbix-server ~]# mysql -uroot -proot zabbix < double.sql
[root@zabbix-server ~]# mysql -uroot -proot zabbix < history_pk_prepare.sql#查表
[root@zabbix-server ~]# mysql -uroot -proot
>use zabbix;
>show tables;#安装环境
[root@zabbix-server ~]# yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ make#创建用户
[root@zabbix-server ~]# useradd -s /sbin/nglogin -M zabbix
[root@zabbix-server ~]# cd zabbix-6.0.6/#编译
[root@zabbix-server ~]# export CFLAGS="-std=gnu99"
[root@zabbix-server ~]# ./configure --sysconfdir=/etc/zabbix/ --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre
[root@zabbix-server ~]# make install#检查版本
[root@zabbix-server ~]# zabbix_server --version#修改配置文件
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf38 LogFile=/var/log/zabbix_server.log
123 DBPassword=admin123 #创建日志授权
[root@zabbix-server ~]# touch /var/log/zabbix_server.log
[root@zabbix-server ~]# chown zabbix.zabbix /var/log/zabbix_server.log#服务unit管理
[root@zabbix-server ~]# vim /usr/lib/systemd/system/zabbix-server.service[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix[Install]
WantedBy=multi-user.target#启动zabbix
[root@zabbix-server ~]# systemctl start zabbix-server#复制前端页面到站点
[root@zabbix-server ~]# cp -r /root/zabbix-6.0.6/ui/* /usr/share/nginx/html/
[root@zabbix-server ~]# chown -R nginx:nginx /usr/share/nginx/html/#browser访问
#账号 Admin
#密码 zabbix
zabbix-agent
#更新CA
[root@zabbix-agent ~]# yum update ca-certificates -y#安装
[root@zabbix-agent ~]# rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
[root@zabbix-agent ~]# yum install zabbix-agent2 -y
[root@zabbix-agent ~]# systemctl enable zabbix-agent2 --now#修改配置文件
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agent2.conf13 PidFile=/var/run/zabbix/zabbix_agent2.pid
32 LogFile=/var/log/zabbix/zabbix_agent2.log
43 LogFileSize=0
82 Server=10.1.8.30
135 ServerActive=10.1.8.30
146 Hostname=test
283 Include=/etc/zabbix/zabbix_agent2.d/*.conf
mysql
[root@zabbix-agent ~]# yum -y install ncurses ncurses-devel bison cmake
[root@zabbix-agent ~]# useradd -s /sbin/nologin mysql#解压编译
[root@zabbix-agent ~]# tar zxvf mysql-5.7.17.tar.gz -C /opt/
[root@zabbix-agent ~]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/
[root@zabbix-agent ~]# cd /usr/local/
[root@zabbix-agent ~]# mv boost_1_59_0 boost
[root@zabbix-agent ~]# cd mysql-5.7.17/
[root@zabbix-agent ~]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1#若报错,需要删除cache文件重新编译#安装
[root@zabbix-agent ~]# make -j4 && make install
[root@zabbix-agent ~]# chown -R mysql.mysql /usr/local/mysql/
[root@zabbix-agent ~]# vim /etc/my.cnf[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES#配置环境变量
[root@zabbix-agent ~]# chown mysql:mysql /etc/my.cnf
[root@zabbix-agent ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@zabbix-agent ~]# echo 'export PATH' >> /etc/profile
[root@zabbix-agent ~]# source /etc/profile[root@zabbix-agent ~]# cd /usr/local/mysql/
[root@zabbix-agent ~]# bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data#配置服务
[root@zabbix-agent ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@zabbix-agent ~]# systemctl daemon-reload
[root@zabbix-agent ~]# systemctl start mysqld
[root@zabbix-agent ~]# netstat -anpt | grep 3306
[root@zabbix-agent ~]# systemctl enable mysqld
[root@zabbix-agent ~]# mysqladmin -u root -p password "root"#配置远程权限
[root@zabbix-agent ~]# mysql -u root -p
[root@zabbix-agent ~]# grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
Zabbix管理
http://10.1.8.30

监控主机


- MySQL by Zabbix agent 2 rename
- MySQL by Zabbix agent 2 test
- 全克隆

{$MYSQL.DSN} #ip
{$MYSQL.PASSWORD} #sql密码
{$MYSQL.USER} #root#更新

- 创建主机
- 主机群组 Linux servers
- 创建主机

邮件服务
zabbix-server
[root@zabbix-server ~]# yum install mailx -y
[root@zabbix-server ~]# vim /etc/mail.rc
#配置邮箱服务
set from= #邮箱地址
set smtp=smtp.163.com
set smtp-auth-user= #邮箱地址
set smtp-auth-password= #授权码
set smtp-auth=login#发送测试邮件
[root@zabbix-server ~]# echo "hello world" | mail -s "zb-test" 邮箱地址

#创建脚本目录 重启服务
[root@zabbix-server local]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@zabbix-server local]# mkdir -p /usr/lib/zabbix/alertscripts
[root@zabbix-server local]# chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts
[root@zabbix-server local]# systemctl restart zabbix-server.service
编写邮件发送脚本
[root@zabbix-server local]# vim mailx.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
权限设置
[root@zabbix-server alertscripts]# touch /tmp/mailx.log
[root@zabbix-server alertscripts]# chown -R zabbix.zabbix /tmp/mailx.log
[root@zabbix-server alertscripts]# chmod +x
/usr/lib/zabbix/alertscripts/mailx.sh
测试
[root@zabbix-server alertscripts]# ./mailx.sh 邮件地址 "say hi" "This is test"

告警服务

- 创建媒体类型

- 管理
- 用户
- Admin

- 添加

- 收件人为邮件地址
- 添加
- 更新

- 删除默认动作
- 右上角创建动作


操作

恢复操作

- update
- 更新

- 动作已更新
测试
[root@zabbix-agent ~]# systemctl stop mysqld


