An oracle is a service providing external data to smart contracts. Blockchains are isolated from the outside world by design. A smart contract can't directly check the weather or a stock price or a sports score. It needs an oracle to bring that data on-chain. Oracles fetch real-world data, verify it, and post it to the blockchain. Smart contracts can then read and act on that data.
Chainlink is the largest oracle network. It operates thousands of nodes that fetch various types of data, price feeds, weather, sports scores, randomness. Each node independently fetches the data and posts it. The network comes to consensus on what the data is. This decentralization protects against a single oracle being wrong or compromised.
A smart contract asking for the price of Ethereum queries an oracle. The oracle fetches the price from multiple exchanges, comes to consensus, and reports it on-chain. The smart contract uses that price. This is essential for DeFi. Lending protocols need to know collateral value to liquidate positions. Exchanges need price feeds to execute trades fairly.
Insurance protocols need to know if events occur. Without oracles, smart contracts are isolated and useless. The oracle problem is that the oracle becomes a trusted intermediary. You're removing one source of centralization (the exchange) but adding another (the oracle). If the oracle is wrong, the smart contract executes based on bad data. Good oracle design is essential.