春风十里不如你 —— Taozi - linux
https://xiongan.host/index.php/tag/linux/
-
【Hive】Hadoop下的部署(未上接)
https://xiongan.host/index.php/archives/194/
2023-03-27T23:41:04+08:00
Hive的部署MySQL安装安装首先上传mysql数据库的rpm压缩包到主机/opt/software//解压缩包到当前目录中
[root@master-tz software]# unzip mysql-5.7.18.zip
//进入到rpm软件目录中,首先检查mariadb,如果有就要卸载//安装数据库
[root@master-tz mysql-5.7.18]# rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
[root@master-tz mysql-5.7.18]# rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
[root@master-tz mysql-5.7.18]# rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
//安装下面的rpm需要首先安装perl软件
[root@master-tz mysql-5.7.18]# yum install -y net-tools perl
[root@master-tz mysql-5.7.18]# rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm配置修改配置文件/etc/my.cnfvim /etc/my.cnf
//最后添加五行
default-storage-engine=innodb
innodb_file_per_table
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server=utf8
//最后保存退出启动[root@master-tz mysql-5.7.18]# systemctl start mysqld
[root@master-tz mysql-5.7.18]# systemctl status mysqld查看MySQL初始密码[root@master-tz mysql-5.7.18]# cat /var/log/mysqld.log | grep password
2023-03-27T08:52:43.074230Z 1 [Note] A temporary password is generated for root@localhost: KbVXiHlul3:> //查看初始密码,下方需要填写
[root@master-tz mysql-5.7.18]# mysql_secure_installation //重新设定密码,并把密码设置为Password123$
//注:允许远程连接设定为n,表示允许远程连接,其它设定为y除了以下是n其他都是y登录数据库客户端[root@master-tz mysql-5.7.18]# mysql -uroot -pPassword123$新建hive用户与元数据mysql>create database hive_db;
mysql>create user hive identified by 'Password123$';
mysql>grant all privileges on *.* to hive@'%' identified by 'Password123$' with grant
option ;
mysql>grant all privileges on *.* to 'root'@'%'identified by 'Password123$' with grant
option;
mysql>flush privileges;Hive安装安装首先将hive的压缩包上传到虚拟机,并解压,重命名hive,设置hive权限[root@master-tz ~]# tar -zxf apache-hive-2.0.0-bin.tar.gz -C /usr/local/src/
[root@master-tz ~]# cd /usr/local/src/
[root@master-tz src]# mv apache-hive-2.0.0-bin/ hive
[root@master-tz src]# chown -R hadoop:hadoop hive/修改环境变量[root@master-tz src]# vim /etc/profile
# set Hive environment
export HIVE_HOME=/usr/local/src/hive # Hive安装目录
export PATH=$HIVE_HOME/bin:$PATH # 添加将Hive的bin目录
export HIVE_CONF_DIR=$HIVE_HOME/conf #Hive的环境变量
[root@master-tz src]# source /etc/profile修改配置文件hive-site.xml文件首先切换到hadoop用户[hadoop@master-tz conf]$ cd /usr/local/src/hive/conf
[hadoop@master-tz conf]$ vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--元数据库地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master-tz:3306/hive_db?createDatabaseIfNotExist=true</value>
</property>
<!--mysql用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<!--mysql中hive用户密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Password123$</value>
</property>
<!--mysql驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/usr/local/src/hive/tmp</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/usr/local/src/hive/tmp/${hive.session.id}_resources</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/usr/local/src/hive/tmp</value>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/usr/local/src/hive/tmp/operation_logs</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>master-tz</value>
</property>
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>
</configuration>hive-env.sh[hadoop@master-tz conf]$ cp hive-env.sh.template hive-env.sh
[hadoop@master-tz conf]$ vim hive-env.sh
//增加如下配置项
# Set JAVA
export JAVA_HOME=/usr/local/src/java
# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/usr/local/src/hadoop
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/src/hive/conf
# Folder containing extra ibraries required for hive compilation/execution can be
controlled by:
export HIVE_AUX_JARS_PATH=/usr/local/src/hive/lib将MySQL的驱动jar包上传至虚拟机,然后将该jar包复制到hive安装路径下的lib文件夹中[root@master-tz software]# cp mysql-connector-java-5.1.46.jar /usr/local/src/hive/lib/确保hadoop集群正常,然后初始化hive元数据库[hadoop@master-tz conf]$ schematool -initSchema -dbType mysql进入hive shell界面[hadoop@master-tz ~]$ hive
hive>如果出现以下情况则需要去hive-site.xml配置文件修改为<value>jdbc:mysql://master-tz:3306/hive_db?createDatabaseIfNotExist=true&useSSL=false</value>
-
【Zabbix】部署监控软件
https://xiongan.host/index.php/archives/190/
2022-12-15T17:43:00+08:00
介绍zabbix是一个监控软件,其可以监控各种网络参数,保证企业服务架构安全运营,同时支持灵活的告警机制,可以使得运维人员快速定位故障、解决问题。zabbix支持分布式功能,支持复杂架构下的监控解决方案,也支持web页面,为主机监控提供了良好直观的展现。部署安装httpd和php7服务端:[root@srv-tz ~]# yum install -y[root@srv-tz ~]# systemctl enable --now httpd客户端:[root@client01 ~]# yum install -y yum-plugin-priorities && yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm -y
#修改repo配置文件
[root@client01 ~]# sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/remi-safe.repo
[root@client01 ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/remi-safe.repo
#安装php扩展
[root@client01 ~]# yum --enablerepo=remi-safe,epel install php72 php72-php-pear php72-php-mbstring -y
#启动和自启php
[root@client01 ~]# scl enable php72 bash
#查看php版本信息
[root@client01 ~]# php -v
PHP 7.2.34 (cli) (built: Oct 24 2022 10:27:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies编辑脚本文件
[root@client01 ~]# vim /etc/profile.d/php72.sh
#!/bin/bash
source /opt/remi/php72/enable
export X_SCLS="`scl enable php72 'echo $X_SCLS'`"
#安装php从remi源中
[root@client01 ~]# yum --enablerepo=remi-safe,epel -y install php72-php
[root@client01 ~]# systemctl enable --now httpd
#写入页面
[root@client01 ~]# echo '<?php phpinfo(); ?>' > /var/www/html/info.php
#查看页面
[root@client01 ~]# curl http://localhost/info.php | grep 'PHP Version' | tail -1 | sed --e 's/<[^>]*>//g'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 69230 0 69230 0 0 6822k 0 --:--:-- --:--:-- --:--:-- 7511k
PHP Version 7.2.34安装及配置 MariaDB安装环境服务端:[root@srv-tz ~]# yum install centos-release-scl-rh centos-release-scl -y
#修改配置文件
[root@srv-tz ~]# sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo
[root@srv-tz ~]# sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
[root@srv-tz ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo
[root@srv-tz ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
#安装
[root@srv-tz ~]# yum --enablerepo=centos-sclo-rh install rh-mariadb103-mariadb-server -y启用 MariaDB 环境#运行mariadb
[root@srv-tz ~]# scl enable rh-mariadb103 bash
#查看版本
[root@srv-tz ~]# mysql -V
mysql Ver 15.1 Distrib 10.3.35-MariaDB, for Linux (x86_64) using EditLine wrapper
#写脚本
[root@srv-tz ~]# vim /etc/profile.d/rh-mariadb103.sh
#!/bin/bash
source /opt/rh/rh-mariadb103/enable
export X_SCLS="`scl enable rh-mariadb103 'echo $X_SCLS'`"
#启动运行
[root@srv-tz my.cnf.d]# systemctl enable --now rh-mariadb103-mariadb
#开始部署安装
[root@srv-tz my.cnf.d]# mysql_secure_installation
开始需要设置一个密码
按照提示进行确认即可最后会提示安装成功
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!安装 Zabbix Server[root@srv-tz ~]# yum install https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm -y
[root@srv-tz ~]# yum-config-manager --enable zabbix-frontend
[root@srv-tz ~]# yum --enablerepo=centos-sclo-rh install zabbix-server-mysql zabbix-web-mysql-scl zabbix-apache-conf-scl zabbix-agent zabbix-get -y配置 Zabbix Server配置 Zabbix Server 数据库#登录数据库
[root@srv-tz ~]# mysql -uroot -p123456
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'password';
Query OK, 0 rows affected (0.028 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)
[root@srv-tz ~]# cd /usr/share/doc/zabbix-server-mysql-5.0.30/
[root@srv-tz zabbix-server-mysql-5.0.30]# ls
AUTHORS ChangeLog COPYING create.sql.gz double.sql NEWS README
[root@srv-tz zabbix-server-mysql-5.0.30]# gunzip create.sql.gz
[root@srv-tz zabbix-server-mysql-5.0.30]# mysql -u root -p zabbix < create.sql
输入密码123456设置SElinux[root@srv-tz ~]# setsebool -P zabbix_can_network on
[root@srv-tz ~]# setsebool -P httpd_can_connect_zabbix on
[root@srv-tz ~]# setsebool -P domain_can_mmap_files on
[root@srv-tz ~]# setsebool -P daemons_enable_cluster_mode on
[root@srv-tz ~]# vim zabbix_server.te
module zabbix_server 1.0;
require {
type zabbix_t;
type zabbix_agent_t;
type rpm_exec_t;
type rpm_var_lib_t;
class file { execute execute_no_trans map open };
class capability dac_override;
}
#============= zabbix_t ==============
allow zabbix_t self:capability dac_override;
#============= zabbix_agent_t ==============
allow zabbix_agent_t rpm_var_lib_t:file open;
allow zabbix_agent_t rpm_exec_t:file { execute execute_no_trans map };
[root@srv-tz ~]# checkmodule -m -M -o zabbix_server.mod zabbix_server.te
checkmodule: loading policy configuration from zabbix_server.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 19) to zabbix_server.mod
[root@srv-tz ~]# semodule_package --outfile zabbix_server.pp --module zabbix_server.mod
[root@srv-tz ~]# semodule -i zabbix_server.ppFirewall设置[root@srv-tz ~]# firewall-cmd --add-service={http,https} --permanent
success
[root@srv-tz ~]# firewall-cmd --add-port={10050/tcp,10051/tcp} --permanent
success
[root@srv-tz ~]# firewall-cmd --reload
success配置 Zabbix Agentd[root@srv-tz ~]# vim /etc/zabbix/zabbix_agentd.conf
//* 更改 117 行,指定 Zabbix Server 的 IP
Server=127.0.0.1
//* 更改 158 行,指定 Zabbix Server 的 IP
ServerActive=127.0.0.1
//* 更改 169 行,指定 Zabbix Server 的 FQDN
Hostname=srv-tz
[root@srv-tz ~]# systemctl enable --now zabbix-agent为 Zabbix Server 配置 httpd 服务[root@srv-tz ~]# vim /etc/httpd/conf.d/zabbix.conf
//* 更改 10 行,允许指定网络访问
#Require all granted
Require ip 127.0.0.1 192.168.123.0/24
#定义 zabbix 的 timezone
[root@srv-tz ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
//* 更改 24 行
php_value[date.timezone] = Asia/Shanghai
[root@srv-tz ~]# systemctl enable --now httpd rh-php72-php-fpm访问webhttp:ip/zabbix进行页面安装配置数据库 账号zabbix 密码为password安装成功后默认账号Admin 密码zabbix
-
【ansible】linux下的集群管理服务
https://xiongan.host/index.php/archives/137/
2022-11-08T17:33:00+08:00
介绍ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可主机名ip角色Server192.168.123.195主控Backend01192.168.123.196被控01Backend02192.168.123.197被控02安装ansible准备eple源这边使用的是阿里云的源wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo下载完成后就可以安装ansible服务yum install -y ansible openssh-clients配置ansible修改配置文件 vim /etc/ansible/ansible.cfg
//* 71 行,取消注释。开启关闭对未连接的主机 SSH 秘钥检测
host_key_checking = False编写 Ansible 主机管理文件mv /etc/ansible/hosts /etc/ansible/hosts.bak ##先备份一下内容
vi /etc/ansible/hosts ##建立目标群组,并写入被管机(目标服务器)的 IP/FQDN
[tz1101]
backend01
backend02测试连通性ansible tz1101 -m pingTip:配置ssh免密才可以出现上面结果的配置ssh免密登陆ssh-keygen一路回车,默认免密通信ssh-copy-id ip/主机名把密钥发送到集群主机中另外在需要/etc/hosts中写入主机名和ipansible应用添加用户为集群主机添加单独用户ansible tz1101 -m user -a 'name=tao state=present'添加完成用户后再设置一个密码,在server端用pip python 生成哈希密码首先安装pip pythonyum install python-pip -y生成密码ansible tz1101 -m user -a 'name=tao password=tarRU/F9EJjRU update_password=always'查看一下playbook剧本测试集群安装一个httpd软件的playbook剧本vim playbook_create_install.yml #编写剧本文件→安装软件
- hosts: tz1101 #集群组名
tasks:
- name: install vsftpd ##任务名称
yum: name=vsftpd state=installed ##安装vsftpd
- name: running and enabled
service: name=vsftpd state=started enabled=yes ##设置开机自启动使用tag标签创建tag文件yml注:自定义了tag,他就会只执行带有tag=test2的内容其他标签内容不会执行使用变量自定义变量安装服务- hosts: tz1101
become: yes
become_method: sudo
tasks:
- name: installed bao
yum: name={{ item }} state=installed
with_items:
- vim-enhanced ##软件名
- wget
- unzip
tags: Taozhengansible-playbook bianliang.ymlroles内网中需要关闭防火墙和selinuxansible tz1101 -a "setenforce 0 && systemctl stop firewalld"在当前server主机内安装tree服务yum install -y tree群组下的主机也要安装tree软件ansible tz1101 -m yum -a "name=tree state=installed"/*-m 使用模块 yum命令 -a是具体内容 name是tree state是操作安装创建roles子目录及内容mkdir -p roles/ins_httpd/{files,tasks,vars}回到roles,编写一个yml文件Vim playbook_httpd.yml
- hosts: tz1101
roles:
- ins_httpd
编写vars下的main文件
vim roles/ins_httpd/vars/main.yml
packages:
- httpd创建任务剧本编写tasks下的main文件
vim roles/ins_httpd/tasks/main.yml
- name: httpd is installed
yum: name=httpd state=installed
tags: install_httpd
- name: edit httpd.conf
lineinfile: >
dest=/etc/httpd/conf/httpd.conf
regexp="{{item.regexp}}"
line="{{item.line}}"
with_items:
- { regexp: "^#ServerName",line: "ServerName {{ansible_fqdn}}:80" }
tags: edit_httpd.conf
- name: httpd is running and enabled
service: name=httpd state=started enabled=yes
- name: put index.html
copy: src=index.html dest=/var/www/html owner=root group=root mode=0644执行剧本ansible-playbook playbook_httpd.yml查看写入的httpd的index.htmlansible tz1101 -m shell -a "curl localhost"