基於 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 等平臺上。
必要環境
這裏用 CentOS-7
數據庫,這裏使用 MySQL
webserver,這裏使用 nginx
時間
安裝
rpm -ivh zip* unzip* htop* ntp* vim*
時間
Time
# 查看當前系統時間
date
# 查看當前時區
timedatectl status
# 修改時區(立即生效)
timedatectl set-timezone Asia/Shanghai
# 查看硬件時間
hwclock --show
# 同步系統時間和硬件時間(系統時間爲標準,重啓init6/reboot生效)
hwclock --hctosys
reboot
# 本地時間寫入硬件時間(立即生效)
timedatectl set-local-rtc 1
安裝、配置 ntp
# 安裝 ntp 服務
yum install ntp -y
# 啓動 ntp 服務
systemctl start ntpd
# 配置開機啓動 ntp
systemctl enable ntpd
# 查看狀態
systemctl status ntpd
轉移安裝包至軟件倉庫
find /var/cache/yum/ -type f -name "*.rpm" | xargs cp -t /var/Repository/Repository_rpm
安裝 nginx
# 加入 nginx 源
yum install epel-release -y
# 安裝 nginx
yum install nginx -y
# 配置 nginx 開機啓動
systemctl enable nginx
# 啓動 nginx 服務
systemctl start nginx
# 查看 nginx 服務是否啓動成功
ps -ef | grep nginx
安裝 MySQL
# 安裝 yum repo 文件並更新 yum 緩存
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
# 配置禁用 mysql5.7 的倉庫,啓用 mysql8.0 的倉庫
yum install yum-utils -y
yum-config-manager --disable mysql57-community
yum-config-manager --enable mysql80-community
# 下載 MySQL-8 源
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
# 檢查是否正確啓用了倉庫
yum repolist enabled | grep mysql
# 安裝
yum install mysql-community-server
# 啓動 MySQL 服務
systemctl start mysqld
# 配置開機啓動
systemctl enable mysqld
# 查看 MySQL 密碼
grep 'temporary password' /var/log/mysqld.log
# 輸入密碼
mysql -uroot -p
# 修改密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'UUUUXXXX';
exit
# 啓動 MySQL 服務
systemctl restart mysqld
# 查看
show databases;
# 創建數據庫
create database mydatabase;
# 刪除數據庫
drop database mydatabase;
# 打開、使用數據庫
use mydatabase;
# 查看數據庫表結構
desc student;
# 查詢表中的記錄
select id,name,sex,degree from student;
# 創建初始數據庫
mysql -uroot -p
# 創建數據庫
create database zabbix character set utf8 collate utf8_bin;
# 給來自 loclhost 的用戶 zabbix 分配可對數據庫 zabbix 所有表進行所有操作的權限,並且設定密碼爲 password
# MySQl-5.7
grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
# MySQl-8
create user 'zabbix'@'localhost' identified by 'password';
grant all privileges on zabbix.* to 'zabbix'@'localhost';
# 刷新
flush privileges;
quit;
# 收回某種權限的寫法是:
revoke select on *.* from 'zabbix'@’localhost’;
配置防火牆
# 查看防火牆【服務】狀態
systemctl status firewalld
# 查看防火牆【運行】狀態
firewall-cmd --state
# 開啓
service firewalld start
# 重啓
service firewalld restart
# 臨時關閉
service firewalld stop
# 永久關閉
systemctl disable firewalld.service
# 查詢端口是否開放
firewall-cmd --query-port=8080/tcp
# 開放80端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8080-8085/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
# 查看防火牆的開放的端口
firewall-cmd --permanent --list-ports
# 重啓防火牆(修改配置後要重啓防火牆)
firewall-cmd --reload
配置 SELinux
# 臨時關閉 SELinux
setenforce 0
# 臨時打開 SELinux
setenforce 1
# 查看 SELinux 狀態
getenforce
# 開機關閉 SELinux
# 編輯 /etc/selinux/config 文件,將 SELinux 的值設置爲 disabled。
vi /etc/selinux/config
SELINUX=disabled
安裝 Zabbix 源
清華大學源:https://mirror.tuna.tsinghua.edu.cn/zabbix/
rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
安裝 Zabbix server,Web 前端,agent
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent zabbix-get zabbix-web zabbix-web-mysql zabbix-sender
========================================================================================================================================
Package 架構 版本 源 大小
========================================================================================================================================
正在安裝:
zabbix-agent x86_64 4.4.8-1.el7 zabbix 433 k
zabbix-nginx-conf noarch 4.4.8-1.el7 zabbix 230 k
zabbix-server-mysql x86_64 4.4.8-1.el7 zabbix 2.5 M
zabbix-web-mysql noarch 4.4.8-1.el7 zabbix 11 k
爲依賴而安裝:
OpenIPMI x86_64 2.0.27-1.el7 base 243 k
OpenIPMI-libs x86_64 2.0.27-1.el7 base 523 k
OpenIPMI-modalias x86_64 2.0.27-1.el7 base 16 k
apr x86_64 1.4.8-5.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
fping x86_64 3.10-4.el7 epel 46 k
httpd x86_64 2.4.6-93.el7.centos base 2.7 M
httpd-tools x86_64 2.4.6-93.el7.centos base 92 k
libevent x86_64 2.0.21-4.el7 base 214 k
libzip x86_64 0.10.1-8.el7 base 48 k
mailcap noarch 2.1.41-2.el7 base 31 k
net-snmp-libs x86_64 1:5.7.2-48.el7_8 updates 751 k
php x86_64 5.4.16-48.el7 base 1.4 M
php-bcmath x86_64 5.4.16-48.el7 base 58 k
php-cli x86_64 5.4.16-48.el7 base 2.7 M
php-common x86_64 5.4.16-48.el7 base 565 k
php-fpm x86_64 5.4.16-48.el7 base 1.4 M
php-gd x86_64 5.4.16-48.el7 base 128 k
php-ldap x86_64 5.4.16-48.el7 base 53 k
php-mbstring x86_64 5.4.16-48.el7 base 506 k
php-mysql x86_64 5.4.16-48.el7 base 102 k
php-pdo x86_64 5.4.16-48.el7 base 99 k
php-xml x86_64 5.4.16-48.el7 base 126 k
t1lib x86_64 5.1.2-14.el7 base 166 k
unixODBC x86_64 2.3.1-14.el7 base 413 k
zabbix-web noarch 4.4.8-1.el7 zabbix 2.9 M
配置數據庫
# 導入初始架構和數據,系統將提示您輸入新創建的密碼
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p zabbix
配置
Zabbix 後端
# 爲 Zabbix server 配置數據庫
vim /etc/zabbix/zabbix_server.conf
DBPassword=password
# 爲 Zabbix 前端配置 PHP
# 1
vim /etc/nginx/conf.d/zabbix.conf
# listen 80;
# server_name example.com;
# 2
vim /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
# 3
vim /etc/php.ini
878
date.timezone = Asia/Shanghai
啓動 Zabbix server 和 agent 進程
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm
journalctl -xe
#
# 錯誤
#
Cannot connect to the database.
Error connecting to database: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
#
#
#
# 修改加密規則
ALTER USER zabbix@localhost IDENTIFIED WITH mysql_native_password BY 'password';
# 刷新
flush privileges;
配置 Zabbix 前端
瀏覽器
賬號:Admin
密碼:zabbix