1.手动安装,2.脚本自动安装
1.手动安装
yum install -y ntpdate
timedatectl set-timezone Asia/Shanghai
systemctl restart ntpdate
systemctl enable ntpdate
cat /etc/redhat-release
yum install -y wget
rpm -Uvh http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
wget -rndp /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
systemctl stop firewalld
setenforce 0
yum -y install httpd mariadb mariadb-server php php-mysql php-bcmath php-mbstring zabbix-server-mysql zabbix-web-mysql zabbix-agent
sed -i s/index.html/index.php/g /etc/httpd/conf/httpd.conf
cat -n `find / -name "httpd.conf" | grep etc` | grep "AddType application"
sed -i "272 a\AddType application/x-httpd-php .php" /etc/httpd/conf/httpd.conf
cat -n /etc/php.ini | grep "date.timezone"
sed -i "878 a\date.timezone = Asia/Shanghai" /etc/php.ini
systemctl start mariadb
systemctl enable mariadb
mysql
set password = password('eisccn') ;
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to 'zabbix'@'localhost' identified by '123'
find / -name "create.sql.gz"
zcat /usr/share/doc/zabbix-server-mysql-4.4.10/create.sql.gz | mysql -uzabbix -p123 zabbix
cat -n /etc/zabbix/zabbix_server.conf | grep DBPassword
sed -i "$NRuser a\DBPassword=123" /etc/zabbix/zabbix_server.conf
/usr/bin/systemctl restart httpd zabbix-server zabbix-agent
/usr/bin/systemctl enable httpd zabbix-server zabbix-agent
rpm -Uvh http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
yum list
yum -y install zabbix-agent
read -p "请输入Zabbix-serve的ip地址:" server_IP
sed -i s/127.0.0.1/$server_IP/g /etc/zabbix/zabbix_agentd.conf
/bin/systemctl restart zabbix-agent.service
网页操作:
ZABBIX 顶部导航栏 ---> 配置 --- 主机群组 --- 创建主机群组 --- 定义名称:ceshi --- 点击添加
ZABBIX 顶部导航栏 ---> 配置 --- 主机 --- 创建主机 ---
主机名称:zabbix_ceshi
群组: 选择刚创建的 ceshi
agent代理程序的接口: 被监控的主机IP地址, 端口10050 保存
ZABBIX 顶部导航栏 ---> 配置 --- 主机 --- 模版 --- 选择模板 Template OS Linux by Zabbix agent --- 更新
ps aux | grep zabbix
yum install -y telnet
telnet x.x.x.x 10050
再到首页查看状态
systemctl stop firewalld
yum install fping -y
FpingLocation=/usr/sbin/fping
telnet hc1.ssh.gs 10050
ZABBIX 顶部导航栏 ---> 配置 --- 主机群组 --- 点击刚刚创建的用户组里的用户zabbix_cesshi --- 监控项 --- 创建监控项
名称:ping test
类型:简单检查
键值:icmpping[43.225.156.172,2,1000,68,3000]
主机接口:默认
信息类型:数字
更新间隔:30s
自定义时间间隔:类型:灵活 间隔:50s 期间:默认
历史数据保留时长:90d
储存时间 :365d
查看值:不变
应用集:无
保存
ZABBIX 顶部导航栏 ---> 配置 --- 主机群组 --- 点击刚刚创建的用户组里的用户zabbix_cesshi --- 监控项 --- 触发器 --- 创建触发器
名称:fping
严重性:警告
表达式:选择 ping test
保存
ZABBIX 顶部导航栏 ---> 配置 --- 主机群组 --- 点击刚刚创建的用户组里的用户zabbix_cesshi --- 图形 --- 创建图形
名称:fping
监控项 --- 添加 --- ping test
添加保存
yum install mailx -y
vi /etc/mail.rc
set bsdcompat
set sendcharsets=iso-8859-1,utf-8
set from=xitong-mail@eisc.cn
set smtp=smtp://smtp.exmail.qq.com
set smtp-auth-user=xitong-mail@eisc.cn
set smtp-auth-password=xxxxxx
set smtp-auth=login
echo "这是一封测试邮件" | mail -s "zabbix" xxx@eisc.cn
mkdir -p /data/zabbix_server/data/alertscripts
zabbix=`find / -name "zabbix_server.conf"`
cat -n $zabbix | grep "AlertScriptsPath"
sed -i "517 s/AlertScriptsPath.*/AlertScriptsPath=\/data\/zabbix_server\/data\/alertscripts/g" $zabbix
systemctl restart zabbix-server.service
vi /data/zabbix_server/data/alertscripts/mailx.sh
FILE=/tmp/mailtmp${RANDOM}.txt
touch $FILE
echo "$3" >$FILE
dos2unix -k $FILE
mailx -v -s "$2" "$1" < $FILE
rm -rf $FILE
chmod +x /data/zabbix_server/data/alertscripts/mailx.sh
chown zabbix:zabbix /data/zabbix_server/data/alertscripts/mailx.sh
sudo -u zabbix /data/zabbix_server/data/alertscripts/mailx.sh xxx@eisc.cn "zabbix alert" "/etc/passwd is changed"
ZABBIX 顶部导航栏 ---> 管理 ---> 报警媒介类型 ---> 创建媒体类型 --->
名称:agent 报警器
类型:脚本
脚本名称:mailx.sh
脚本参数(增加三个):
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
导航栏 --- 管理 --- 用户 --- 右上角创建用户 ---
别名:email
选择群组: Zabbix administrators
密码:aaaassss
保存
导航栏 --- 管理 --- 用户群组 --- 右上角创建用户群组
组名:emailgroup
用户(点击选择):email
再点击二级栏目的权限为读写
保存
导航栏 --- 管理 --- 报警媒介类型 --- 创建媒体类型 --- 类型选择脚本
名称:Email脚本
类型:脚本
脚本名称:mail.sh
ZABBIX 顶部导航栏 ---> 管理 ---> 用户 ---> Admin ---> 报警媒介 ---> 添加 --->
类型:agent 报警器
接受人: xxx@eisc.cn
启用时间默认
如果存在严重性则使用:全选
勾选已启用
点击添加
ZABBIX 顶部导航栏 ---> 配置 ---> 动作 ---> 创建动作
名称: tcping
新的触发条件: 主机 等于 test_centos
选择后,再点击已启用上面的【添加】
再点击【操作】
暂停操作以制止问题
操作【新的】
发送到用户群组:【添加】【emailgroup】 【zabbix administrator】
发送到用户: 【admin】 【email】
点击蓝色【添加】上面的【添加】
再点击【恢复操作】
操作【新的】
发送到用户群组:【添加】【emailgroup】 【zabbix administrator】
发送到用户: 【admin】 【email】
点击蓝色【添加】上面的【添加】
再点击下已启用下面的【添加】 总添加完成
ZABBIX 顶部导航栏 ---> 管理 --- 用户 --- Admin --- 报警媒介 --- 添加 : 填写收件人:xxx@eisc.cn
2.脚本安装
echo '正在检测网络是否和zabbix官方通畅......'
ping -c 2 www.zabbix.com > /dev/null
if [ $? != 0 ];then
echo "请检查网络!"
exit
else
echo "网络正常!"
fi
yum install -y ntpdate
ntpdate -u cn.pool.ntp.org
timedatectl set-timezone Asia/Shanghai
systemctl start ntpd
systemctl enable ntpd
rm -rf /var/run/yum.pid
yum -y install wget
system=`cat /etc/redhat-release | awk -F "." '{print $1}'`
if [ "$system" == 'CentOS Linux release 7' ];then
rpm -Uvh http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
systemctl stop firewalld
setenforce 0
sed -i "s/SELINUX\=.*/SELINUX=disabled/g" /etc/selinux/config
elif [ "$system" == 'CentOS release 6' ];then
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
rpm -Uvh http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
service iptables stop
setenforce 0
sed -i "s/SELINUX\=.*/SELINUX=disabled/g" /etc/selinux/config
fi
eth=`ip a| grep "BROADCAST" | awk -F ":" 'NR==1{print $2}' | sed "s/ //g"` ; echo "网卡名为:"$eth ;
ethCatalog=$(find / -name "*$eth" | grep "/etc/" | sed "s/ //g" ) ; echo "网卡路径为: " $ethCatalog
ip=$(cat $ethCatalog | grep IPADDR | awk -F "=" 'NR==1{print $2}' | sed "s/ //g") ; echo "IP地址为: " $ip
sleep 5
server(){
yum -y install httpd mariadb mariadb-server php php-mysql php-bcmath php-mbstring
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
sed -i s/index.html/index.php/g /etc/httpd/conf/httpd.conf
NRhttpd=$(cat -n /etc/httpd/conf/httpd.conf | grep "AddType application/x-gzip .gz .tgz" | awk -F" " '{print $1}' | sed "s/ //g")
echo "根据字符串查找的文本中的行号:"$NR
sed -i "/AddType application\/x-httpd-php .php/d" /etc/httpd/conf/httpd.conf
sed -i "$NRhttpd a\AddType application/x-httpd-php .php" /etc/httpd/conf/httpd.conf
NRdate=`cat -n /etc/php.ini | grep ";date.timezone =" | awk -F" " '{print $1}' | sed "s/ //g"` ; echo $NRdate
sed -i "/Asia\/Shanghai/d" /etc/php.ini
sed -i "$NRdate a\date.timezone = Asia/Shanghai" /etc/php.ini
/usr/bin/systemctl start mariadb
/usr/bin/systemctl enable mariadb
mysql -e "set password = password('WWWeisccn111@#')"
mysql -uroot -pWWWeisccn111@# -e "create database zabbix character set utf8 collate utf8_bin;"
mysql -uroot -pWWWeisccn111@# -e "grant all on zabbix.* to 'zabbix'@'localhost' identified by '123'"
createmysql=$(find / -name "create.sql.gz") ;
echo "$createmysql
数据库文件导入中,请耐心等待!"
/usr/bin/zcat $createmysql | mysql -uzabbix -p123 zabbix
NRuser=`cat -n /etc/zabbix/zabbix_server.conf | grep "DBUser=zabbix" |awk '{print $1}' | sed "s/ //g"` ; echo $NRuser
sed -i "/DBPassword=123/d" /etc/zabbix/zabbix_server.conf
sed -i "$NRuser a\DBPassword=123" /etc/zabbix/zabbix_server.conf
/usr/bin/systemctl restart httpd zabbix-server zabbix-agent
/usr/bin/systemctl enable httpd zabbix-server zabbix-agent
echo "请用浏览器访问:http://$ip/zabbix
安装配置:
数据库名:zabbix
数据库用户:zabbix
密码:123
登陆账户/密码:Admin/zabbix"
}
agent(){
yum -y install zabbix-agent
read -p "请输入Zabbix-serve的ip地址:" server_IP
sed -i s/127.0.0.1/$server_IP/g /etc/zabbix/zabbix_agentd.conf
/bin/systemctl restart zabbix-agent.service
}
MYDATE=`date +%d/%m/%y`
THIS_HOST=`hostname -s`
USER=`whoami`
while :
do
tput clear
echo "
# cat 与echo 相似,这里打印显示一段话;由 aMAYDAY 开始,也由它来结束;
---------------------------------------------------------
User:$USER Host:$THIS_HOST Date:$MYDATE
# cat 这里直接打印字符串和变量的值
---------------------------------------------------------
1:安装 zabbix-server和zabbix-agent
2:只安装 zabbix-agent
H:帮助
Q:退出
---------------------------------------------------------
"
echo -e -n "\tYour Choice [1,2,Q]>"
read CHOICE
case $CHOICE in
1) server
;;
2) agent
;;
3) who
;;
H|h)
echo "
Zabbix-server是服务端,Zabbix-agent是客户端!
"
;;
Q|q) exit 0
;;
*) echo -e "\t\007 输入有有误!"
;;
esac
echo -e -n "\t按任意键返回菜单!"
read DUMMY
done